From 5c11626c759d447cfb30829ce5b8c67d5059471d Mon Sep 17 00:00:00 2001 From: Karan-S-Mittal Date: Sat, 23 Oct 2021 20:41:35 +0530 Subject: [PATCH 1/6] issue #159 resolved and tested --- dash_daq/async-colorpicker.js | 2 +- dash_daq/async-colorpicker.js.map | 2 +- dash_daq/dash_daq.min.js | 2 +- dash_daq/dash_daq.min.js.map | 2 +- dash_daq/package-info.json | 1 - demo.py | 2 +- inst/deps/async-colorpicker.js | 2 +- inst/deps/async-colorpicker.js.map | 2 +- inst/deps/dash_daq.min.js | 2 +- inst/deps/dash_daq.min.js.map | 2 +- package.json | 1 - src/components/__tests__/ColorPicker.test.js | 5 ++- src/fragments/ColorPicker.react.js | 32 +++++++++++++++++--- 13 files changed, 41 insertions(+), 16 deletions(-) diff --git a/dash_daq/async-colorpicker.js b/dash_daq/async-colorpicker.js index 6ebb0a3..dc275d5 100644 --- a/dash_daq/async-colorpicker.js +++ b/dash_daq/async-colorpicker.js @@ -1,2 +1,2 @@ -(window.webpackJsonpdash_daq=window.webpackJsonpdash_daq||[]).push([[0],Array(157).concat([function(e,t,r){"use strict";r.r(t);var n=r(1),o=r.n(n),a=r(273),i=r(2),u=r(29),l=r.n(u),c=r(3);function f(){var e=_(["\n box-shadow: 0px 0px 8px 2px rgba(100,100,100,0.075),\n 0px 0px 32px 2px rgba(255,255,255,0.05),\n 1px 1px 0px 0px rgba(25,25,25,0.6),\n -1px -1px 0px 0px rgba(255,255,255,0.2) !important;\n\n & .chrome-picker > div:first-child {\n border-radius: 0 !important;\n }\n\n & .chrome-picker > div:nth-child(2) {\n background: #0a0a0a !important;\n border-top: 1px solid rgba(255,255,255,0.075);\n }\n\n ","\n ","\n ","\n"]);return f=function(){return e},e}function s(){var e=_(["\n & .chrome-picker input {\n font-family: unset !important;\n color: #fff !important;\n border-radius: 0px !important;\n background-color: #22272a !important;\n background-image: linear-gradient(\n 145deg,\n rgba(255, 255, 255, 0.05) 0%,\n rgba(0, 0, 0, 0.5) 100%\n ) !important;\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1) !important;\n }\n\n & .chrome-picker input:focus {\n outline: 0 !important;\n border: none !important;\n background-image: linear-gradient(\n 145deg,\n rgba(255, 255, 255, 0.2) 0%,\n rgba(0, 0, 0, 0.4) 100%\n ) !important;\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.6), inset 0 0 4px 0 rgba(0, 0, 0, 0.6),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.6), 1px 1px 0px 0px rgba(255, 255, 255, 0.1) !important;\n }\n"]);return s=function(){return e},e}function p(){var e=_(["\n .chrome-picker .flexbox-fix div:nth-child(2) > div:nth-child(2) > div {\n background: #fff !important;\n }\n"]);return p=function(){return e},e}function d(){var e=_(["\n box-shadow: inset 0 0 1px 0 rgba(52, 52, 52, 0.4), inset 0 0 0 1px rgba(0, 0, 0, 0.2),\n 0 0 12px 4px "," !important;\n "]);return d=function(){return e},e}function h(){var e=_(["\n & .chrome-picker .hue-horizontal > div > div,\n .chrome-picker\n > div:nth-child(2)\n > div:nth-child(1)\n > div:nth-child(2)\n > div:nth-child(2)\n > div\n > div:nth-child(3)\n > div\n > div {\n border-radius: 100% !important;\n border: none !important;\n background: #101010 !important;\n background-image: linear-gradient(\n 135deg,\n rgba(255, 255, 255, 0.3) -50%,\n rgba(0, 0, 0, 0.7) 100%\n ) !important;\n transition: all 0.3s ease-in !important;\n ",";\n }\n"]);return h=function(){return e},e}function b(){var e=_(["\n border: 1px solid ",";\n "]);return b=function(){return e},e}function v(){var e=_(["\n border-radius: 3px !important;\n\n "," ",";\n"]);return v=function(){return e},e}function g(){var e=_(["\n border: 1px solid "," !important;\n "]);return g=function(){return e},e}function x(){var e=_(["\n & .chrome-picker .hue-horizontal > div > div,\n .chrome-picker\n > div:nth-child(2)\n > div:nth-child(1)\n > div:nth-child(2)\n > div:nth-child(2)\n > div\n > div:nth-child(3)\n > div\n > div {\n box-shadow: none !important;\n background-color: #fff;\n border-radius: 100% !important;\n ",";\n }\n"]);return x=function(){return e},e}function y(){var e=_(["\n width: ","px !important;\n "]);return y=function(){return e},e}function m(){var e=_(["\n opacity: ",";\n cursor: not-allowed !important;\n & .chrome-picker {\n pointer-events: none !important;\n }\n "]);return m=function(){return e},e}function w(){var e=_(["\n "," & .chrome-picker {\n font-family: unset !important;\n box-shadow: none !important;\n ",";\n }\n\n & .chrome-picker svg {\n background: unset !important;\n }\n\n & .chrome-picker svg:hover path {\n fill: ",";\n }\n\n ",";\n"]);return w=function(){return e},e}function _(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var j=i.c.div(w(),(function(e){var t=e.disabled,r=e.theme;return t&&Object(i.b)(m(),r.dark?1:.65)}),(function(e){var t=e.size;return Object(i.b)(y(),t)}),(function(e){var t=e.theme;return e.color||t.primary}),(function(e){return e.theme.dark?P:E})),O=Object(i.b)(x(),(function(e){var t=e.theme;return Object(i.b)(g(),t.detail)})),E=Object(i.b)(v(),O,(function(e){var t=e.theme;return Object(i.b)(b(),t.detail)})),C=Object(i.b)(h(),(function(e){var t=e.glow;return Object(i.b)(d(),t)})),k=Object(i.b)(p()),S=Object(i.b)(s()),P=Object(i.b)(f(),C,S,k);j.defaultProps={theme:c.e};var M=r(7),B=r(61),A=r(4);function F(e){return(F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function R(){return(R=Object.assign||function(e){for(var t=1;t1?t-1:0),i=1;i=128?"#000":"#fff"},t.red={hsl:{a:1,h:0,l:.5,s:1},hex:"#ff0000",rgb:{r:255,g:0,b:0,a:1},hsv:{h:0,s:1,v:1,a:1}};t.default=t},function(e,t,r){var n=r(226),o="object"==typeof self&&self&&self.Object===Object&&self,a=n||o||Function("return this")();e.exports=a},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,r){var n=r(177),o=r(277),a=r(278),i=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?o(e):a(e)}},function(e,t,r){var n=r(303),o=r(306);e.exports=function(e,t){var r=o(e,t);return n(r)?r:void 0}},function(e,t,r){var n=r(399),o=r(404);e.exports=function(e,t){var r=o(e,t);return n(r)?r:void 0}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,r){var n=r(265),o=r(467),a=r(505),i=r(164);e.exports=function(e,t){return(i(e)?n:a)(e,o(t,3))}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,r){var n=r(190),o=r(400),a=r(401),i=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?o(e):a(e)}},function(e,t,r){var n=r(215),o=r(220);e.exports=function(e){return null!=e&&o(e.length)&&!n(e)}},function(e,t,r){var n=r(166).Symbol;e.exports=n},function(e,t,r){var n=r(228),o=r(285),a=r(180);e.exports=function(e){return a(e)?n(e):o(e)}},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,r){var n=r(233),o=r(198);e.exports=function(e){return null!=e&&o(e.length)&&!n(e)}},function(e,t,r){var n=r(293),o=r(294),a=r(295),i=r(296),u=r(297);function l(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e<=9007199254740991}},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t,r){(function(e){var n=r(226),o=t&&!t.nodeType&&t,a=o&&"object"==typeof e&&e&&!e.nodeType&&e,i=a&&a.exports===o&&n.process,u=function(){try{var e=a&&a.require&&a.require("util").types;return e||i&&i.binding&&i.binding("util")}catch(e){}}();e.exports=u}).call(this,r(173)(e))},function(e,t){var r=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||r)}},function(e,t,r){var n=r(232)(Object.getPrototypeOf,Object);e.exports=n},function(e,t,r){var n=r(181),o=r(298),a=r(299),i=r(300),u=r(301),l=r(302);function c(e){var t=this.__data__=new n(e);this.size=t.size}c.prototype.clear=o,c.prototype.delete=a,c.prototype.get=i,c.prototype.has=u,c.prototype.set=l,e.exports=c},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,r){var n=r(169)(r(166),"Map");e.exports=n},function(e,t,r){var n=r(307),o=r(314),a=r(316),i=r(317),u=r(318);function l(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e<=9007199254740991}},function(e,t,r){(function(e){var n=r(162),o=r(427),a=t&&!t.nodeType&&t,i=a&&"object"==typeof e&&e&&!e.nodeType&&e,u=i&&i.exports===a?n.Buffer:void 0,l=(u?u.isBuffer:void 0)||o;e.exports=l}).call(this,r(173)(e))},function(e,t,r){var n=r(429),o=r(430),a=r(431),i=a&&a.isTypedArray,u=i?o(i):n;e.exports=u},function(e,t){var r=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&r.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&ef))return!1;var p=l.get(e),d=l.get(t);if(p&&d)return p==t&&d==e;var h=-1,b=!0,v=2&r?new n:void 0;for(l.set(e,t),l.set(t,e);++h=t||r<0||v&&e-h>=f}function w(){var e=o();if(m(e))return _(e);p=setTimeout(w,function(e){var r=t-(e-d);return v?u(r,f-(e-h)):r}(e))}function _(e){return p=void 0,g&&l?x(e):(l=c=void 0,s)}function j(){var e=o(),r=m(e);if(l=arguments,c=this,d=e,r){if(void 0===p)return y(d);if(v)return clearTimeout(p),p=setTimeout(w,t),x(d)}return void 0===p&&(p=setTimeout(w,t)),s}return t=a(t)||0,n(r)&&(b=!!r.leading,f=(v="maxWait"in r)?i(a(r.maxWait)||0,t):f,g="trailing"in r?!!r.trailing:g),j.cancel=function(){void 0!==p&&clearTimeout(p),h=0,l=d=c=p=void 0},j.flush=function(){return void 0===p?s:_(o())},j}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ColorWrap=void 0;var n=Object.assign||function(e){for(var t=1;tf))return!1;var p=l.get(e),d=l.get(t);if(p&&d)return p==t&&d==e;var h=-1,b=!0,v=2&r?new n:void 0;for(l.set(e,t),l.set(t,e);++h0&&void 0!==arguments[0]?arguments[0]:[],r=[];return(0,i.default)(t,(function(t){Array.isArray(t)?e(t).map((function(e){return r.push(e)})):(0,a.default)(t)?(0,o.default)(t,(function(e,t){!0===e&&r.push(t),r.push(t+"-"+e)})):(0,n.default)(t)&&r.push(t)})),r};t.default=l},function(e,t,r){var n=r(168),o=r(161),a=r(167);e.exports=function(e){return"string"==typeof e||!o(e)&&a(e)&&"[object String]"==n(e)}},function(e,t,r){var n=r(177),o=Object.prototype,a=o.hasOwnProperty,i=o.toString,u=n?n.toStringTag:void 0;e.exports=function(e){var t=a.call(e,u),r=e[u];try{e[u]=void 0;var n=!0}catch(e){}var o=i.call(e);return n&&(t?e[u]=r:delete e[u]),o}},function(e,t){var r=Object.prototype.toString;e.exports=function(e){return r.call(e)}},function(e,t,r){var n=r(280)();e.exports=n},function(e,t){e.exports=function(e){return function(t,r,n){for(var o=-1,a=Object(t),i=n(t),u=i.length;u--;){var l=i[e?u:++o];if(!1===r(a[l],l,a))break}return t}}},function(e,t){e.exports=function(e,t){for(var r=-1,n=Array(e);++r-1}},function(e,t,r){var n=r(182);e.exports=function(e,t){var r=this.__data__,o=n(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}},function(e,t,r){var n=r(181);e.exports=function(){this.__data__=new n,this.size=0}},function(e,t){e.exports=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}},function(e,t){e.exports=function(e){return this.__data__.get(e)}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t,r){var n=r(181),o=r(205),a=r(206);e.exports=function(e,t){var r=this.__data__;if(r instanceof n){var i=r.__data__;if(!o||i.length<199)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new a(i)}return r.set(e,t),this.size=r.size,this}},function(e,t,r){var n=r(233),o=r(304),a=r(174),i=r(236),u=/^\[object .+?Constructor\]$/,l=Function.prototype,c=Object.prototype,f=l.toString,s=c.hasOwnProperty,p=RegExp("^"+f.call(s).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!a(e)||o(e))&&(n(e)?p:u).test(i(e))}},function(e,t,r){var n,o=r(305),a=(n=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";e.exports=function(e){return!!a&&a in e}},function(e,t,r){var n=r(166)["__core-js_shared__"];e.exports=n},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,r){var n=r(308),o=r(181),a=r(205);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(a||o),string:new n}}},function(e,t,r){var n=r(309),o=r(310),a=r(311),i=r(312),u=r(313);function l(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t1&&void 0!==arguments[1]?arguments[1]:[],r=e.default&&(0,o.default)(e.default)||{};return t.map((function(t){var o=e[t];return o&&(0,n.default)(o,(function(e,t){r[t]||(r[t]={}),r[t]=a({},r[t],o[t])})),t})),r};t.default=u},function(e,t,r){var n=r(353);e.exports=function(e){return n(e,5)}},function(e,t,r){var n=r(203),o=r(354),a=r(248),i=r(356),u=r(357),l=r(360),c=r(361),f=r(362),s=r(363),p=r(240),d=r(364),h=r(185),b=r(365),v=r(366),g=r(371),x=r(161),y=r(197),m=r(373),w=r(174),_=r(375),j=r(178),O=r(210),E={};E["[object Arguments]"]=E["[object Array]"]=E["[object ArrayBuffer]"]=E["[object DataView]"]=E["[object Boolean]"]=E["[object Date]"]=E["[object Float32Array]"]=E["[object Float64Array]"]=E["[object Int8Array]"]=E["[object Int16Array]"]=E["[object Int32Array]"]=E["[object Map]"]=E["[object Number]"]=E["[object Object]"]=E["[object RegExp]"]=E["[object Set]"]=E["[object String]"]=E["[object Symbol]"]=E["[object Uint8Array]"]=E["[object Uint8ClampedArray]"]=E["[object Uint16Array]"]=E["[object Uint32Array]"]=!0,E["[object Error]"]=E["[object Function]"]=E["[object WeakMap]"]=!1,e.exports=function e(t,r,C,k,S,P){var M,B=1&r,A=2&r,F=4&r;if(C&&(M=S?C(t,k,S,P):C(t)),void 0!==M)return M;if(!w(t))return t;var R=x(t);if(R){if(M=b(t),!B)return c(t,M)}else{var T=h(t),z="[object Function]"==T||"[object GeneratorFunction]"==T;if(y(t))return l(t,B);if("[object Object]"==T||"[object Arguments]"==T||z&&!S){if(M=A||z?{}:g(t),!B)return A?s(t,u(M,t)):f(t,i(M,t))}else{if(!E[T])return S?t:{};M=v(t,T,B)}}P||(P=new n);var H=P.get(t);if(H)return H;P.set(t,M),_(t)?t.forEach((function(n){M.add(e(n,r,C,n,t,P))})):m(t)&&t.forEach((function(n,o){M.set(o,e(n,r,C,o,t,P))}));var D=R?void 0:(F?A?d:p:A?O:j)(t);return o(D||t,(function(n,o){D&&(n=t[o=n]),a(M,o,e(n,r,C,o,t,P))})),M}},function(e,t){e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r1&&void 0!==arguments[1]?arguments[1]:"span";return function(r){function n(){var r,a,c;u(this,n);for(var f=arguments.length,s=Array(f),p=0;p1&&void 0!==arguments[1]?arguments[1]:"span";return function(r){function n(){var r,a,c;u(this,n);for(var f=arguments.length,s=Array(f),p=0;p1&&void 0!==arguments[1])||arguments[1];r[e]=t};return 0===e&&n("first-child"),e===t-1&&n("last-child"),(0===e||e%2==0)&&n("even"),1===Math.abs(e%2)&&n("odd"),n("nth-child",e),r}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Alpha=void 0;var n=Object.assign||function(e){for(var t=1;ti?1:Math.round(100*f/i)/100,t.a!==s)return{h:t.h,s:t.s,l:t.l,a:s,source:"rgb"}}else{var p=void 0;if(n!==(p=c<0?0:c>a?1:Math.round(100*c/a)/100))return{h:t.h,s:t.s,l:t.l,a:p,source:"rgb"}}return null}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={},o=t.render=function(e,t,r,n){if("undefined"==typeof document&&!n)return null;var o=n?new n:document.createElement("canvas");o.width=2*r,o.height=2*r;var a=o.getContext("2d");return a?(a.fillStyle=e,a.fillRect(0,0,o.width,o.height),a.fillStyle=t,a.fillRect(0,0,r,r),a.translate(r,r),a.fillRect(0,0,r,r),o.toDataURL()):null};t.get=function(e,t,r,a){var i=e+"-"+t+"-"+r+(a?"-server":"");if(n[i])return n[i];var u=o(e,t,r,a);return n[i]=u,u}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EditableInput=void 0;var n=function(){function e(e,t){for(var r=0;r-1)){var o=r.getArrowOffset(),a=38===e.keyCode?n+o:n-o;r.setUpdatedValue(a,e)}},r.handleDrag=function(e){if(r.props.dragLabel){var t=Math.round(r.props.value+e.movementX);t>=0&&t<=r.props.dragMax&&r.props.onChange&&r.props.onChange(r.getValueObjectWithLabel(t),e)}},r.handleMouseDown=function(e){r.props.dragLabel&&(e.preventDefault(),r.handleDrag(e),window.addEventListener("mousemove",r.handleDrag),window.addEventListener("mouseup",r.handleMouseUp))},r.handleMouseUp=function(){r.unbindEventListeners()},r.unbindEventListeners=function(){window.removeEventListener("mousemove",r.handleDrag),window.removeEventListener("mouseup",r.handleMouseUp)},r.state={value:String(e.value).toUpperCase(),blurValue:String(e.value).toUpperCase()},r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),n(t,[{key:"componentDidUpdate",value:function(e,t){this.props.value===this.state.value||e.value===this.props.value&&t.value===this.state.value||(this.input===document.activeElement?this.setState({blurValue:String(this.props.value).toUpperCase()}):this.setState({value:String(this.props.value).toUpperCase(),blurValue:!this.state.blurValue&&String(this.props.value).toUpperCase()}))}},{key:"componentWillUnmount",value:function(){this.unbindEventListeners()}},{key:"getValueObjectWithLabel",value:function(e){return function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}({},this.props.label,e)}},{key:"getArrowOffset",value:function(){return this.props.arrowOffset||1}},{key:"setUpdatedValue",value:function(e,t){var r=this.props.label?this.getValueObjectWithLabel(e):e;this.props.onChange&&this.props.onChange(r,t);var n,o=function(e){return String(e).indexOf("%")>-1}(t.target.value);this.setState({value:o?(n=e,n+"%"):e})}},{key:"render",value:function(){var e=this,t=(0,i.default)({default:{wrap:{position:"relative"}},"user-override":{wrap:this.props.style&&this.props.style.wrap?this.props.style.wrap:{},input:this.props.style&&this.props.style.input?this.props.style.input:{},label:this.props.style&&this.props.style.label?this.props.style.label:{}},"dragLabel-true":{label:{cursor:"ew-resize"}}},{"user-override":!0},this.props);return a.default.createElement("div",{style:t.wrap},a.default.createElement("input",{style:t.input,ref:function(t){return e.input=t},value:this.state.value,onKeyDown:this.handleKeyDown,onChange:this.handleChange,onBlur:this.handleBlur,placeholder:this.props.placeholder,spellCheck:"false"}),this.props.label&&!this.props.hideLabel?a.default.createElement("span",{style:t.label,onMouseDown:this.handleMouseDown},this.props.label):null)}}]),t}(o.PureComponent||o.Component);t.default=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Hue=void 0;var n=function(){function e(e,t){for(var r=0;ra)f=0;else{f=360*(-100*c/a+100)/100}if(r.h!==f)return{h:f,s:r.s,l:r.l,a:r.a,source:"rgb"}}else{var s=void 0;if(l<0)s=0;else if(l>o)s=359;else{s=360*(100*l/o)/100}if(r.h!==s)return{h:s,s:r.s,l:r.l,a:r.a,source:"rgb"}}return null}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Raised=void 0;var n=u(r(1)),o=u(r(0)),a=u(r(158)),i=u(r(160));function u(e){return e&&e.__esModule?e:{default:e}}var l=t.Raised=function(e){var t=e.zDepth,r=e.radius,o=e.background,u=e.children,l=e.styles,c=void 0===l?{}:l,f=(0,a.default)((0,i.default)({default:{wrap:{position:"relative",display:"inline-block"},content:{position:"relative"},bg:{absolute:"0px 0px 0px 0px",boxShadow:"0 "+t+"px "+4*t+"px rgba(0,0,0,.24)",borderRadius:r,background:o}},"zDepth-0":{bg:{boxShadow:"none"}},"zDepth-1":{bg:{boxShadow:"0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)"}},"zDepth-2":{bg:{boxShadow:"0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)"}},"zDepth-3":{bg:{boxShadow:"0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)"}},"zDepth-4":{bg:{boxShadow:"0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)"}},"zDepth-5":{bg:{boxShadow:"0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)"}},square:{bg:{borderRadius:"0"}},circle:{bg:{borderRadius:"50%"}}},c),{"zDepth-1":1===t});return n.default.createElement("div",{style:f.wrap},n.default.createElement("div",{style:f.bg}),n.default.createElement("div",{style:f.content},u))};l.propTypes={background:o.default.string,zDepth:o.default.oneOf([0,1,2,3,4,5]),radius:o.default.number,styles:o.default.object},l.defaultProps={background:"#fff",zDepth:1,radius:2,styles:{}},t.default=l},function(e,t,r){var n=r(213),o=r(253),a=r(255),i=r(418),u=r(163),l=r(260),c=r(259);e.exports=function e(t,r,f,s,p){t!==r&&a(r,(function(a,l){if(p||(p=new n),u(a))i(t,r,l,f,e,s,p);else{var d=s?s(c(t,l),a,l+"",t,r,p):void 0;void 0===d&&(d=a),o(t,l,d)}}),l)}},function(e,t){e.exports=function(){this.__data__=[],this.size=0}},function(e,t,r){var n=r(189),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,r=n(t,e);return!(r<0)&&(r==t.length-1?t.pop():o.call(t,r,1),--this.size,!0)}},function(e,t,r){var n=r(189);e.exports=function(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}},function(e,t,r){var n=r(189);e.exports=function(e){return n(this.__data__,e)>-1}},function(e,t,r){var n=r(189);e.exports=function(e,t){var r=this.__data__,o=n(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}},function(e,t,r){var n=r(188);e.exports=function(){this.__data__=new n,this.size=0}},function(e,t){e.exports=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}},function(e,t){e.exports=function(e){return this.__data__.get(e)}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t,r){var n=r(188),o=r(214),a=r(216);e.exports=function(e,t){var r=this.__data__;if(r instanceof n){var i=r.__data__;if(!o||i.length<199)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new a(i)}return r.set(e,t),this.size=r.size,this}},function(e,t,r){var n=r(215),o=r(402),a=r(163),i=r(252),u=/^\[object .+?Constructor\]$/,l=Function.prototype,c=Object.prototype,f=l.toString,s=c.hasOwnProperty,p=RegExp("^"+f.call(s).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!a(e)||o(e))&&(n(e)?p:u).test(i(e))}},function(e,t,r){var n=r(190),o=Object.prototype,a=o.hasOwnProperty,i=o.toString,u=n?n.toStringTag:void 0;e.exports=function(e){var t=a.call(e,u),r=e[u];try{e[u]=void 0;var n=!0}catch(e){}var o=i.call(e);return n&&(t?e[u]=r:delete e[u]),o}},function(e,t){var r=Object.prototype.toString;e.exports=function(e){return r.call(e)}},function(e,t,r){var n,o=r(403),a=(n=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";e.exports=function(e){return!!a&&a in e}},function(e,t,r){var n=r(162)["__core-js_shared__"];e.exports=n},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,r){var n=r(406),o=r(188),a=r(214);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(a||o),string:new n}}},function(e,t,r){var n=r(407),o=r(408),a=r(409),i=r(410),u=r(411);function l(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t1?r[a-1]:void 0,u=a>2?r[2]:void 0;for(i=e.length>3&&"function"==typeof i?(a--,i):void 0,u&&o(r[0],r[1],u)&&(i=a<3?void 0:i,a=1),t=Object(t);++n0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}},function(e,t,r){var n=r(179),o=r(176),a=r(223),i=r(163);e.exports=function(e,t,r){if(!i(r))return!1;var u=typeof t;return!!("number"==u?o(r)&&a(t,r.length):"string"==u&&t in r)&&n(r[t],e)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Saturation=void 0;var n=function(){function e(e,t){for(var r=0;ro&&(l=o),c<0?c=0:c>a&&(c=a);var f=l/o,s=1-c/a;return{h:t.h,s:f,v:s,a:t.a,source:"rgb"}}},function(e,t,r){e.exports=r(455)},function(e,t,r){var n=r(456),o=r(264),a=r(461),i=r(164);e.exports=function(e,t){return(i(e)?n:o)(e,a(t))}},function(e,t){e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r1&&void 0!==arguments[1]?arguments[1]:"span";return function(r){function n(){var e,t,r;l(this,n);for(var o=arguments.length,a=Array(o),i=0;i1&&(e.a=1),r.props.onChange({h:r.props.hsl.h,s:r.props.hsl.s,l:r.props.hsl.l,a:Math.round(100*e.a)/100,source:"rgb"},t)):(e.h||e.s||e.l)&&("string"==typeof e.s&&e.s.includes("%")&&(e.s=e.s.replace("%","")),"string"==typeof e.l&&e.l.includes("%")&&(e.l=e.l.replace("%","")),r.props.onChange({h:e.h||r.props.hsl.h,s:Number(e.s&&e.s||r.props.hsl.s),l:Number(e.l&&e.l||r.props.hsl.l),source:"hsl"},t))},r.showHighlight=function(e){e.currentTarget.style.background="#eee"},r.hideHighlight=function(e){e.currentTarget.style.background="transparent"},1!==e.hsl.a&&"hex"===e.view?r.state={view:"rgb"}:r.state={view:e.view},r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),n(t,[{key:"render",value:function(){var e=this,t=(0,a.default)({default:{wrap:{paddingTop:"16px",display:"flex"},fields:{flex:"1",display:"flex",marginLeft:"-6px"},field:{paddingLeft:"6px",width:"100%"},alpha:{paddingLeft:"6px",width:"100%"},toggle:{width:"32px",textAlign:"right",position:"relative"},icon:{marginRight:"-4px",marginTop:"12px",cursor:"pointer",position:"relative"},iconHighlight:{position:"absolute",width:"24px",height:"28px",background:"#eee",borderRadius:"4px",top:"10px",left:"12px",display:"none"},input:{fontSize:"11px",color:"#333",width:"100%",borderRadius:"2px",border:"none",boxShadow:"inset 0 0 0 1px #dadada",height:"21px",textAlign:"center"},label:{textTransform:"uppercase",fontSize:"11px",lineHeight:"11px",color:"#969696",textAlign:"center",display:"block",marginTop:"12px"},svg:{fill:"#333",width:"24px",height:"24px",border:"1px transparent solid",borderRadius:"5px"}},disableAlpha:{alpha:{display:"none"}}},this.props,this.state),r=void 0;return"hex"===this.state.view?r=o.default.createElement("div",{style:t.fields,className:"flexbox-fix"},o.default.createElement("div",{style:t.field},o.default.createElement(u.EditableInput,{style:{input:t.input,label:t.label},label:"hex",value:this.props.hex,onChange:this.handleChange}))):"rgb"===this.state.view?r=o.default.createElement("div",{style:t.fields,className:"flexbox-fix"},o.default.createElement("div",{style:t.field},o.default.createElement(u.EditableInput,{style:{input:t.input,label:t.label},label:"r",value:this.props.rgb.r,onChange:this.handleChange})),o.default.createElement("div",{style:t.field},o.default.createElement(u.EditableInput,{style:{input:t.input,label:t.label},label:"g",value:this.props.rgb.g,onChange:this.handleChange})),o.default.createElement("div",{style:t.field},o.default.createElement(u.EditableInput,{style:{input:t.input,label:t.label},label:"b",value:this.props.rgb.b,onChange:this.handleChange})),o.default.createElement("div",{style:t.alpha},o.default.createElement(u.EditableInput,{style:{input:t.input,label:t.label},label:"a",value:this.props.rgb.a,arrowOffset:.01,onChange:this.handleChange}))):"hsl"===this.state.view&&(r=o.default.createElement("div",{style:t.fields,className:"flexbox-fix"},o.default.createElement("div",{style:t.field},o.default.createElement(u.EditableInput,{style:{input:t.input,label:t.label},label:"h",value:Math.round(this.props.hsl.h),onChange:this.handleChange})),o.default.createElement("div",{style:t.field},o.default.createElement(u.EditableInput,{style:{input:t.input,label:t.label},label:"s",value:Math.round(100*this.props.hsl.s)+"%",onChange:this.handleChange})),o.default.createElement("div",{style:t.field},o.default.createElement(u.EditableInput,{style:{input:t.input,label:t.label},label:"l",value:Math.round(100*this.props.hsl.l)+"%",onChange:this.handleChange})),o.default.createElement("div",{style:t.alpha},o.default.createElement(u.EditableInput,{style:{input:t.input,label:t.label},label:"a",value:this.props.hsl.a,arrowOffset:.01,onChange:this.handleChange})))),o.default.createElement("div",{style:t.wrap,className:"flexbox-fix"},r,o.default.createElement("div",{style:t.toggle},o.default.createElement("div",{style:t.icon,onClick:this.toggleViews,ref:function(t){return e.icon=t}},o.default.createElement(l.default,{style:t.svg,onMouseOver:this.showHighlight,onMouseEnter:this.showHighlight,onMouseOut:this.hideHighlight}))))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return 1!==e.hsl.a&&"hex"===t.view?{view:"rgb"}:null}}]),t}(o.default.Component);f.defaultProps={view:"hex"},t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,o=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}(e,["fill","width","height","style"]);return i.default.createElement("svg",o({viewBox:"0 0 24 24",style:o({fill:r,width:a,height:l},f)},s),i.default.createElement("path",{d:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"}))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChromePointer=void 0;var n=a(r(1)),o=a(r(158));function a(e){return e&&e.__esModule?e:{default:e}}var i=t.ChromePointer=function(){var e=(0,o.default)({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",transform:"translate(-6px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}}});return n.default.createElement("div",{style:e.picker})};t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChromePointerCircle=void 0;var n=a(r(1)),o=a(r(158));function a(e){return e&&e.__esModule?e:{default:e}}var i=t.ChromePointerCircle=function(){var e=(0,o.default)({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",boxShadow:"inset 0 0 0 1px #fff",transform:"translate(-6px, -6px)"}}});return n.default.createElement("div",{style:e.picker})};t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Compact=void 0;var n=p(r(1)),o=p(r(0)),a=p(r(158)),i=p(r(172)),u=p(r(160)),l=p(r(165)),c=r(159),f=p(r(514)),s=p(r(515));function p(e){return e&&e.__esModule?e:{default:e}}var d=t.Compact=function(e){var t=e.onChange,r=e.onSwatchHover,o=e.colors,p=e.hex,d=e.rgb,h=e.styles,b=void 0===h?{}:h,v=e.className,g=void 0===v?"":v,x=(0,a.default)((0,u.default)({default:{Compact:{background:"#f6f6f6",radius:"4px"},compact:{paddingTop:"5px",paddingLeft:"5px",boxSizing:"initial",width:"240px"},clear:{clear:"both"}}},b)),y=function(e,r){e.hex?l.default.isValidHex(e.hex)&&t({hex:e.hex,source:"hex"},r):t(e,r)};return n.default.createElement(c.Raised,{style:x.Compact,styles:b},n.default.createElement("div",{style:x.compact,className:"compact-picker "+g},n.default.createElement("div",null,(0,i.default)(o,(function(e){return n.default.createElement(f.default,{key:e,color:e,active:e.toLowerCase()===p,onClick:y,onSwatchHover:r})})),n.default.createElement("div",{style:x.clear})),n.default.createElement(s.default,{hex:p,rgb:d,onChange:y})))};d.propTypes={colors:o.default.arrayOf(o.default.string),styles:o.default.object},d.defaultProps={colors:["#4D4D4D","#999999","#FFFFFF","#F44E3B","#FE9200","#FCDC00","#DBDF00","#A4DD00","#68CCCA","#73D8FF","#AEA1FF","#FDA1FF","#333333","#808080","#cccccc","#D33115","#E27300","#FCC400","#B0BC00","#68BC00","#16A5A5","#009CE0","#7B64FF","#FA28FF","#000000","#666666","#B3B3B3","#9F0500","#C45100","#FB9E00","#808900","#194D33","#0C797D","#0062B1","#653294","#AB149E"],styles:{}},t.default=(0,c.ColorWrap)(d)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CompactColor=void 0;var n=u(r(1)),o=u(r(158)),a=u(r(165)),i=r(159);function u(e){return e&&e.__esModule?e:{default:e}}var l=t.CompactColor=function(e){var t=e.color,r=e.onClick,u=void 0===r?function(){}:r,l=e.onSwatchHover,c=e.active,f=(0,o.default)({default:{color:{background:t,width:"15px",height:"15px",float:"left",marginRight:"5px",marginBottom:"5px",position:"relative",cursor:"pointer"},dot:{absolute:"5px 5px 5px 5px",background:a.default.getContrastingColor(t),borderRadius:"50%",opacity:"0"}},active:{dot:{opacity:"1"}},"color-#FFFFFF":{color:{boxShadow:"inset 0 0 0 1px #ddd"},dot:{background:"#000"}},transparent:{dot:{background:"#000"}}},{active:c,"color-#FFFFFF":"#FFFFFF"===t,transparent:"transparent"===t});return n.default.createElement(i.Swatch,{style:f.color,color:t,onClick:u,onHover:l,focusStyle:{boxShadow:"0 0 4px "+t}},n.default.createElement("div",{style:f.dot}))};t.default=l},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CompactFields=void 0;var n=i(r(1)),o=i(r(158)),a=r(159);function i(e){return e&&e.__esModule?e:{default:e}}var u=t.CompactFields=function(e){var t=e.hex,r=e.rgb,i=e.onChange,u=(0,o.default)({default:{fields:{display:"flex",paddingBottom:"6px",paddingRight:"5px",position:"relative"},active:{position:"absolute",top:"6px",left:"5px",height:"9px",width:"9px",background:t},HEXwrap:{flex:"6",position:"relative"},HEXinput:{width:"80%",padding:"0px",paddingLeft:"20%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},HEXlabel:{display:"none"},RGBwrap:{flex:"3",position:"relative"},RGBinput:{width:"70%",padding:"0px",paddingLeft:"30%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},RGBlabel:{position:"absolute",top:"3px",left:"0px",lineHeight:"16px",textTransform:"uppercase",fontSize:"12px",color:"#999"}}}),l=function(e,t){e.r||e.g||e.b?i({r:e.r||r.r,g:e.g||r.g,b:e.b||r.b,source:"rgb"},t):i({hex:e.hex,source:"hex"},t)};return n.default.createElement("div",{style:u.fields,className:"flexbox-fix"},n.default.createElement("div",{style:u.active}),n.default.createElement(a.EditableInput,{style:{wrap:u.HEXwrap,input:u.HEXinput,label:u.HEXlabel},label:"hex",value:t,onChange:l}),n.default.createElement(a.EditableInput,{style:{wrap:u.RGBwrap,input:u.RGBinput,label:u.RGBlabel},label:"r",value:r.r,onChange:l}),n.default.createElement(a.EditableInput,{style:{wrap:u.RGBwrap,input:u.RGBinput,label:u.RGBlabel},label:"g",value:r.g,onChange:l}),n.default.createElement(a.EditableInput,{style:{wrap:u.RGBwrap,input:u.RGBinput,label:u.RGBlabel},label:"b",value:r.b,onChange:l}))};t.default=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Github=void 0;var n=f(r(1)),o=f(r(0)),a=f(r(158)),i=f(r(172)),u=f(r(160)),l=r(159),c=f(r(517));function f(e){return e&&e.__esModule?e:{default:e}}var s=t.Github=function(e){var t=e.width,r=e.colors,o=e.onChange,l=e.onSwatchHover,f=e.triangle,s=e.styles,p=void 0===s?{}:s,d=e.className,h=void 0===d?"":d,b=(0,a.default)((0,u.default)({default:{card:{width:t,background:"#fff",border:"1px solid rgba(0,0,0,0.2)",boxShadow:"0 3px 12px rgba(0,0,0,0.15)",borderRadius:"4px",position:"relative",padding:"5px",display:"flex",flexWrap:"wrap"},triangle:{position:"absolute",border:"7px solid transparent",borderBottomColor:"#fff"},triangleShadow:{position:"absolute",border:"8px solid transparent",borderBottomColor:"rgba(0,0,0,0.15)"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-14px",left:"10px"},triangleShadow:{top:"-16px",left:"9px"}},"top-right-triangle":{triangle:{top:"-14px",right:"10px"},triangleShadow:{top:"-16px",right:"9px"}},"bottom-left-triangle":{triangle:{top:"35px",left:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",left:"9px",transform:"rotate(180deg)"}},"bottom-right-triangle":{triangle:{top:"35px",right:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",right:"9px",transform:"rotate(180deg)"}}},p),{"hide-triangle":"hide"===f,"top-left-triangle":"top-left"===f,"top-right-triangle":"top-right"===f,"bottom-left-triangle":"bottom-left"===f,"bottom-right-triangle":"bottom-right"===f}),v=function(e,t){return o({hex:e,source:"hex"},t)};return n.default.createElement("div",{style:b.card,className:"github-picker "+h},n.default.createElement("div",{style:b.triangleShadow}),n.default.createElement("div",{style:b.triangle}),(0,i.default)(r,(function(e){return n.default.createElement(c.default,{color:e,key:e,onClick:v,onSwatchHover:l})})))};s.propTypes={width:o.default.oneOfType([o.default.string,o.default.number]),colors:o.default.arrayOf(o.default.string),triangle:o.default.oneOf(["hide","top-left","top-right","bottom-left","bottom-right"]),styles:o.default.object},s.defaultProps={width:200,colors:["#B80000","#DB3E00","#FCCB00","#008B02","#006B76","#1273DE","#004DCF","#5300EB","#EB9694","#FAD0C3","#FEF3BD","#C1E1C5","#BEDADC","#C4DEF6","#BED3F3","#D4C4FB"],triangle:"top-left",styles:{}},t.default=(0,l.ColorWrap)(s)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GithubSwatch=void 0;var n=u(r(1)),o=r(158),a=u(o),i=r(159);function u(e){return e&&e.__esModule?e:{default:e}}var l=t.GithubSwatch=function(e){var t=e.hover,r=e.color,o=e.onClick,u=e.onSwatchHover,l={position:"relative",zIndex:"2",outline:"2px solid #fff",boxShadow:"0 0 5px 2px rgba(0,0,0,0.25)"},c=(0,a.default)({default:{swatch:{width:"25px",height:"25px",fontSize:"0"}},hover:{swatch:l}},{hover:t});return n.default.createElement("div",{style:c.swatch},n.default.createElement(i.Swatch,{color:r,onClick:o,onHover:u,focusStyle:l}))};t.default=(0,o.handleHover)(l)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HuePicker=void 0;var n=Object.assign||function(e){for(var t=1;t.5});return n.default.createElement("div",{style:r.picker})};t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PhotoshopPointerCircle=void 0;var n=a(r(1)),o=a(r(158));function a(e){return e&&e.__esModule?e:{default:e}}var i=t.PhotoshopPointerCircle=function(){var e=(0,o.default)({default:{triangle:{width:0,height:0,borderStyle:"solid",borderWidth:"4px 0 4px 6px",borderColor:"transparent transparent transparent #fff",position:"absolute",top:"1px",left:"1px"},triangleBorder:{width:0,height:0,borderStyle:"solid",borderWidth:"5px 0 5px 8px",borderColor:"transparent transparent transparent #555"},left:{Extend:"triangleBorder",transform:"translate(-13px, -4px)"},leftInside:{Extend:"triangle",transform:"translate(-8px, -5px)"},right:{Extend:"triangleBorder",transform:"translate(20px, -14px) rotate(180deg)"},rightInside:{Extend:"triangle",transform:"translate(-8px, -5px)"}}});return n.default.createElement("div",{style:e.pointer},n.default.createElement("div",{style:e.left},n.default.createElement("div",{style:e.leftInside})),n.default.createElement("div",{style:e.right},n.default.createElement("div",{style:e.rightInside})))};t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PhotoshopButton=void 0;var n=a(r(1)),o=a(r(158));function a(e){return e&&e.__esModule?e:{default:e}}var i=t.PhotoshopButton=function(e){var t=e.onClick,r=e.label,a=e.children,i=e.active,u=(0,o.default)({default:{button:{backgroundImage:"linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)",border:"1px solid #878787",borderRadius:"2px",height:"20px",boxShadow:"0 1px 0 0 #EAEAEA",fontSize:"14px",color:"#000",lineHeight:"20px",textAlign:"center",marginBottom:"10px",cursor:"pointer"}},active:{button:{boxShadow:"0 0 0 1px #878787"}}},{active:i});return n.default.createElement("div",{style:u.button,onClick:t},r||a)};t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PhotoshopPreviews=void 0;var n=a(r(1)),o=a(r(158));function a(e){return e&&e.__esModule?e:{default:e}}var i=t.PhotoshopPreviews=function(e){var t=e.rgb,r=e.currentColor,a=(0,o.default)({default:{swatches:{border:"1px solid #B3B3B3",borderBottom:"1px solid #F0F0F0",marginBottom:"2px",marginTop:"1px"},new:{height:"34px",background:"rgb("+t.r+","+t.g+", "+t.b+")",boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000"},current:{height:"34px",background:r,boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000"},label:{fontSize:"14px",color:"#000",textAlign:"center"}}});return n.default.createElement("div",null,n.default.createElement("div",{style:a.label},"new"),n.default.createElement("div",{style:a.swatches},n.default.createElement("div",{style:a.new}),n.default.createElement("div",{style:a.current})),n.default.createElement("div",{style:a.label},"current"))};t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Sketch=void 0;var n=Object.assign||function(e){for(var t=1;t100&&(e.a=100),e.a/=100,t({h:u.h,s:u.s,l:u.l,a:e.a,source:"rgb"},n))};return n.default.createElement("div",{style:f.fields,className:"flexbox-fix"},n.default.createElement("div",{style:f.double},n.default.createElement(i.EditableInput,{style:{input:f.input,label:f.label},label:"hex",value:l.replace("#",""),onChange:s})),n.default.createElement("div",{style:f.single},n.default.createElement(i.EditableInput,{style:{input:f.input,label:f.label},label:"r",value:r.r,onChange:s,dragLabel:"true",dragMax:"255"})),n.default.createElement("div",{style:f.single},n.default.createElement(i.EditableInput,{style:{input:f.input,label:f.label},label:"g",value:r.g,onChange:s,dragLabel:"true",dragMax:"255"})),n.default.createElement("div",{style:f.single},n.default.createElement(i.EditableInput,{style:{input:f.input,label:f.label},label:"b",value:r.b,onChange:s,dragLabel:"true",dragMax:"255"})),n.default.createElement("div",{style:f.alpha},n.default.createElement(i.EditableInput,{style:{input:f.input,label:f.label},label:"a",value:Math.round(100*r.a),onChange:s,dragLabel:"true",dragMax:"100"})))};t.default=l},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SketchPresetColors=void 0;var n=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}(e,["fill","width","height","style"]);return i.default.createElement("svg",o({viewBox:"0 0 24 24",style:o({fill:r,width:a,height:l},f)},s),i.default.createElement("path",{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Twitter=void 0;var n=f(r(1)),o=f(r(0)),a=f(r(158)),i=f(r(172)),u=f(r(160)),l=f(r(165)),c=r(159);function f(e){return e&&e.__esModule?e:{default:e}}var s=t.Twitter=function(e){var t=e.onChange,r=e.onSwatchHover,o=e.hex,f=e.colors,s=e.width,p=e.triangle,d=e.styles,h=void 0===d?{}:d,b=e.className,v=void 0===b?"":b,g=(0,a.default)((0,u.default)({default:{card:{width:s,background:"#fff",border:"0 solid rgba(0,0,0,0.25)",boxShadow:"0 1px 4px rgba(0,0,0,0.25)",borderRadius:"4px",position:"relative"},body:{padding:"15px 9px 9px 15px"},label:{fontSize:"18px",color:"#fff"},triangle:{width:"0px",height:"0px",borderStyle:"solid",borderWidth:"0 9px 10px 9px",borderColor:"transparent transparent #fff transparent",position:"absolute"},triangleShadow:{width:"0px",height:"0px",borderStyle:"solid",borderWidth:"0 9px 10px 9px",borderColor:"transparent transparent rgba(0,0,0,.1) transparent",position:"absolute"},hash:{background:"#F0F0F0",height:"30px",width:"30px",borderRadius:"4px 0 0 4px",float:"left",color:"#98A1A4",display:"flex",alignItems:"center",justifyContent:"center"},input:{width:"100px",fontSize:"14px",color:"#666",border:"0px",outline:"none",height:"28px",boxShadow:"inset 0 0 0 1px #F0F0F0",boxSizing:"content-box",borderRadius:"0 4px 4px 0",float:"left",paddingLeft:"8px"},swatch:{width:"30px",height:"30px",float:"left",borderRadius:"4px",margin:"0 6px 6px 0"},clear:{clear:"both"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-10px",left:"12px"},triangleShadow:{top:"-11px",left:"12px"}},"top-right-triangle":{triangle:{top:"-10px",right:"12px"},triangleShadow:{top:"-11px",right:"12px"}}},h),{"hide-triangle":"hide"===p,"top-left-triangle":"top-left"===p,"top-right-triangle":"top-right"===p}),x=function(e,r){l.default.isValidHex(e)&&t({hex:e,source:"hex"},r)};return n.default.createElement("div",{style:g.card,className:"twitter-picker "+v},n.default.createElement("div",{style:g.triangleShadow}),n.default.createElement("div",{style:g.triangle}),n.default.createElement("div",{style:g.body},(0,i.default)(f,(function(e,t){return n.default.createElement(c.Swatch,{key:t,color:e,hex:e,style:g.swatch,onClick:x,onHover:r,focusStyle:{boxShadow:"0 0 4px "+e}})})),n.default.createElement("div",{style:g.hash},"#"),n.default.createElement(c.EditableInput,{label:null,style:{input:g.input},value:o.replace("#",""),onChange:x}),n.default.createElement("div",{style:g.clear})))};s.propTypes={width:o.default.oneOfType([o.default.string,o.default.number]),triangle:o.default.oneOf(["hide","top-left","top-right"]),colors:o.default.arrayOf(o.default.string),styles:o.default.object},s.defaultProps={width:276,colors:["#FF6900","#FCB900","#7BDCB5","#00D084","#8ED1FC","#0693E3","#ABB8C3","#EB144C","#F78DA7","#9900EF"],triangle:"top-left",styles:{}},t.default=(0,c.ColorWrap)(s)}])]); +(window.webpackJsonpdash_daq=window.webpackJsonpdash_daq||[]).push([[0],Array(157).concat([function(e,t,r){"use strict";r.r(t);var n=r(1),o=r.n(n),a=r(273),i=r(2),u=r(29),l=r.n(u),c=r(3);function f(){var e=_(["\n box-shadow: 0px 0px 8px 2px rgba(100,100,100,0.075),\n 0px 0px 32px 2px rgba(255,255,255,0.05),\n 1px 1px 0px 0px rgba(25,25,25,0.6),\n -1px -1px 0px 0px rgba(255,255,255,0.2) !important;\n\n & .chrome-picker > div:first-child {\n border-radius: 0 !important;\n }\n\n & .chrome-picker > div:nth-child(2) {\n background: #0a0a0a !important;\n border-top: 1px solid rgba(255,255,255,0.075);\n }\n\n ","\n ","\n ","\n"]);return f=function(){return e},e}function s(){var e=_(["\n & .chrome-picker input {\n font-family: unset !important;\n color: #fff !important;\n border-radius: 0px !important;\n background-color: #22272a !important;\n background-image: linear-gradient(\n 145deg,\n rgba(255, 255, 255, 0.05) 0%,\n rgba(0, 0, 0, 0.5) 100%\n ) !important;\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1) !important;\n }\n\n & .chrome-picker input:focus {\n outline: 0 !important;\n border: none !important;\n background-image: linear-gradient(\n 145deg,\n rgba(255, 255, 255, 0.2) 0%,\n rgba(0, 0, 0, 0.4) 100%\n ) !important;\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.6), inset 0 0 4px 0 rgba(0, 0, 0, 0.6),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.6), 1px 1px 0px 0px rgba(255, 255, 255, 0.1) !important;\n }\n"]);return s=function(){return e},e}function p(){var e=_(["\n .chrome-picker .flexbox-fix div:nth-child(2) > div:nth-child(2) > div {\n background: #fff !important;\n }\n"]);return p=function(){return e},e}function d(){var e=_(["\n box-shadow: inset 0 0 1px 0 rgba(52, 52, 52, 0.4), inset 0 0 0 1px rgba(0, 0, 0, 0.2),\n 0 0 12px 4px "," !important;\n "]);return d=function(){return e},e}function h(){var e=_(["\n & .chrome-picker .hue-horizontal > div > div,\n .chrome-picker\n > div:nth-child(2)\n > div:nth-child(1)\n > div:nth-child(2)\n > div:nth-child(2)\n > div\n > div:nth-child(3)\n > div\n > div {\n border-radius: 100% !important;\n border: none !important;\n background: #101010 !important;\n background-image: linear-gradient(\n 135deg,\n rgba(255, 255, 255, 0.3) -50%,\n rgba(0, 0, 0, 0.7) 100%\n ) !important;\n transition: all 0.3s ease-in !important;\n ",";\n }\n"]);return h=function(){return e},e}function b(){var e=_(["\n border: 1px solid ",";\n "]);return b=function(){return e},e}function v(){var e=_(["\n border-radius: 3px !important;\n\n "," ",";\n"]);return v=function(){return e},e}function g(){var e=_(["\n border: 1px solid "," !important;\n "]);return g=function(){return e},e}function x(){var e=_(["\n & .chrome-picker .hue-horizontal > div > div,\n .chrome-picker\n > div:nth-child(2)\n > div:nth-child(1)\n > div:nth-child(2)\n > div:nth-child(2)\n > div\n > div:nth-child(3)\n > div\n > div {\n box-shadow: none !important;\n background-color: #fff;\n border-radius: 100% !important;\n ",";\n }\n"]);return x=function(){return e},e}function y(){var e=_(["\n width: ","px !important;\n "]);return y=function(){return e},e}function m(){var e=_(["\n opacity: ",";\n cursor: not-allowed !important;\n & .chrome-picker {\n pointer-events: none !important;\n }\n "]);return m=function(){return e},e}function w(){var e=_(["\n "," & .chrome-picker {\n font-family: unset !important;\n box-shadow: none !important;\n ",";\n }\n\n & .chrome-picker svg {\n background: unset !important;\n }\n\n & .chrome-picker svg:hover path {\n fill: ",";\n }\n\n ",";\n"]);return w=function(){return e},e}function _(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var j=i.c.div(w(),(function(e){var t=e.disabled,r=e.theme;return t&&Object(i.b)(m(),r.dark?1:.65)}),(function(e){var t=e.size;return Object(i.b)(y(),t)}),(function(e){var t=e.theme;return e.color||t.primary}),(function(e){return e.theme.dark?P:E})),O=Object(i.b)(x(),(function(e){var t=e.theme;return Object(i.b)(g(),t.detail)})),E=Object(i.b)(v(),O,(function(e){var t=e.theme;return Object(i.b)(b(),t.detail)})),C=Object(i.b)(h(),(function(e){var t=e.glow;return Object(i.b)(d(),t)})),S=Object(i.b)(p()),k=Object(i.b)(s()),P=Object(i.b)(f(),C,k,S);j.defaultProps={theme:c.e};var M=r(7),B=r(61),A=r(4);function F(e){return(F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function R(){return(R=Object.assign||function(e){for(var t=1;t1?t-1:0),i=1;i=128?"#000":"#fff"},t.red={hsl:{a:1,h:0,l:.5,s:1},hex:"#ff0000",rgb:{r:255,g:0,b:0,a:1},hsv:{h:0,s:1,v:1,a:1}};t.default=t},function(e,t,r){var n=r(226),o="object"==typeof self&&self&&self.Object===Object&&self,a=n||o||Function("return this")();e.exports=a},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,r){var n=r(177),o=r(277),a=r(278),i=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?o(e):a(e)}},function(e,t,r){var n=r(303),o=r(306);e.exports=function(e,t){var r=o(e,t);return n(r)?r:void 0}},function(e,t,r){var n=r(399),o=r(404);e.exports=function(e,t){var r=o(e,t);return n(r)?r:void 0}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,r){var n=r(265),o=r(467),a=r(505),i=r(164);e.exports=function(e,t){return(i(e)?n:a)(e,o(t,3))}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,r){var n=r(190),o=r(400),a=r(401),i=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?o(e):a(e)}},function(e,t,r){var n=r(215),o=r(220);e.exports=function(e){return null!=e&&o(e.length)&&!n(e)}},function(e,t,r){var n=r(166).Symbol;e.exports=n},function(e,t,r){var n=r(228),o=r(285),a=r(180);e.exports=function(e){return a(e)?n(e):o(e)}},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,r){var n=r(233),o=r(198);e.exports=function(e){return null!=e&&o(e.length)&&!n(e)}},function(e,t,r){var n=r(293),o=r(294),a=r(295),i=r(296),u=r(297);function l(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e<=9007199254740991}},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t,r){(function(e){var n=r(226),o=t&&!t.nodeType&&t,a=o&&"object"==typeof e&&e&&!e.nodeType&&e,i=a&&a.exports===o&&n.process,u=function(){try{var e=a&&a.require&&a.require("util").types;return e||i&&i.binding&&i.binding("util")}catch(e){}}();e.exports=u}).call(this,r(173)(e))},function(e,t){var r=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||r)}},function(e,t,r){var n=r(232)(Object.getPrototypeOf,Object);e.exports=n},function(e,t,r){var n=r(181),o=r(298),a=r(299),i=r(300),u=r(301),l=r(302);function c(e){var t=this.__data__=new n(e);this.size=t.size}c.prototype.clear=o,c.prototype.delete=a,c.prototype.get=i,c.prototype.has=u,c.prototype.set=l,e.exports=c},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,r){var n=r(169)(r(166),"Map");e.exports=n},function(e,t,r){var n=r(307),o=r(314),a=r(316),i=r(317),u=r(318);function l(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e<=9007199254740991}},function(e,t,r){(function(e){var n=r(162),o=r(427),a=t&&!t.nodeType&&t,i=a&&"object"==typeof e&&e&&!e.nodeType&&e,u=i&&i.exports===a?n.Buffer:void 0,l=(u?u.isBuffer:void 0)||o;e.exports=l}).call(this,r(173)(e))},function(e,t,r){var n=r(429),o=r(430),a=r(431),i=a&&a.isTypedArray,u=i?o(i):n;e.exports=u},function(e,t){var r=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&r.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&ef))return!1;var p=l.get(e),d=l.get(t);if(p&&d)return p==t&&d==e;var h=-1,b=!0,v=2&r?new n:void 0;for(l.set(e,t),l.set(t,e);++h=t||r<0||v&&e-h>=f}function w(){var e=o();if(m(e))return _(e);p=setTimeout(w,function(e){var r=t-(e-d);return v?u(r,f-(e-h)):r}(e))}function _(e){return p=void 0,g&&l?x(e):(l=c=void 0,s)}function j(){var e=o(),r=m(e);if(l=arguments,c=this,d=e,r){if(void 0===p)return y(d);if(v)return clearTimeout(p),p=setTimeout(w,t),x(d)}return void 0===p&&(p=setTimeout(w,t)),s}return t=a(t)||0,n(r)&&(b=!!r.leading,f=(v="maxWait"in r)?i(a(r.maxWait)||0,t):f,g="trailing"in r?!!r.trailing:g),j.cancel=function(){void 0!==p&&clearTimeout(p),h=0,l=d=c=p=void 0},j.flush=function(){return void 0===p?s:_(o())},j}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ColorWrap=void 0;var n=Object.assign||function(e){for(var t=1;tf))return!1;var p=l.get(e),d=l.get(t);if(p&&d)return p==t&&d==e;var h=-1,b=!0,v=2&r?new n:void 0;for(l.set(e,t),l.set(t,e);++h0&&void 0!==arguments[0]?arguments[0]:[],r=[];return(0,i.default)(t,(function(t){Array.isArray(t)?e(t).map((function(e){return r.push(e)})):(0,a.default)(t)?(0,o.default)(t,(function(e,t){!0===e&&r.push(t),r.push(t+"-"+e)})):(0,n.default)(t)&&r.push(t)})),r};t.default=l},function(e,t,r){var n=r(168),o=r(161),a=r(167);e.exports=function(e){return"string"==typeof e||!o(e)&&a(e)&&"[object String]"==n(e)}},function(e,t,r){var n=r(177),o=Object.prototype,a=o.hasOwnProperty,i=o.toString,u=n?n.toStringTag:void 0;e.exports=function(e){var t=a.call(e,u),r=e[u];try{e[u]=void 0;var n=!0}catch(e){}var o=i.call(e);return n&&(t?e[u]=r:delete e[u]),o}},function(e,t){var r=Object.prototype.toString;e.exports=function(e){return r.call(e)}},function(e,t,r){var n=r(280)();e.exports=n},function(e,t){e.exports=function(e){return function(t,r,n){for(var o=-1,a=Object(t),i=n(t),u=i.length;u--;){var l=i[e?u:++o];if(!1===r(a[l],l,a))break}return t}}},function(e,t){e.exports=function(e,t){for(var r=-1,n=Array(e);++r-1}},function(e,t,r){var n=r(182);e.exports=function(e,t){var r=this.__data__,o=n(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}},function(e,t,r){var n=r(181);e.exports=function(){this.__data__=new n,this.size=0}},function(e,t){e.exports=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}},function(e,t){e.exports=function(e){return this.__data__.get(e)}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t,r){var n=r(181),o=r(205),a=r(206);e.exports=function(e,t){var r=this.__data__;if(r instanceof n){var i=r.__data__;if(!o||i.length<199)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new a(i)}return r.set(e,t),this.size=r.size,this}},function(e,t,r){var n=r(233),o=r(304),a=r(174),i=r(236),u=/^\[object .+?Constructor\]$/,l=Function.prototype,c=Object.prototype,f=l.toString,s=c.hasOwnProperty,p=RegExp("^"+f.call(s).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!a(e)||o(e))&&(n(e)?p:u).test(i(e))}},function(e,t,r){var n,o=r(305),a=(n=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";e.exports=function(e){return!!a&&a in e}},function(e,t,r){var n=r(166)["__core-js_shared__"];e.exports=n},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,r){var n=r(308),o=r(181),a=r(205);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(a||o),string:new n}}},function(e,t,r){var n=r(309),o=r(310),a=r(311),i=r(312),u=r(313);function l(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t1&&void 0!==arguments[1]?arguments[1]:[],r=e.default&&(0,o.default)(e.default)||{};return t.map((function(t){var o=e[t];return o&&(0,n.default)(o,(function(e,t){r[t]||(r[t]={}),r[t]=a({},r[t],o[t])})),t})),r};t.default=u},function(e,t,r){var n=r(353);e.exports=function(e){return n(e,5)}},function(e,t,r){var n=r(203),o=r(354),a=r(248),i=r(356),u=r(357),l=r(360),c=r(361),f=r(362),s=r(363),p=r(240),d=r(364),h=r(185),b=r(365),v=r(366),g=r(371),x=r(161),y=r(197),m=r(373),w=r(174),_=r(375),j=r(178),O=r(210),E={};E["[object Arguments]"]=E["[object Array]"]=E["[object ArrayBuffer]"]=E["[object DataView]"]=E["[object Boolean]"]=E["[object Date]"]=E["[object Float32Array]"]=E["[object Float64Array]"]=E["[object Int8Array]"]=E["[object Int16Array]"]=E["[object Int32Array]"]=E["[object Map]"]=E["[object Number]"]=E["[object Object]"]=E["[object RegExp]"]=E["[object Set]"]=E["[object String]"]=E["[object Symbol]"]=E["[object Uint8Array]"]=E["[object Uint8ClampedArray]"]=E["[object Uint16Array]"]=E["[object Uint32Array]"]=!0,E["[object Error]"]=E["[object Function]"]=E["[object WeakMap]"]=!1,e.exports=function e(t,r,C,S,k,P){var M,B=1&r,A=2&r,F=4&r;if(C&&(M=k?C(t,S,k,P):C(t)),void 0!==M)return M;if(!w(t))return t;var R=x(t);if(R){if(M=b(t),!B)return c(t,M)}else{var T=h(t),z="[object Function]"==T||"[object GeneratorFunction]"==T;if(y(t))return l(t,B);if("[object Object]"==T||"[object Arguments]"==T||z&&!k){if(M=A||z?{}:g(t),!B)return A?s(t,u(M,t)):f(t,i(M,t))}else{if(!E[T])return k?t:{};M=v(t,T,B)}}P||(P=new n);var H=P.get(t);if(H)return H;P.set(t,M),_(t)?t.forEach((function(n){M.add(e(n,r,C,n,t,P))})):m(t)&&t.forEach((function(n,o){M.set(o,e(n,r,C,o,t,P))}));var D=R?void 0:(F?A?d:p:A?O:j)(t);return o(D||t,(function(n,o){D&&(n=t[o=n]),a(M,o,e(n,r,C,o,t,P))})),M}},function(e,t){e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r1&&void 0!==arguments[1]?arguments[1]:"span";return function(r){function n(){var r,a,c;u(this,n);for(var f=arguments.length,s=Array(f),p=0;p1&&void 0!==arguments[1]?arguments[1]:"span";return function(r){function n(){var r,a,c;u(this,n);for(var f=arguments.length,s=Array(f),p=0;p1&&void 0!==arguments[1])||arguments[1];r[e]=t};return 0===e&&n("first-child"),e===t-1&&n("last-child"),(0===e||e%2==0)&&n("even"),1===Math.abs(e%2)&&n("odd"),n("nth-child",e),r}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Alpha=void 0;var n=Object.assign||function(e){for(var t=1;ti?1:Math.round(100*f/i)/100,t.a!==s)return{h:t.h,s:t.s,l:t.l,a:s,source:"rgb"}}else{var p=void 0;if(n!==(p=c<0?0:c>a?1:Math.round(100*c/a)/100))return{h:t.h,s:t.s,l:t.l,a:p,source:"rgb"}}return null}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={},o=t.render=function(e,t,r,n){if("undefined"==typeof document&&!n)return null;var o=n?new n:document.createElement("canvas");o.width=2*r,o.height=2*r;var a=o.getContext("2d");return a?(a.fillStyle=e,a.fillRect(0,0,o.width,o.height),a.fillStyle=t,a.fillRect(0,0,r,r),a.translate(r,r),a.fillRect(0,0,r,r),o.toDataURL()):null};t.get=function(e,t,r,a){var i=e+"-"+t+"-"+r+(a?"-server":"");if(n[i])return n[i];var u=o(e,t,r,a);return n[i]=u,u}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EditableInput=void 0;var n=function(){function e(e,t){for(var r=0;r-1)){var o=r.getArrowOffset(),a=38===e.keyCode?n+o:n-o;r.setUpdatedValue(a,e)}},r.handleDrag=function(e){if(r.props.dragLabel){var t=Math.round(r.props.value+e.movementX);t>=0&&t<=r.props.dragMax&&r.props.onChange&&r.props.onChange(r.getValueObjectWithLabel(t),e)}},r.handleMouseDown=function(e){r.props.dragLabel&&(e.preventDefault(),r.handleDrag(e),window.addEventListener("mousemove",r.handleDrag),window.addEventListener("mouseup",r.handleMouseUp))},r.handleMouseUp=function(){r.unbindEventListeners()},r.unbindEventListeners=function(){window.removeEventListener("mousemove",r.handleDrag),window.removeEventListener("mouseup",r.handleMouseUp)},r.state={value:String(e.value).toUpperCase(),blurValue:String(e.value).toUpperCase()},r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),n(t,[{key:"componentDidUpdate",value:function(e,t){this.props.value===this.state.value||e.value===this.props.value&&t.value===this.state.value||(this.input===document.activeElement?this.setState({blurValue:String(this.props.value).toUpperCase()}):this.setState({value:String(this.props.value).toUpperCase(),blurValue:!this.state.blurValue&&String(this.props.value).toUpperCase()}))}},{key:"componentWillUnmount",value:function(){this.unbindEventListeners()}},{key:"getValueObjectWithLabel",value:function(e){return function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}({},this.props.label,e)}},{key:"getArrowOffset",value:function(){return this.props.arrowOffset||1}},{key:"setUpdatedValue",value:function(e,t){var r=this.props.label?this.getValueObjectWithLabel(e):e;this.props.onChange&&this.props.onChange(r,t);var n,o=function(e){return String(e).indexOf("%")>-1}(t.target.value);this.setState({value:o?(n=e,n+"%"):e})}},{key:"render",value:function(){var e=this,t=(0,i.default)({default:{wrap:{position:"relative"}},"user-override":{wrap:this.props.style&&this.props.style.wrap?this.props.style.wrap:{},input:this.props.style&&this.props.style.input?this.props.style.input:{},label:this.props.style&&this.props.style.label?this.props.style.label:{}},"dragLabel-true":{label:{cursor:"ew-resize"}}},{"user-override":!0},this.props);return a.default.createElement("div",{style:t.wrap},a.default.createElement("input",{style:t.input,ref:function(t){return e.input=t},value:this.state.value,onKeyDown:this.handleKeyDown,onChange:this.handleChange,onBlur:this.handleBlur,placeholder:this.props.placeholder,spellCheck:"false"}),this.props.label&&!this.props.hideLabel?a.default.createElement("span",{style:t.label,onMouseDown:this.handleMouseDown},this.props.label):null)}}]),t}(o.PureComponent||o.Component);t.default=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Hue=void 0;var n=function(){function e(e,t){for(var r=0;ra)f=0;else{f=360*(-100*c/a+100)/100}if(r.h!==f)return{h:f,s:r.s,l:r.l,a:r.a,source:"rgb"}}else{var s=void 0;if(l<0)s=0;else if(l>o)s=359;else{s=360*(100*l/o)/100}if(r.h!==s)return{h:s,s:r.s,l:r.l,a:r.a,source:"rgb"}}return null}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Raised=void 0;var n=u(r(1)),o=u(r(0)),a=u(r(158)),i=u(r(160));function u(e){return e&&e.__esModule?e:{default:e}}var l=t.Raised=function(e){var t=e.zDepth,r=e.radius,o=e.background,u=e.children,l=e.styles,c=void 0===l?{}:l,f=(0,a.default)((0,i.default)({default:{wrap:{position:"relative",display:"inline-block"},content:{position:"relative"},bg:{absolute:"0px 0px 0px 0px",boxShadow:"0 "+t+"px "+4*t+"px rgba(0,0,0,.24)",borderRadius:r,background:o}},"zDepth-0":{bg:{boxShadow:"none"}},"zDepth-1":{bg:{boxShadow:"0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)"}},"zDepth-2":{bg:{boxShadow:"0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)"}},"zDepth-3":{bg:{boxShadow:"0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)"}},"zDepth-4":{bg:{boxShadow:"0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)"}},"zDepth-5":{bg:{boxShadow:"0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)"}},square:{bg:{borderRadius:"0"}},circle:{bg:{borderRadius:"50%"}}},c),{"zDepth-1":1===t});return n.default.createElement("div",{style:f.wrap},n.default.createElement("div",{style:f.bg}),n.default.createElement("div",{style:f.content},u))};l.propTypes={background:o.default.string,zDepth:o.default.oneOf([0,1,2,3,4,5]),radius:o.default.number,styles:o.default.object},l.defaultProps={background:"#fff",zDepth:1,radius:2,styles:{}},t.default=l},function(e,t,r){var n=r(213),o=r(253),a=r(255),i=r(418),u=r(163),l=r(260),c=r(259);e.exports=function e(t,r,f,s,p){t!==r&&a(r,(function(a,l){if(p||(p=new n),u(a))i(t,r,l,f,e,s,p);else{var d=s?s(c(t,l),a,l+"",t,r,p):void 0;void 0===d&&(d=a),o(t,l,d)}}),l)}},function(e,t){e.exports=function(){this.__data__=[],this.size=0}},function(e,t,r){var n=r(189),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,r=n(t,e);return!(r<0)&&(r==t.length-1?t.pop():o.call(t,r,1),--this.size,!0)}},function(e,t,r){var n=r(189);e.exports=function(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}},function(e,t,r){var n=r(189);e.exports=function(e){return n(this.__data__,e)>-1}},function(e,t,r){var n=r(189);e.exports=function(e,t){var r=this.__data__,o=n(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}},function(e,t,r){var n=r(188);e.exports=function(){this.__data__=new n,this.size=0}},function(e,t){e.exports=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}},function(e,t){e.exports=function(e){return this.__data__.get(e)}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t,r){var n=r(188),o=r(214),a=r(216);e.exports=function(e,t){var r=this.__data__;if(r instanceof n){var i=r.__data__;if(!o||i.length<199)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new a(i)}return r.set(e,t),this.size=r.size,this}},function(e,t,r){var n=r(215),o=r(402),a=r(163),i=r(252),u=/^\[object .+?Constructor\]$/,l=Function.prototype,c=Object.prototype,f=l.toString,s=c.hasOwnProperty,p=RegExp("^"+f.call(s).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!a(e)||o(e))&&(n(e)?p:u).test(i(e))}},function(e,t,r){var n=r(190),o=Object.prototype,a=o.hasOwnProperty,i=o.toString,u=n?n.toStringTag:void 0;e.exports=function(e){var t=a.call(e,u),r=e[u];try{e[u]=void 0;var n=!0}catch(e){}var o=i.call(e);return n&&(t?e[u]=r:delete e[u]),o}},function(e,t){var r=Object.prototype.toString;e.exports=function(e){return r.call(e)}},function(e,t,r){var n,o=r(403),a=(n=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";e.exports=function(e){return!!a&&a in e}},function(e,t,r){var n=r(162)["__core-js_shared__"];e.exports=n},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,r){var n=r(406),o=r(188),a=r(214);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(a||o),string:new n}}},function(e,t,r){var n=r(407),o=r(408),a=r(409),i=r(410),u=r(411);function l(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t1?r[a-1]:void 0,u=a>2?r[2]:void 0;for(i=e.length>3&&"function"==typeof i?(a--,i):void 0,u&&o(r[0],r[1],u)&&(i=a<3?void 0:i,a=1),t=Object(t);++n0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}},function(e,t,r){var n=r(179),o=r(176),a=r(223),i=r(163);e.exports=function(e,t,r){if(!i(r))return!1;var u=typeof t;return!!("number"==u?o(r)&&a(t,r.length):"string"==u&&t in r)&&n(r[t],e)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Saturation=void 0;var n=function(){function e(e,t){for(var r=0;ro&&(l=o),c<0?c=0:c>a&&(c=a);var f=l/o,s=1-c/a;return{h:t.h,s:f,v:s,a:t.a,source:"rgb"}}},function(e,t,r){e.exports=r(455)},function(e,t,r){var n=r(456),o=r(264),a=r(461),i=r(164);e.exports=function(e,t){return(i(e)?n:o)(e,a(t))}},function(e,t){e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r1&&void 0!==arguments[1]?arguments[1]:"span";return function(r){function n(){var e,t,r;l(this,n);for(var o=arguments.length,a=Array(o),i=0;i1&&(e.a=1),r.props.onChange({h:r.props.hsl.h,s:r.props.hsl.s,l:r.props.hsl.l,a:Math.round(100*e.a)/100,source:"rgb"},t)):(e.h||e.s||e.l)&&("string"==typeof e.s&&e.s.includes("%")&&(e.s=e.s.replace("%","")),"string"==typeof e.l&&e.l.includes("%")&&(e.l=e.l.replace("%","")),r.props.onChange({h:e.h||r.props.hsl.h,s:Number(e.s&&e.s||r.props.hsl.s),l:Number(e.l&&e.l||r.props.hsl.l),source:"hsl"},t))},r.showHighlight=function(e){e.currentTarget.style.background="#eee"},r.hideHighlight=function(e){e.currentTarget.style.background="transparent"},1!==e.hsl.a&&"hex"===e.view?r.state={view:"rgb"}:r.state={view:e.view},r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),n(t,[{key:"render",value:function(){var e=this,t=(0,a.default)({default:{wrap:{paddingTop:"16px",display:"flex"},fields:{flex:"1",display:"flex",marginLeft:"-6px"},field:{paddingLeft:"6px",width:"100%"},alpha:{paddingLeft:"6px",width:"100%"},toggle:{width:"32px",textAlign:"right",position:"relative"},icon:{marginRight:"-4px",marginTop:"12px",cursor:"pointer",position:"relative"},iconHighlight:{position:"absolute",width:"24px",height:"28px",background:"#eee",borderRadius:"4px",top:"10px",left:"12px",display:"none"},input:{fontSize:"11px",color:"#333",width:"100%",borderRadius:"2px",border:"none",boxShadow:"inset 0 0 0 1px #dadada",height:"21px",textAlign:"center"},label:{textTransform:"uppercase",fontSize:"11px",lineHeight:"11px",color:"#969696",textAlign:"center",display:"block",marginTop:"12px"},svg:{fill:"#333",width:"24px",height:"24px",border:"1px transparent solid",borderRadius:"5px"}},disableAlpha:{alpha:{display:"none"}}},this.props,this.state),r=void 0;return"hex"===this.state.view?r=o.default.createElement("div",{style:t.fields,className:"flexbox-fix"},o.default.createElement("div",{style:t.field},o.default.createElement(u.EditableInput,{style:{input:t.input,label:t.label},label:"hex",value:this.props.hex,onChange:this.handleChange}))):"rgb"===this.state.view?r=o.default.createElement("div",{style:t.fields,className:"flexbox-fix"},o.default.createElement("div",{style:t.field},o.default.createElement(u.EditableInput,{style:{input:t.input,label:t.label},label:"r",value:this.props.rgb.r,onChange:this.handleChange})),o.default.createElement("div",{style:t.field},o.default.createElement(u.EditableInput,{style:{input:t.input,label:t.label},label:"g",value:this.props.rgb.g,onChange:this.handleChange})),o.default.createElement("div",{style:t.field},o.default.createElement(u.EditableInput,{style:{input:t.input,label:t.label},label:"b",value:this.props.rgb.b,onChange:this.handleChange})),o.default.createElement("div",{style:t.alpha},o.default.createElement(u.EditableInput,{style:{input:t.input,label:t.label},label:"a",value:this.props.rgb.a,arrowOffset:.01,onChange:this.handleChange}))):"hsl"===this.state.view&&(r=o.default.createElement("div",{style:t.fields,className:"flexbox-fix"},o.default.createElement("div",{style:t.field},o.default.createElement(u.EditableInput,{style:{input:t.input,label:t.label},label:"h",value:Math.round(this.props.hsl.h),onChange:this.handleChange})),o.default.createElement("div",{style:t.field},o.default.createElement(u.EditableInput,{style:{input:t.input,label:t.label},label:"s",value:Math.round(100*this.props.hsl.s)+"%",onChange:this.handleChange})),o.default.createElement("div",{style:t.field},o.default.createElement(u.EditableInput,{style:{input:t.input,label:t.label},label:"l",value:Math.round(100*this.props.hsl.l)+"%",onChange:this.handleChange})),o.default.createElement("div",{style:t.alpha},o.default.createElement(u.EditableInput,{style:{input:t.input,label:t.label},label:"a",value:this.props.hsl.a,arrowOffset:.01,onChange:this.handleChange})))),o.default.createElement("div",{style:t.wrap,className:"flexbox-fix"},r,o.default.createElement("div",{style:t.toggle},o.default.createElement("div",{style:t.icon,onClick:this.toggleViews,ref:function(t){return e.icon=t}},o.default.createElement(l.default,{style:t.svg,onMouseOver:this.showHighlight,onMouseEnter:this.showHighlight,onMouseOut:this.hideHighlight}))))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return 1!==e.hsl.a&&"hex"===t.view?{view:"rgb"}:null}}]),t}(o.default.Component);f.defaultProps={view:"hex"},t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,o=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}(e,["fill","width","height","style"]);return i.default.createElement("svg",o({viewBox:"0 0 24 24",style:o({fill:r,width:a,height:l},f)},s),i.default.createElement("path",{d:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"}))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChromePointer=void 0;var n=a(r(1)),o=a(r(158));function a(e){return e&&e.__esModule?e:{default:e}}var i=t.ChromePointer=function(){var e=(0,o.default)({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",transform:"translate(-6px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}}});return n.default.createElement("div",{style:e.picker})};t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChromePointerCircle=void 0;var n=a(r(1)),o=a(r(158));function a(e){return e&&e.__esModule?e:{default:e}}var i=t.ChromePointerCircle=function(){var e=(0,o.default)({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",boxShadow:"inset 0 0 0 1px #fff",transform:"translate(-6px, -6px)"}}});return n.default.createElement("div",{style:e.picker})};t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Compact=void 0;var n=p(r(1)),o=p(r(0)),a=p(r(158)),i=p(r(172)),u=p(r(160)),l=p(r(165)),c=r(159),f=p(r(514)),s=p(r(515));function p(e){return e&&e.__esModule?e:{default:e}}var d=t.Compact=function(e){var t=e.onChange,r=e.onSwatchHover,o=e.colors,p=e.hex,d=e.rgb,h=e.styles,b=void 0===h?{}:h,v=e.className,g=void 0===v?"":v,x=(0,a.default)((0,u.default)({default:{Compact:{background:"#f6f6f6",radius:"4px"},compact:{paddingTop:"5px",paddingLeft:"5px",boxSizing:"initial",width:"240px"},clear:{clear:"both"}}},b)),y=function(e,r){e.hex?l.default.isValidHex(e.hex)&&t({hex:e.hex,source:"hex"},r):t(e,r)};return n.default.createElement(c.Raised,{style:x.Compact,styles:b},n.default.createElement("div",{style:x.compact,className:"compact-picker "+g},n.default.createElement("div",null,(0,i.default)(o,(function(e){return n.default.createElement(f.default,{key:e,color:e,active:e.toLowerCase()===p,onClick:y,onSwatchHover:r})})),n.default.createElement("div",{style:x.clear})),n.default.createElement(s.default,{hex:p,rgb:d,onChange:y})))};d.propTypes={colors:o.default.arrayOf(o.default.string),styles:o.default.object},d.defaultProps={colors:["#4D4D4D","#999999","#FFFFFF","#F44E3B","#FE9200","#FCDC00","#DBDF00","#A4DD00","#68CCCA","#73D8FF","#AEA1FF","#FDA1FF","#333333","#808080","#cccccc","#D33115","#E27300","#FCC400","#B0BC00","#68BC00","#16A5A5","#009CE0","#7B64FF","#FA28FF","#000000","#666666","#B3B3B3","#9F0500","#C45100","#FB9E00","#808900","#194D33","#0C797D","#0062B1","#653294","#AB149E"],styles:{}},t.default=(0,c.ColorWrap)(d)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CompactColor=void 0;var n=u(r(1)),o=u(r(158)),a=u(r(165)),i=r(159);function u(e){return e&&e.__esModule?e:{default:e}}var l=t.CompactColor=function(e){var t=e.color,r=e.onClick,u=void 0===r?function(){}:r,l=e.onSwatchHover,c=e.active,f=(0,o.default)({default:{color:{background:t,width:"15px",height:"15px",float:"left",marginRight:"5px",marginBottom:"5px",position:"relative",cursor:"pointer"},dot:{absolute:"5px 5px 5px 5px",background:a.default.getContrastingColor(t),borderRadius:"50%",opacity:"0"}},active:{dot:{opacity:"1"}},"color-#FFFFFF":{color:{boxShadow:"inset 0 0 0 1px #ddd"},dot:{background:"#000"}},transparent:{dot:{background:"#000"}}},{active:c,"color-#FFFFFF":"#FFFFFF"===t,transparent:"transparent"===t});return n.default.createElement(i.Swatch,{style:f.color,color:t,onClick:u,onHover:l,focusStyle:{boxShadow:"0 0 4px "+t}},n.default.createElement("div",{style:f.dot}))};t.default=l},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CompactFields=void 0;var n=i(r(1)),o=i(r(158)),a=r(159);function i(e){return e&&e.__esModule?e:{default:e}}var u=t.CompactFields=function(e){var t=e.hex,r=e.rgb,i=e.onChange,u=(0,o.default)({default:{fields:{display:"flex",paddingBottom:"6px",paddingRight:"5px",position:"relative"},active:{position:"absolute",top:"6px",left:"5px",height:"9px",width:"9px",background:t},HEXwrap:{flex:"6",position:"relative"},HEXinput:{width:"80%",padding:"0px",paddingLeft:"20%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},HEXlabel:{display:"none"},RGBwrap:{flex:"3",position:"relative"},RGBinput:{width:"70%",padding:"0px",paddingLeft:"30%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},RGBlabel:{position:"absolute",top:"3px",left:"0px",lineHeight:"16px",textTransform:"uppercase",fontSize:"12px",color:"#999"}}}),l=function(e,t){e.r||e.g||e.b?i({r:e.r||r.r,g:e.g||r.g,b:e.b||r.b,source:"rgb"},t):i({hex:e.hex,source:"hex"},t)};return n.default.createElement("div",{style:u.fields,className:"flexbox-fix"},n.default.createElement("div",{style:u.active}),n.default.createElement(a.EditableInput,{style:{wrap:u.HEXwrap,input:u.HEXinput,label:u.HEXlabel},label:"hex",value:t,onChange:l}),n.default.createElement(a.EditableInput,{style:{wrap:u.RGBwrap,input:u.RGBinput,label:u.RGBlabel},label:"r",value:r.r,onChange:l}),n.default.createElement(a.EditableInput,{style:{wrap:u.RGBwrap,input:u.RGBinput,label:u.RGBlabel},label:"g",value:r.g,onChange:l}),n.default.createElement(a.EditableInput,{style:{wrap:u.RGBwrap,input:u.RGBinput,label:u.RGBlabel},label:"b",value:r.b,onChange:l}))};t.default=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Github=void 0;var n=f(r(1)),o=f(r(0)),a=f(r(158)),i=f(r(172)),u=f(r(160)),l=r(159),c=f(r(517));function f(e){return e&&e.__esModule?e:{default:e}}var s=t.Github=function(e){var t=e.width,r=e.colors,o=e.onChange,l=e.onSwatchHover,f=e.triangle,s=e.styles,p=void 0===s?{}:s,d=e.className,h=void 0===d?"":d,b=(0,a.default)((0,u.default)({default:{card:{width:t,background:"#fff",border:"1px solid rgba(0,0,0,0.2)",boxShadow:"0 3px 12px rgba(0,0,0,0.15)",borderRadius:"4px",position:"relative",padding:"5px",display:"flex",flexWrap:"wrap"},triangle:{position:"absolute",border:"7px solid transparent",borderBottomColor:"#fff"},triangleShadow:{position:"absolute",border:"8px solid transparent",borderBottomColor:"rgba(0,0,0,0.15)"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-14px",left:"10px"},triangleShadow:{top:"-16px",left:"9px"}},"top-right-triangle":{triangle:{top:"-14px",right:"10px"},triangleShadow:{top:"-16px",right:"9px"}},"bottom-left-triangle":{triangle:{top:"35px",left:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",left:"9px",transform:"rotate(180deg)"}},"bottom-right-triangle":{triangle:{top:"35px",right:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",right:"9px",transform:"rotate(180deg)"}}},p),{"hide-triangle":"hide"===f,"top-left-triangle":"top-left"===f,"top-right-triangle":"top-right"===f,"bottom-left-triangle":"bottom-left"===f,"bottom-right-triangle":"bottom-right"===f}),v=function(e,t){return o({hex:e,source:"hex"},t)};return n.default.createElement("div",{style:b.card,className:"github-picker "+h},n.default.createElement("div",{style:b.triangleShadow}),n.default.createElement("div",{style:b.triangle}),(0,i.default)(r,(function(e){return n.default.createElement(c.default,{color:e,key:e,onClick:v,onSwatchHover:l})})))};s.propTypes={width:o.default.oneOfType([o.default.string,o.default.number]),colors:o.default.arrayOf(o.default.string),triangle:o.default.oneOf(["hide","top-left","top-right","bottom-left","bottom-right"]),styles:o.default.object},s.defaultProps={width:200,colors:["#B80000","#DB3E00","#FCCB00","#008B02","#006B76","#1273DE","#004DCF","#5300EB","#EB9694","#FAD0C3","#FEF3BD","#C1E1C5","#BEDADC","#C4DEF6","#BED3F3","#D4C4FB"],triangle:"top-left",styles:{}},t.default=(0,l.ColorWrap)(s)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GithubSwatch=void 0;var n=u(r(1)),o=r(158),a=u(o),i=r(159);function u(e){return e&&e.__esModule?e:{default:e}}var l=t.GithubSwatch=function(e){var t=e.hover,r=e.color,o=e.onClick,u=e.onSwatchHover,l={position:"relative",zIndex:"2",outline:"2px solid #fff",boxShadow:"0 0 5px 2px rgba(0,0,0,0.25)"},c=(0,a.default)({default:{swatch:{width:"25px",height:"25px",fontSize:"0"}},hover:{swatch:l}},{hover:t});return n.default.createElement("div",{style:c.swatch},n.default.createElement(i.Swatch,{color:r,onClick:o,onHover:u,focusStyle:l}))};t.default=(0,o.handleHover)(l)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HuePicker=void 0;var n=Object.assign||function(e){for(var t=1;t.5});return n.default.createElement("div",{style:r.picker})};t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PhotoshopPointerCircle=void 0;var n=a(r(1)),o=a(r(158));function a(e){return e&&e.__esModule?e:{default:e}}var i=t.PhotoshopPointerCircle=function(){var e=(0,o.default)({default:{triangle:{width:0,height:0,borderStyle:"solid",borderWidth:"4px 0 4px 6px",borderColor:"transparent transparent transparent #fff",position:"absolute",top:"1px",left:"1px"},triangleBorder:{width:0,height:0,borderStyle:"solid",borderWidth:"5px 0 5px 8px",borderColor:"transparent transparent transparent #555"},left:{Extend:"triangleBorder",transform:"translate(-13px, -4px)"},leftInside:{Extend:"triangle",transform:"translate(-8px, -5px)"},right:{Extend:"triangleBorder",transform:"translate(20px, -14px) rotate(180deg)"},rightInside:{Extend:"triangle",transform:"translate(-8px, -5px)"}}});return n.default.createElement("div",{style:e.pointer},n.default.createElement("div",{style:e.left},n.default.createElement("div",{style:e.leftInside})),n.default.createElement("div",{style:e.right},n.default.createElement("div",{style:e.rightInside})))};t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PhotoshopButton=void 0;var n=a(r(1)),o=a(r(158));function a(e){return e&&e.__esModule?e:{default:e}}var i=t.PhotoshopButton=function(e){var t=e.onClick,r=e.label,a=e.children,i=e.active,u=(0,o.default)({default:{button:{backgroundImage:"linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)",border:"1px solid #878787",borderRadius:"2px",height:"20px",boxShadow:"0 1px 0 0 #EAEAEA",fontSize:"14px",color:"#000",lineHeight:"20px",textAlign:"center",marginBottom:"10px",cursor:"pointer"}},active:{button:{boxShadow:"0 0 0 1px #878787"}}},{active:i});return n.default.createElement("div",{style:u.button,onClick:t},r||a)};t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PhotoshopPreviews=void 0;var n=a(r(1)),o=a(r(158));function a(e){return e&&e.__esModule?e:{default:e}}var i=t.PhotoshopPreviews=function(e){var t=e.rgb,r=e.currentColor,a=(0,o.default)({default:{swatches:{border:"1px solid #B3B3B3",borderBottom:"1px solid #F0F0F0",marginBottom:"2px",marginTop:"1px"},new:{height:"34px",background:"rgb("+t.r+","+t.g+", "+t.b+")",boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000"},current:{height:"34px",background:r,boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000"},label:{fontSize:"14px",color:"#000",textAlign:"center"}}});return n.default.createElement("div",null,n.default.createElement("div",{style:a.label},"new"),n.default.createElement("div",{style:a.swatches},n.default.createElement("div",{style:a.new}),n.default.createElement("div",{style:a.current})),n.default.createElement("div",{style:a.label},"current"))};t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Sketch=void 0;var n=Object.assign||function(e){for(var t=1;t100&&(e.a=100),e.a/=100,t({h:u.h,s:u.s,l:u.l,a:e.a,source:"rgb"},n))};return n.default.createElement("div",{style:f.fields,className:"flexbox-fix"},n.default.createElement("div",{style:f.double},n.default.createElement(i.EditableInput,{style:{input:f.input,label:f.label},label:"hex",value:l.replace("#",""),onChange:s})),n.default.createElement("div",{style:f.single},n.default.createElement(i.EditableInput,{style:{input:f.input,label:f.label},label:"r",value:r.r,onChange:s,dragLabel:"true",dragMax:"255"})),n.default.createElement("div",{style:f.single},n.default.createElement(i.EditableInput,{style:{input:f.input,label:f.label},label:"g",value:r.g,onChange:s,dragLabel:"true",dragMax:"255"})),n.default.createElement("div",{style:f.single},n.default.createElement(i.EditableInput,{style:{input:f.input,label:f.label},label:"b",value:r.b,onChange:s,dragLabel:"true",dragMax:"255"})),n.default.createElement("div",{style:f.alpha},n.default.createElement(i.EditableInput,{style:{input:f.input,label:f.label},label:"a",value:Math.round(100*r.a),onChange:s,dragLabel:"true",dragMax:"100"})))};t.default=l},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SketchPresetColors=void 0;var n=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}(e,["fill","width","height","style"]);return i.default.createElement("svg",o({viewBox:"0 0 24 24",style:o({fill:r,width:a,height:l},f)},s),i.default.createElement("path",{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Twitter=void 0;var n=f(r(1)),o=f(r(0)),a=f(r(158)),i=f(r(172)),u=f(r(160)),l=f(r(165)),c=r(159);function f(e){return e&&e.__esModule?e:{default:e}}var s=t.Twitter=function(e){var t=e.onChange,r=e.onSwatchHover,o=e.hex,f=e.colors,s=e.width,p=e.triangle,d=e.styles,h=void 0===d?{}:d,b=e.className,v=void 0===b?"":b,g=(0,a.default)((0,u.default)({default:{card:{width:s,background:"#fff",border:"0 solid rgba(0,0,0,0.25)",boxShadow:"0 1px 4px rgba(0,0,0,0.25)",borderRadius:"4px",position:"relative"},body:{padding:"15px 9px 9px 15px"},label:{fontSize:"18px",color:"#fff"},triangle:{width:"0px",height:"0px",borderStyle:"solid",borderWidth:"0 9px 10px 9px",borderColor:"transparent transparent #fff transparent",position:"absolute"},triangleShadow:{width:"0px",height:"0px",borderStyle:"solid",borderWidth:"0 9px 10px 9px",borderColor:"transparent transparent rgba(0,0,0,.1) transparent",position:"absolute"},hash:{background:"#F0F0F0",height:"30px",width:"30px",borderRadius:"4px 0 0 4px",float:"left",color:"#98A1A4",display:"flex",alignItems:"center",justifyContent:"center"},input:{width:"100px",fontSize:"14px",color:"#666",border:"0px",outline:"none",height:"28px",boxShadow:"inset 0 0 0 1px #F0F0F0",boxSizing:"content-box",borderRadius:"0 4px 4px 0",float:"left",paddingLeft:"8px"},swatch:{width:"30px",height:"30px",float:"left",borderRadius:"4px",margin:"0 6px 6px 0"},clear:{clear:"both"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-10px",left:"12px"},triangleShadow:{top:"-11px",left:"12px"}},"top-right-triangle":{triangle:{top:"-10px",right:"12px"},triangleShadow:{top:"-11px",right:"12px"}}},h),{"hide-triangle":"hide"===p,"top-left-triangle":"top-left"===p,"top-right-triangle":"top-right"===p}),x=function(e,r){l.default.isValidHex(e)&&t({hex:e,source:"hex"},r)};return n.default.createElement("div",{style:g.card,className:"twitter-picker "+v},n.default.createElement("div",{style:g.triangleShadow}),n.default.createElement("div",{style:g.triangle}),n.default.createElement("div",{style:g.body},(0,i.default)(f,(function(e,t){return n.default.createElement(c.Swatch,{key:t,color:e,hex:e,style:g.swatch,onClick:x,onHover:r,focusStyle:{boxShadow:"0 0 4px "+e}})})),n.default.createElement("div",{style:g.hash},"#"),n.default.createElement(c.EditableInput,{label:null,style:{input:g.input},value:o.replace("#",""),onChange:x}),n.default.createElement("div",{style:g.clear})))};s.propTypes={width:o.default.oneOfType([o.default.string,o.default.number]),triangle:o.default.oneOf(["hide","top-left","top-right"]),colors:o.default.arrayOf(o.default.string),styles:o.default.object},s.defaultProps={width:276,colors:["#FF6900","#FCB900","#7BDCB5","#00D084","#8ED1FC","#0693E3","#ABB8C3","#EB144C","#F78DA7","#9900EF"],triangle:"top-left",styles:{}},t.default=(0,c.ColorWrap)(s)}])]); //# sourceMappingURL=async-colorpicker.js.map \ No newline at end of file diff --git a/dash_daq/async-colorpicker.js.map b/dash_daq/async-colorpicker.js.map index 78717a2..159c749 100644 --- a/dash_daq/async-colorpicker.js.map +++ b/dash_daq/async-colorpicker.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://dash_daq/./src/styled/ColorPicker.styled.js","webpack://dash_daq/./src/fragments/ColorPicker.react.js","webpack://dash_daq/./node_modules/reactcss/lib/index.js","webpack://dash_daq/./node_modules/react-color/lib/components/common/index.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/merge.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isArray.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_root.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isObject.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isArray.js","webpack://dash_daq/./node_modules/react-color/lib/helpers/color.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_root.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isObjectLike.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseGetTag.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getNative.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_getNative.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isObjectLike.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/map.js","webpack://dash_daq/(webpack)/buildin/module.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isObject.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseGetTag.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isArrayLike.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_Symbol.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/keys.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/eq.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isArrayLike.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_ListCache.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_assocIndexOf.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_nativeCreate.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getMapData.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getTag.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_toKey.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_copyObject.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_ListCache.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_assocIndexOf.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_Symbol.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_nativeCreate.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_getMapData.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/identity.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isSymbol.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_toKey.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/forOwn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isBuffer.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isLength.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseUnary.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_nodeUtil.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_isPrototype.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getPrototype.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_Stack.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/eq.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_Map.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_MapCache.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getSymbols.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_isKey.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isSymbol.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/keysIn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_cloneArrayBuffer.js","webpack://dash_daq/./node_modules/react-color/lib/components/common/Checkboard.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_Stack.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_Map.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isFunction.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_MapCache.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseAssignValue.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_isPrototype.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isArguments.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isLength.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isBuffer.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isTypedArray.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_isIndex.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/keys.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_isKey.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_freeGlobal.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseForOwn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_arrayLikeKeys.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isArguments.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_isIndex.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isTypedArray.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_overArg.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isFunction.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/identity.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_arrayMap.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_toSource.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseIsEqual.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_equalArrays.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_Uint8Array.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getAllKeys.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseGetAllKeys.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_arrayPush.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/stubArray.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_isStrictComparable.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_matchesStrictComparable.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseGet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_castPath.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_assignValue.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseAssignValue.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getSymbolsIn.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_freeGlobal.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_toSource.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_assignMergeValue.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_defineProperty.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseFor.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_Uint8Array.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_getPrototype.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_overArg.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_safeGet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/keysIn.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_arrayLikeKeys.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/debounce.js","webpack://dash_daq/./node_modules/react-color/lib/components/common/ColorWrap.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseEach.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_arrayMap.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseIsEqual.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_equalArrays.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_isStrictComparable.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_matchesStrictComparable.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseGet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_castPath.js","webpack://dash_daq/./node_modules/material-colors/dist/colors.es2015.js","webpack://dash_daq/./node_modules/react-color/lib/index.js","webpack://dash_daq/./node_modules/react-color/lib/components/alpha/Alpha.js","webpack://dash_daq/./node_modules/reactcss/lib/flattenNames.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isString.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getRawTag.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_objectToString.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseFor.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_createBaseFor.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseTimes.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseIsArguments.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/stubFalse.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseIsTypedArray.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseKeys.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_nativeKeys.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_castFunction.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isPlainObject.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/map.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseIteratee.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseMatches.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseIsMatch.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_listCacheClear.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_listCacheDelete.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_listCacheGet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_listCacheHas.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_listCacheSet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_stackClear.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_stackDelete.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_stackGet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_stackHas.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_stackSet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseIsNative.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_isMasked.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_coreJsData.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getValue.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_mapCacheClear.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_Hash.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_hashClear.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_hashDelete.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_hashGet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_hashHas.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_hashSet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_mapCacheDelete.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_isKeyable.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_mapCacheGet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_mapCacheHas.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_mapCacheSet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseIsEqualDeep.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_SetCache.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_setCacheAdd.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_setCacheHas.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_arraySome.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_cacheHas.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_equalByTag.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_mapToArray.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_setToArray.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_equalObjects.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_arrayFilter.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_DataView.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_Promise.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_Set.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_WeakMap.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getMatchData.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseMatchesProperty.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/get.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_stringToPath.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_memoizeCapped.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/memoize.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/toString.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseToString.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/hasIn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseHasIn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_hasPath.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/property.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseProperty.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_basePropertyDeep.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseMap.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseEach.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_createBaseEach.js","webpack://dash_daq/./node_modules/reactcss/lib/mergeClasses.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/cloneDeep.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseClone.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_arrayEach.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_defineProperty.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseAssign.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseAssignIn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseKeysIn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_nativeKeysIn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_cloneBuffer.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_copyArray.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_copySymbols.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_copySymbolsIn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getAllKeysIn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_initCloneArray.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_initCloneByTag.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_cloneDataView.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_cloneRegExp.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_cloneSymbol.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_cloneTypedArray.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_initCloneObject.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseCreate.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isMap.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseIsMap.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isSet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseIsSet.js","webpack://dash_daq/./node_modules/reactcss/lib/autoprefix.js","webpack://dash_daq/./node_modules/reactcss/lib/components/hover.js","webpack://dash_daq/./node_modules/reactcss/lib/components/active.js","webpack://dash_daq/./node_modules/reactcss/lib/loop.js","webpack://dash_daq/./node_modules/react-color/lib/components/common/Alpha.js","webpack://dash_daq/./node_modules/react-color/lib/helpers/alpha.js","webpack://dash_daq/./node_modules/react-color/lib/helpers/checkboard.js","webpack://dash_daq/./node_modules/react-color/lib/components/common/EditableInput.js","webpack://dash_daq/./node_modules/react-color/lib/components/common/Hue.js","webpack://dash_daq/./node_modules/react-color/lib/helpers/hue.js","webpack://dash_daq/./node_modules/react-color/lib/components/common/Raised.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseMerge.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_listCacheClear.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_listCacheDelete.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_listCacheGet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_listCacheHas.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_listCacheSet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_stackClear.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_stackDelete.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_stackGet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_stackHas.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_stackSet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseIsNative.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_getRawTag.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_objectToString.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_isMasked.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_coreJsData.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_getValue.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_mapCacheClear.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_Hash.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_hashClear.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_hashDelete.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_hashGet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_hashHas.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_hashSet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_mapCacheDelete.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_isKeyable.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_mapCacheGet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_mapCacheHas.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_mapCacheSet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_createBaseFor.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseMergeDeep.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_cloneBuffer.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_cloneTypedArray.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_cloneArrayBuffer.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_copyArray.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_initCloneObject.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseCreate.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseIsArguments.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isArrayLikeObject.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/stubFalse.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isPlainObject.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseIsTypedArray.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseUnary.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_nodeUtil.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/toPlainObject.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_copyObject.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_assignValue.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseTimes.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseKeysIn.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_nativeKeysIn.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_createAssigner.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseRest.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_overRest.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_apply.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_setToString.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseSetToString.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/constant.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_shortOut.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_isIterateeCall.js","webpack://dash_daq/./node_modules/react-color/lib/components/common/Saturation.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/throttle.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/now.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/toNumber.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseTrim.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_trimmedEndIndex.js","webpack://dash_daq/./node_modules/react-color/lib/helpers/saturation.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/each.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/forEach.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_arrayEach.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseForOwn.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseKeys.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_nativeKeys.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_createBaseEach.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_castFunction.js","webpack://dash_daq/./node_modules/react-color/lib/components/common/Swatch.js","webpack://dash_daq/./node_modules/react-color/lib/helpers/interaction.js","webpack://dash_daq/./node_modules/react-color/lib/components/alpha/AlphaPointer.js","webpack://dash_daq/./node_modules/react-color/lib/components/block/Block.js","webpack://dash_daq/./node_modules/react-color/lib/components/block/BlockSwatches.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseIteratee.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseMatches.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseIsMatch.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseIsEqualDeep.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_SetCache.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_setCacheAdd.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_setCacheHas.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_arraySome.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_cacheHas.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_equalByTag.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_mapToArray.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_setToArray.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_equalObjects.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_getAllKeys.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseGetAllKeys.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_arrayPush.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_getSymbols.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_arrayFilter.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/stubArray.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_getTag.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_DataView.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_Promise.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_Set.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_WeakMap.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_getMatchData.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseMatchesProperty.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/get.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_stringToPath.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_memoizeCapped.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/memoize.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/toString.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseToString.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/hasIn.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseHasIn.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_hasPath.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/property.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseProperty.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_basePropertyDeep.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseMap.js","webpack://dash_daq/./node_modules/react-color/lib/components/circle/Circle.js","webpack://dash_daq/./node_modules/react-color/lib/components/circle/CircleSwatch.js","webpack://dash_daq/./node_modules/react-color/lib/components/chrome/Chrome.js","webpack://dash_daq/./node_modules/react-color/lib/components/chrome/ChromeFields.js","webpack://dash_daq/./node_modules/@icons/material/UnfoldMoreHorizontalIcon.js","webpack://dash_daq/./node_modules/react-color/lib/components/chrome/ChromePointer.js","webpack://dash_daq/./node_modules/react-color/lib/components/chrome/ChromePointerCircle.js","webpack://dash_daq/./node_modules/react-color/lib/components/compact/Compact.js","webpack://dash_daq/./node_modules/react-color/lib/components/compact/CompactColor.js","webpack://dash_daq/./node_modules/react-color/lib/components/compact/CompactFields.js","webpack://dash_daq/./node_modules/react-color/lib/components/github/Github.js","webpack://dash_daq/./node_modules/react-color/lib/components/github/GithubSwatch.js","webpack://dash_daq/./node_modules/react-color/lib/components/hue/Hue.js","webpack://dash_daq/./node_modules/react-color/lib/components/hue/HuePointer.js","webpack://dash_daq/./node_modules/react-color/lib/components/material/Material.js","webpack://dash_daq/./node_modules/react-color/lib/components/photoshop/Photoshop.js","webpack://dash_daq/./node_modules/react-color/lib/components/photoshop/PhotoshopFields.js","webpack://dash_daq/./node_modules/react-color/lib/components/photoshop/PhotoshopPointerCircle.js","webpack://dash_daq/./node_modules/react-color/lib/components/photoshop/PhotoshopPointer.js","webpack://dash_daq/./node_modules/react-color/lib/components/photoshop/PhotoshopButton.js","webpack://dash_daq/./node_modules/react-color/lib/components/photoshop/PhotoshopPreviews.js","webpack://dash_daq/./node_modules/react-color/lib/components/sketch/Sketch.js","webpack://dash_daq/./node_modules/react-color/lib/components/sketch/SketchFields.js","webpack://dash_daq/./node_modules/react-color/lib/components/sketch/SketchPresetColors.js","webpack://dash_daq/./node_modules/react-color/lib/components/slider/Slider.js","webpack://dash_daq/./node_modules/react-color/lib/components/slider/SliderSwatches.js","webpack://dash_daq/./node_modules/react-color/lib/components/slider/SliderSwatch.js","webpack://dash_daq/./node_modules/react-color/lib/components/slider/SliderPointer.js","webpack://dash_daq/./node_modules/react-color/lib/components/swatches/Swatches.js","webpack://dash_daq/./node_modules/react-color/lib/components/swatches/SwatchesGroup.js","webpack://dash_daq/./node_modules/react-color/lib/components/swatches/SwatchesColor.js","webpack://dash_daq/./node_modules/@icons/material/CheckIcon.js","webpack://dash_daq/./node_modules/react-color/lib/components/twitter/Twitter.js"],"names":["Container","styled","div","disabled","theme","css","dark","size","color","primary","darkContainer","lightContainer","lightKnobs","detail","darkKnobs","glow","darkAlpha","darkInput","defaultProps","light","DEFAULT_COLOR","colors","PRIMARY","parseValue","value","rgb","rgba","Object","values","hex","Color","string","ColorPicker","props","state","calcHandleGlow","bind","setValue","newProps","this","setState","fade","newValue","setProps","id","className","style","elementName","getClassName","filteredProps","getFilteredProps","onChangeComplete","Component","propTypes","withTheme","defineProperty","exports","ReactCSS","loop","handleActive","handleHover","hover","undefined","_flattenNames2","_interopRequireDefault","_mergeClasses2","_autoprefix2","_hover3","_active2","_loop3","obj","__esModule","default","classes","_len","arguments","length","activations","Array","_key","activeNames","merged","_Alpha","enumerable","get","_Checkboard","_EditableInput","_Hue","_Raised","_Saturation","_ColorWrap","_Swatch","baseMerge","merge","createAssigner","object","source","srcIndex","module","isArray","freeGlobal","freeSelf","self","root","Function","type","red","getContrastingColor","isValidHex","toState","simpleCheckForValidColor","_each2","_tinycolor2","data","checked","passed","letter","isNaN","test","oldHue","hsl","toHsl","hsv","toHsv","toRgb","toHex","s","h","a","lh","String","charAt","isValid","col","r","g","b","l","v","Symbol","getRawTag","objectToString","symToStringTag","toStringTag","baseIsNative","getValue","key","arrayMap","baseIteratee","baseMap","collection","iteratee","webpackPolyfill","deprecate","paths","children","i","isFunction","isLength","arrayLikeKeys","baseKeys","isArrayLike","other","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","entries","index","clear","entry","set","prototype","has","eq","array","nativeCreate","getNative","isKeyable","map","__data__","DataView","Map","Promise","Set","WeakMap","baseGetTag","toSource","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ArrayBuffer","resolve","result","Ctor","constructor","ctorString","isSymbol","assignValue","baseAssignValue","customizer","isNew","isObjectLike","baseForOwn","castFunction","stubFalse","freeExports","nodeType","freeModule","Buffer","isBuffer","func","freeProcess","process","nodeUtil","types","require","binding","e","objectProto","getPrototype","overArg","getPrototypeOf","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","arrayFilter","stubArray","propertyIsEnumerable","nativeGetSymbols","getOwnPropertySymbols","getSymbols","symbol","call","reIsDeepProp","reIsPlainProp","baseKeysIn","Uint8Array","arrayBuffer","byteLength","Checkboard","_react2","_reactcss2","checkboard","newObj","hasOwnProperty","_interopRequireWildcard","_ref","white","grey","renderers","borderRadius","boxShadow","styles","grid","absolute","background","canvas","createElement","isObject","tag","baseIsArguments","isArguments","baseIsTypedArray","baseUnary","nodeIsTypedArray","isTypedArray","reIsUint","global","baseFor","keys","baseTimes","isIndex","inherited","isArr","isArg","isBuff","isType","skipIndexes","push","transform","arg","funcToString","toString","baseIsEqualDeep","baseIsEqual","bitmask","stack","SetCache","arraySome","cacheHas","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","baseGetAllKeys","arrayPush","keysFunc","symbolsFunc","offset","srcValue","castPath","toKey","path","isKey","stringToPath","objValue","getSymbolsIn","createBaseFor","now","toNumber","nativeMax","Math","max","nativeMin","min","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","clearTimeout","cancel","flush","ColorWrap","_extends","assign","target","_createClass","defineProperties","descriptor","configurable","writable","Constructor","protoProps","staticProps","_react","_debounce2","_color2","Picker","instance","_classCallCheck","_this","ReferenceError","_possibleConstructorReturn","__proto__","handleChange","event","debounce","onChange","handleSwatchHover","onSwatchHover","fn","subClass","superClass","create","setPrototypeOf","_inherits","optionalEvents","nextProps","PureComponent","baseEach","createBaseEach","pink","purple","deepPurple","indigo","blue","lightBlue","cyan","teal","green","lightGreen","lime","yellow","amber","orange","deepOrange","brown","blueGrey","darkText","lightText","darkIcons","lightIcons","black","CustomPicker","TwitterPicker","SwatchesPicker","SliderPicker","SketchPicker","PhotoshopPicker","MaterialPicker","HuePicker","GithubPicker","CompactPicker","ChromePicker","CirclePicker","BlockPicker","AlphaPicker","_Block","_Circle","_Chrome","_Compact","_Github","_Material","_Photoshop","_Sketch","_Slider","_Swatches","_Twitter","_Chrome2","_common","_AlphaPointer2","width","height","direction","pointer","_ref$className","picker","position","alpha","radius","Alpha","flattenNames","_isString3","_forOwn3","_isPlainObject3","_map3","things","names","thing","name","nativeObjectToString","isOwn","unmasked","fromRight","iterable","n","typedArrayTags","isPrototype","nativeKeys","identity","funcProto","objectCtorString","proto","baseMatches","baseMatchesProperty","property","baseIsMatch","getMatchData","matchesStrictComparable","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","assocIndexOf","splice","pop","pairs","LARGE_ARRAY_SIZE","isMasked","reIsHostCtor","reIsNative","RegExp","replace","uid","coreJsData","maskSrcKey","exec","IE_PROTO","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","getMapData","equalArrays","equalByTag","equalObjects","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","setCacheAdd","setCacheHas","add","predicate","cache","mapToArray","setToArray","symbolProto","symbolValueOf","valueOf","byteOffset","buffer","message","convert","stacked","forEach","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","resIndex","isStrictComparable","hasIn","baseGet","defaultValue","memoizeCapped","rePropName","reEscapeChar","charCodeAt","match","number","quote","subString","memoize","resolver","memoized","Cache","baseToString","symbolToString","baseHasIn","hasPath","hasFunc","baseProperty","basePropertyDeep","eachFunc","mergeClasses","_cloneDeep3","toMerge","baseClone","CLONE_DEEP_FLAG","arrayEach","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeysIn","initCloneArray","initCloneByTag","initCloneObject","isMap","isSet","keysIn","cloneableTags","isDeep","isFlat","isFull","isFunc","subValue","copyObject","nativeKeysIn","isProto","allocUnsafe","slice","copy","input","cloneArrayBuffer","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","dataView","reFlags","regexp","lastIndex","typedArray","baseCreate","objectCreate","baseIsMap","nodeIsMap","baseIsSet","nodeIsSet","autoprefix","_forOwn2","transforms","msBorderRadius","MozBorderRadius","OBorderRadius","WebkitBorderRadius","msBoxShadow","MozBoxShadow","OBoxShadow","WebkitBoxShadow","userSelect","WebkitTouchCallout","KhtmlUserSelect","MozUserSelect","msUserSelect","WebkitUserSelect","flex","WebkitBoxFlex","MozBoxFlex","WebkitFlex","msFlex","flexBasis","WebkitFlexBasis","justifyContent","WebkitJustifyContent","transition","msTransition","MozTransition","OTransition","WebkitTransition","msTransform","MozTransform","OTransform","WebkitTransform","split","top","right","bottom","left","extend","otherElementStyles","otherStyle","elements","prefixed","element","expanded","Span","_React$Component","Hover","_temp","concat","handleMouseOver","handleMouseOut","render","onMouseOver","onMouseOut","active","Active","handleMouseDown","handleMouseUp","onMouseDown","onMouseUp","setProp","abs","_Checkboard2","_ref2","change","calculateChange","container","window","addEventListener","unbindEventListeners","removeEventListener","_this2","overflow","gradient","shadow","margin","slider","marginTop","vertical","overwrite","ref","onTouchMove","onTouchStart","initialA","containerWidth","clientWidth","containerHeight","clientHeight","x","pageX","touches","y","pageY","getBoundingClientRect","pageXOffset","pageYOffset","round","_a","checkboardCache","c1","c2","serverCanvas","document","ctx","getContext","fillStyle","fillRect","translate","toDataURL","EditableInput","VALID_KEY_CODES","handleBlur","blurValue","setUpdatedValue","handleKeyDown","keyCode","Number","getNumberValue","indexOf","getArrowOffset","updatedValue","handleDrag","dragLabel","movementX","dragMax","getValueObjectWithLabel","preventDefault","toUpperCase","prevProps","prevState","activeElement","_defineProperty","label","arrowOffset","onChangeValue","isPercentage","getIsPercentage","wrap","cursor","onKeyDown","onBlur","placeholder","spellCheck","hideLabel","Hue","hue","_props$direction","padding","_h","Raised","_propTypes2","_merge2","zDepth","_ref$styles","passedStyles","display","content","bg","oneOf","assignMergeValue","baseMergeDeep","safeGet","isArrayLikeObject","isPlainObject","toPlainObject","mergeFunc","isCommon","isTyped","baseRest","isIterateeCall","assigner","sources","guard","overRest","setToString","start","otherArgs","baseSetToString","shortOut","constant","nativeNow","Date","count","lastCalled","stamp","remaining","Saturation","_throttle2","saturation","throttle","circle","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","isBinary","trimmedEndIndex","reTrimStart","reWhitespace","_container$getBoundin","bright","Swatch","_interaction","_ref$onClick","onClick","onHover","_ref$title","title","focus","_ref$focusStyle","focusStyle","transparent","swatch","outline","tabIndex","handleFocus","Focus","onFocus","AlphaPointer","backgroundColor","Block","_BlockSwatches2","triangle","hexCode","card","head","alignItems","body","fontSize","borderStyle","borderWidth","borderColor","marginLeft","border","boxSizing","oneOfType","arrayOf","BlockSwatches","_map2","swatches","marginRight","float","marginBottom","c","Circle","material","_CircleSwatch2","circleSize","circleSpacing","flexWrap","toLowerCase","CircleSwatch","_reactcss","Chrome","_ChromeFields2","_ChromePointer2","_ChromePointerCircle2","disableAlpha","defaultView","fontFamily","paddingBottom","controls","zIndex","toggles","view","bool","ChromeFields","_UnfoldMoreHorizontalIcon2","toggleViews","includes","showHighlight","currentTarget","hideHighlight","paddingTop","fields","field","paddingLeft","toggle","textAlign","icon","iconHighlight","textTransform","lineHeight","svg","fill","onMouseEnter","_ref$fill","_ref$width","_ref$height","_ref$style","_objectWithoutProperties","viewBox","d","ChromePointer","ChromePointerCircle","Compact","_CompactColor2","_CompactFields2","compact","CompactColor","dot","opacity","CompactFields","paddingRight","HEXwrap","HEXinput","HEXlabel","RGBwrap","RGBinput","RGBlabel","Github","_GithubSwatch2","borderBottomColor","triangleShadow","GithubSwatch","hoverSwatch","_HuePointer2","SliderPointer","Material","borderBottom","Hex","third","Photoshop","_PhotoshopFields2","_PhotoshopPointerCircle2","_PhotoshopPointer2","_PhotoshopButton2","_PhotoshopPreviews2","currentColor","_props","_props$styles","_props$className","backgroundImage","previews","actions","header","onAccept","onCancel","divider","fieldSymbols","PhotoshopPointerCircle","triangleBorder","Extend","leftInside","rightInside","PhotoshopButton","button","PhotoshopPreviews","new","current","Sketch","_SketchFields2","_SketchPresetColors2","presetColors","sliders","activeColor","SketchFields","single","double","SketchPresetColors","borderTop","swatchWrap","handleClick","colorObjOrString","shape","isRequired","Slider","_SliderSwatches2","_SliderPointer2","SliderSwatches","_SliderSwatch2","first","last","SliderSwatch","Swatches","_SwatchesGroup2","overflowY","group","SwatchesGroup","_SwatchesColor2","SwatchesColor","_CheckIcon2","check","Twitter","hash","hexcode"],"mappings":"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","file":"async-colorpicker.js","sourcesContent":["import styled, { css } from 'styled-components';\n\nimport { light } from './constants';\n\nexport const Container = styled.div`\n ${({ disabled, theme }) =>\n disabled &&\n css`\n opacity: ${theme.dark ? 1 : 0.65};\n cursor: not-allowed !important;\n & .chrome-picker {\n pointer-events: none !important;\n }\n `} & .chrome-picker {\n font-family: unset !important;\n box-shadow: none !important;\n ${({ size }) =>\n css`\n width: ${size}px !important;\n `};\n }\n\n & .chrome-picker svg {\n background: unset !important;\n }\n\n & .chrome-picker svg:hover path {\n fill: ${({ theme, color }) => color || theme.primary};\n }\n\n ${({ theme }) => (theme.dark ? darkContainer : lightContainer)};\n`;\n\nconst lightKnobs = css`\n & .chrome-picker .hue-horizontal > div > div,\n .chrome-picker\n > div:nth-child(2)\n > div:nth-child(1)\n > div:nth-child(2)\n > div:nth-child(2)\n > div\n > div:nth-child(3)\n > div\n > div {\n box-shadow: none !important;\n background-color: #fff;\n border-radius: 100% !important;\n ${({ theme }) =>\n css`\n border: 1px solid ${theme.detail} !important;\n `};\n }\n`;\n\nconst lightContainer = css`\n border-radius: 3px !important;\n\n ${lightKnobs} ${({ theme }) =>\n css`\n border: 1px solid ${theme.detail};\n `};\n`;\n\nconst darkKnobs = css`\n & .chrome-picker .hue-horizontal > div > div,\n .chrome-picker\n > div:nth-child(2)\n > div:nth-child(1)\n > div:nth-child(2)\n > div:nth-child(2)\n > div\n > div:nth-child(3)\n > div\n > div {\n border-radius: 100% !important;\n border: none !important;\n background: #101010 !important;\n background-image: linear-gradient(\n 135deg,\n rgba(255, 255, 255, 0.3) -50%,\n rgba(0, 0, 0, 0.7) 100%\n ) !important;\n transition: all 0.3s ease-in !important;\n ${({ glow }) =>\n css`\n box-shadow: inset 0 0 1px 0 rgba(52, 52, 52, 0.4), inset 0 0 0 1px rgba(0, 0, 0, 0.2),\n 0 0 12px 4px ${glow} !important;\n `};\n }\n`;\n\nconst darkAlpha = css`\n .chrome-picker .flexbox-fix div:nth-child(2) > div:nth-child(2) > div {\n background: #fff !important;\n }\n`;\n\nconst darkInput = css`\n & .chrome-picker input {\n font-family: unset !important;\n color: #fff !important;\n border-radius: 0px !important;\n background-color: #22272a !important;\n background-image: linear-gradient(\n 145deg,\n rgba(255, 255, 255, 0.05) 0%,\n rgba(0, 0, 0, 0.5) 100%\n ) !important;\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1) !important;\n }\n\n & .chrome-picker input:focus {\n outline: 0 !important;\n border: none !important;\n background-image: linear-gradient(\n 145deg,\n rgba(255, 255, 255, 0.2) 0%,\n rgba(0, 0, 0, 0.4) 100%\n ) !important;\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.6), inset 0 0 4px 0 rgba(0, 0, 0, 0.6),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.6), 1px 1px 0px 0px rgba(255, 255, 255, 0.1) !important;\n }\n`;\n\nconst darkContainer = css`\n box-shadow: 0px 0px 8px 2px rgba(100,100,100,0.075),\n 0px 0px 32px 2px rgba(255,255,255,0.05),\n 1px 1px 0px 0px rgba(25,25,25,0.6),\n -1px -1px 0px 0px rgba(255,255,255,0.2) !important;\n\n & .chrome-picker > div:first-child {\n border-radius: 0 !important;\n }\n\n & .chrome-picker > div:nth-child(2) {\n background: #0a0a0a !important;\n border-top: 1px solid rgba(255,255,255,0.075);\n }\n\n ${darkKnobs}\n ${darkInput}\n ${darkAlpha}\n`;\n\nContainer.defaultProps = {\n theme: light\n};\n\nexport default Container;\n","import React, { Component } from 'react';\nimport { ChromePicker } from 'react-color';\nimport { withTheme } from 'styled-components';\nimport Color from 'color';\n\nimport { colors } from '../styled/constants';\nimport { Container } from '../styled/ColorPicker.styled';\nimport LabelContainer from '../styled/shared/LabelContainer.styled';\n\nimport { defaultProps, propTypes } from '../components/ColorPicker.react';\n\nimport { getClassName, getFilteredProps } from '../helpers/classNameGenerator';\n\nconst DEFAULT_COLOR = colors.PRIMARY;\n\nconst parseValue = value => {\n value = value || {};\n\n if (value.rgb) {\n const rgba = Object.values(value.rgb);\n return `rgba(${rgba[0]}, ${rgba[1]}, ${rgba[2]}, ${rgba[3]})`;\n }\n\n if (value.hex)\n return Color(value.hex)\n .rgb()\n .string();\n\n return DEFAULT_COLOR;\n};\n\n/**\n * A color picker.\n */\nclass ColorPicker extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n value: props.value\n };\n\n this.calcHandleGlow = this.calcHandleGlow.bind(this);\n this.setValue = this.setValue.bind(this);\n }\n\n UNSAFE_componentWillReceiveProps(newProps) {\n if (newProps.value !== this.state.value) this.setState({ value: newProps.value });\n }\n\n calcHandleGlow() {\n return Color(parseValue(this.state.value))\n .fade(0.5)\n .string();\n }\n\n setValue(value) {\n if (value != null) {\n const { hex, rgb } = value;\n const newValue = { hex, rgb };\n\n this.setState({ value: newValue });\n if (this.props.setProps) this.props.setProps({ value: newValue });\n }\n }\n\n render() {\n const { id, className, style, theme } = this.props;\n\n const elementName = getClassName('colorpicker', theme);\n\n const filteredProps = getFilteredProps(this.props);\n\n return (\n
\n \n \n \n \n \n
\n );\n }\n}\n\nColorPicker.defaultProps = defaultProps;\nColorPicker.propTypes = propTypes;\n\nexport default withTheme(ColorPicker);\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ReactCSS = exports.loop = exports.handleActive = exports.handleHover = exports.hover = undefined;\n\nvar _flattenNames = require('./flattenNames');\n\nvar _flattenNames2 = _interopRequireDefault(_flattenNames);\n\nvar _mergeClasses = require('./mergeClasses');\n\nvar _mergeClasses2 = _interopRequireDefault(_mergeClasses);\n\nvar _autoprefix = require('./autoprefix');\n\nvar _autoprefix2 = _interopRequireDefault(_autoprefix);\n\nvar _hover2 = require('./components/hover');\n\nvar _hover3 = _interopRequireDefault(_hover2);\n\nvar _active = require('./components/active');\n\nvar _active2 = _interopRequireDefault(_active);\n\nvar _loop2 = require('./loop');\n\nvar _loop3 = _interopRequireDefault(_loop2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.hover = _hover3.default;\nexports.handleHover = _hover3.default;\nexports.handleActive = _active2.default;\nexports.loop = _loop3.default;\nvar ReactCSS = exports.ReactCSS = function ReactCSS(classes) {\n for (var _len = arguments.length, activations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n activations[_key - 1] = arguments[_key];\n }\n\n var activeNames = (0, _flattenNames2.default)(activations);\n var merged = (0, _mergeClasses2.default)(classes, activeNames);\n return (0, _autoprefix2.default)(merged);\n};\n\nexports.default = ReactCSS;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Alpha = require('./Alpha');\n\nObject.defineProperty(exports, 'Alpha', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Alpha).default;\n }\n});\n\nvar _Checkboard = require('./Checkboard');\n\nObject.defineProperty(exports, 'Checkboard', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Checkboard).default;\n }\n});\n\nvar _EditableInput = require('./EditableInput');\n\nObject.defineProperty(exports, 'EditableInput', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_EditableInput).default;\n }\n});\n\nvar _Hue = require('./Hue');\n\nObject.defineProperty(exports, 'Hue', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Hue).default;\n }\n});\n\nvar _Raised = require('./Raised');\n\nObject.defineProperty(exports, 'Raised', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Raised).default;\n }\n});\n\nvar _Saturation = require('./Saturation');\n\nObject.defineProperty(exports, 'Saturation', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Saturation).default;\n }\n});\n\nvar _ColorWrap = require('./ColorWrap');\n\nObject.defineProperty(exports, 'ColorWrap', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ColorWrap).default;\n }\n});\n\nvar _Swatch = require('./Swatch');\n\nObject.defineProperty(exports, 'Swatch', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Swatch).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.red = exports.getContrastingColor = exports.isValidHex = exports.toState = exports.simpleCheckForValidColor = undefined;\n\nvar _each = require('lodash/each');\n\nvar _each2 = _interopRequireDefault(_each);\n\nvar _tinycolor = require('tinycolor2');\n\nvar _tinycolor2 = _interopRequireDefault(_tinycolor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar simpleCheckForValidColor = exports.simpleCheckForValidColor = function simpleCheckForValidColor(data) {\n var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n var checked = 0;\n var passed = 0;\n (0, _each2.default)(keysToCheck, function (letter) {\n if (data[letter]) {\n checked += 1;\n if (!isNaN(data[letter])) {\n passed += 1;\n }\n if (letter === 's' || letter === 'l') {\n var percentPatt = /^\\d+%$/;\n if (percentPatt.test(data[letter])) {\n passed += 1;\n }\n }\n }\n });\n return checked === passed ? data : false;\n};\n\nvar toState = exports.toState = function toState(data, oldHue) {\n var color = data.hex ? (0, _tinycolor2.default)(data.hex) : (0, _tinycolor2.default)(data);\n var hsl = color.toHsl();\n var hsv = color.toHsv();\n var rgb = color.toRgb();\n var hex = color.toHex();\n if (hsl.s === 0) {\n hsl.h = oldHue || 0;\n hsv.h = oldHue || 0;\n }\n var transparent = hex === '000000' && rgb.a === 0;\n\n return {\n hsl: hsl,\n hex: transparent ? 'transparent' : '#' + hex,\n rgb: rgb,\n hsv: hsv,\n oldHue: data.h || oldHue || hsl.h,\n source: data.source\n };\n};\n\nvar isValidHex = exports.isValidHex = function isValidHex(hex) {\n // disable hex4 and hex8\n var lh = String(hex).charAt(0) === '#' ? 1 : 0;\n return hex.length !== 4 + lh && hex.length < 7 + lh && (0, _tinycolor2.default)(hex).isValid();\n};\n\nvar getContrastingColor = exports.getContrastingColor = function getContrastingColor(data) {\n if (!data) {\n return '#fff';\n }\n var col = toState(data);\n if (col.hex === 'transparent') {\n return 'rgba(0,0,0,0.4)';\n }\n var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000;\n return yiq >= 128 ? '#000' : '#fff';\n};\n\nvar red = exports.red = {\n hsl: { a: 1, h: 0, l: 0.5, s: 1 },\n hex: '#ff0000',\n rgb: { r: 255, g: 0, b: 0, a: 1 },\n hsv: { h: 0, s: 1, v: 1, a: 1 }\n};\n\nexports.default = exports;","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var baseForOwn = require('./_baseForOwn'),\n castFunction = require('./_castFunction');\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nmodule.exports = forOwn;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Checkboard = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _checkboard = require('../../helpers/checkboard');\n\nvar checkboard = _interopRequireWildcard(_checkboard);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Checkboard = exports.Checkboard = function Checkboard(_ref) {\n var white = _ref.white,\n grey = _ref.grey,\n size = _ref.size,\n renderers = _ref.renderers,\n borderRadius = _ref.borderRadius,\n boxShadow = _ref.boxShadow;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n grid: {\n borderRadius: borderRadius,\n boxShadow: boxShadow,\n absolute: '0px 0px 0px 0px',\n background: 'url(' + checkboard.get(white, grey, size, renderers.canvas) + ') center left'\n }\n }\n });\n\n return _react2.default.createElement('div', { style: styles.grid });\n};\n\nCheckboard.defaultProps = {\n size: 8,\n white: 'transparent',\n grey: 'rgba(0,0,0,.08)',\n renderers: {}\n};\n\nexports.default = Checkboard;","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorWrap = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _debounce = require('lodash/debounce');\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorWrap = exports.ColorWrap = function ColorWrap(Picker) {\n var ColorPicker = function (_ref) {\n _inherits(ColorPicker, _ref);\n\n function ColorPicker(props) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this));\n\n _this.handleChange = function (data, event) {\n var isValidColor = _color2.default.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = _color2.default.toState(data, data.h || _this.state.oldHue);\n _this.setState(colors);\n _this.props.onChangeComplete && _this.debounce(_this.props.onChangeComplete, colors, event);\n _this.props.onChange && _this.props.onChange(colors, event);\n }\n };\n\n _this.handleSwatchHover = function (data, event) {\n var isValidColor = _color2.default.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = _color2.default.toState(data, data.h || _this.state.oldHue);\n _this.props.onSwatchHover && _this.props.onSwatchHover(colors, event);\n }\n };\n\n _this.state = _extends({}, _color2.default.toState(props.color, 0));\n\n _this.debounce = (0, _debounce2.default)(function (fn, data, event) {\n fn(data, event);\n }, 100);\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'render',\n value: function render() {\n var optionalEvents = {};\n if (this.props.onSwatchHover) {\n optionalEvents.onSwatchHover = this.handleSwatchHover;\n }\n\n return _react2.default.createElement(Picker, _extends({}, this.props, this.state, {\n onChange: this.handleChange\n }, optionalEvents));\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n return _extends({}, _color2.default.toState(nextProps.color, state.oldHue));\n }\n }]);\n\n return ColorPicker;\n }(_react.PureComponent || _react.Component);\n\n ColorPicker.propTypes = _extends({}, Picker.propTypes);\n\n ColorPicker.defaultProps = _extends({}, Picker.defaultProps, {\n color: {\n h: 250,\n s: 0.50,\n l: 0.20,\n a: 1\n }\n });\n\n return ColorPicker;\n};\n\nexports.default = ColorWrap;","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","export var red = {\"50\":\"#ffebee\",\"100\":\"#ffcdd2\",\"200\":\"#ef9a9a\",\"300\":\"#e57373\",\"400\":\"#ef5350\",\"500\":\"#f44336\",\"600\":\"#e53935\",\"700\":\"#d32f2f\",\"800\":\"#c62828\",\"900\":\"#b71c1c\",\"a100\":\"#ff8a80\",\"a200\":\"#ff5252\",\"a400\":\"#ff1744\",\"a700\":\"#d50000\"};\nexport var pink = {\"50\":\"#fce4ec\",\"100\":\"#f8bbd0\",\"200\":\"#f48fb1\",\"300\":\"#f06292\",\"400\":\"#ec407a\",\"500\":\"#e91e63\",\"600\":\"#d81b60\",\"700\":\"#c2185b\",\"800\":\"#ad1457\",\"900\":\"#880e4f\",\"a100\":\"#ff80ab\",\"a200\":\"#ff4081\",\"a400\":\"#f50057\",\"a700\":\"#c51162\"};\nexport var purple = {\"50\":\"#f3e5f5\",\"100\":\"#e1bee7\",\"200\":\"#ce93d8\",\"300\":\"#ba68c8\",\"400\":\"#ab47bc\",\"500\":\"#9c27b0\",\"600\":\"#8e24aa\",\"700\":\"#7b1fa2\",\"800\":\"#6a1b9a\",\"900\":\"#4a148c\",\"a100\":\"#ea80fc\",\"a200\":\"#e040fb\",\"a400\":\"#d500f9\",\"a700\":\"#aa00ff\"};\nexport var deepPurple = {\"50\":\"#ede7f6\",\"100\":\"#d1c4e9\",\"200\":\"#b39ddb\",\"300\":\"#9575cd\",\"400\":\"#7e57c2\",\"500\":\"#673ab7\",\"600\":\"#5e35b1\",\"700\":\"#512da8\",\"800\":\"#4527a0\",\"900\":\"#311b92\",\"a100\":\"#b388ff\",\"a200\":\"#7c4dff\",\"a400\":\"#651fff\",\"a700\":\"#6200ea\"};\nexport var indigo = {\"50\":\"#e8eaf6\",\"100\":\"#c5cae9\",\"200\":\"#9fa8da\",\"300\":\"#7986cb\",\"400\":\"#5c6bc0\",\"500\":\"#3f51b5\",\"600\":\"#3949ab\",\"700\":\"#303f9f\",\"800\":\"#283593\",\"900\":\"#1a237e\",\"a100\":\"#8c9eff\",\"a200\":\"#536dfe\",\"a400\":\"#3d5afe\",\"a700\":\"#304ffe\"};\nexport var blue = {\"50\":\"#e3f2fd\",\"100\":\"#bbdefb\",\"200\":\"#90caf9\",\"300\":\"#64b5f6\",\"400\":\"#42a5f5\",\"500\":\"#2196f3\",\"600\":\"#1e88e5\",\"700\":\"#1976d2\",\"800\":\"#1565c0\",\"900\":\"#0d47a1\",\"a100\":\"#82b1ff\",\"a200\":\"#448aff\",\"a400\":\"#2979ff\",\"a700\":\"#2962ff\"};\nexport var lightBlue = {\"50\":\"#e1f5fe\",\"100\":\"#b3e5fc\",\"200\":\"#81d4fa\",\"300\":\"#4fc3f7\",\"400\":\"#29b6f6\",\"500\":\"#03a9f4\",\"600\":\"#039be5\",\"700\":\"#0288d1\",\"800\":\"#0277bd\",\"900\":\"#01579b\",\"a100\":\"#80d8ff\",\"a200\":\"#40c4ff\",\"a400\":\"#00b0ff\",\"a700\":\"#0091ea\"};\nexport var cyan = {\"50\":\"#e0f7fa\",\"100\":\"#b2ebf2\",\"200\":\"#80deea\",\"300\":\"#4dd0e1\",\"400\":\"#26c6da\",\"500\":\"#00bcd4\",\"600\":\"#00acc1\",\"700\":\"#0097a7\",\"800\":\"#00838f\",\"900\":\"#006064\",\"a100\":\"#84ffff\",\"a200\":\"#18ffff\",\"a400\":\"#00e5ff\",\"a700\":\"#00b8d4\"};\nexport var teal = {\"50\":\"#e0f2f1\",\"100\":\"#b2dfdb\",\"200\":\"#80cbc4\",\"300\":\"#4db6ac\",\"400\":\"#26a69a\",\"500\":\"#009688\",\"600\":\"#00897b\",\"700\":\"#00796b\",\"800\":\"#00695c\",\"900\":\"#004d40\",\"a100\":\"#a7ffeb\",\"a200\":\"#64ffda\",\"a400\":\"#1de9b6\",\"a700\":\"#00bfa5\"};\nexport var green = {\"50\":\"#e8f5e9\",\"100\":\"#c8e6c9\",\"200\":\"#a5d6a7\",\"300\":\"#81c784\",\"400\":\"#66bb6a\",\"500\":\"#4caf50\",\"600\":\"#43a047\",\"700\":\"#388e3c\",\"800\":\"#2e7d32\",\"900\":\"#1b5e20\",\"a100\":\"#b9f6ca\",\"a200\":\"#69f0ae\",\"a400\":\"#00e676\",\"a700\":\"#00c853\"};\nexport var lightGreen = {\"50\":\"#f1f8e9\",\"100\":\"#dcedc8\",\"200\":\"#c5e1a5\",\"300\":\"#aed581\",\"400\":\"#9ccc65\",\"500\":\"#8bc34a\",\"600\":\"#7cb342\",\"700\":\"#689f38\",\"800\":\"#558b2f\",\"900\":\"#33691e\",\"a100\":\"#ccff90\",\"a200\":\"#b2ff59\",\"a400\":\"#76ff03\",\"a700\":\"#64dd17\"};\nexport var lime = {\"50\":\"#f9fbe7\",\"100\":\"#f0f4c3\",\"200\":\"#e6ee9c\",\"300\":\"#dce775\",\"400\":\"#d4e157\",\"500\":\"#cddc39\",\"600\":\"#c0ca33\",\"700\":\"#afb42b\",\"800\":\"#9e9d24\",\"900\":\"#827717\",\"a100\":\"#f4ff81\",\"a200\":\"#eeff41\",\"a400\":\"#c6ff00\",\"a700\":\"#aeea00\"};\nexport var yellow = {\"50\":\"#fffde7\",\"100\":\"#fff9c4\",\"200\":\"#fff59d\",\"300\":\"#fff176\",\"400\":\"#ffee58\",\"500\":\"#ffeb3b\",\"600\":\"#fdd835\",\"700\":\"#fbc02d\",\"800\":\"#f9a825\",\"900\":\"#f57f17\",\"a100\":\"#ffff8d\",\"a200\":\"#ffff00\",\"a400\":\"#ffea00\",\"a700\":\"#ffd600\"};\nexport var amber = {\"50\":\"#fff8e1\",\"100\":\"#ffecb3\",\"200\":\"#ffe082\",\"300\":\"#ffd54f\",\"400\":\"#ffca28\",\"500\":\"#ffc107\",\"600\":\"#ffb300\",\"700\":\"#ffa000\",\"800\":\"#ff8f00\",\"900\":\"#ff6f00\",\"a100\":\"#ffe57f\",\"a200\":\"#ffd740\",\"a400\":\"#ffc400\",\"a700\":\"#ffab00\"};\nexport var orange = {\"50\":\"#fff3e0\",\"100\":\"#ffe0b2\",\"200\":\"#ffcc80\",\"300\":\"#ffb74d\",\"400\":\"#ffa726\",\"500\":\"#ff9800\",\"600\":\"#fb8c00\",\"700\":\"#f57c00\",\"800\":\"#ef6c00\",\"900\":\"#e65100\",\"a100\":\"#ffd180\",\"a200\":\"#ffab40\",\"a400\":\"#ff9100\",\"a700\":\"#ff6d00\"};\nexport var deepOrange = {\"50\":\"#fbe9e7\",\"100\":\"#ffccbc\",\"200\":\"#ffab91\",\"300\":\"#ff8a65\",\"400\":\"#ff7043\",\"500\":\"#ff5722\",\"600\":\"#f4511e\",\"700\":\"#e64a19\",\"800\":\"#d84315\",\"900\":\"#bf360c\",\"a100\":\"#ff9e80\",\"a200\":\"#ff6e40\",\"a400\":\"#ff3d00\",\"a700\":\"#dd2c00\"};\nexport var brown = {\"50\":\"#efebe9\",\"100\":\"#d7ccc8\",\"200\":\"#bcaaa4\",\"300\":\"#a1887f\",\"400\":\"#8d6e63\",\"500\":\"#795548\",\"600\":\"#6d4c41\",\"700\":\"#5d4037\",\"800\":\"#4e342e\",\"900\":\"#3e2723\"};\nexport var grey = {\"50\":\"#fafafa\",\"100\":\"#f5f5f5\",\"200\":\"#eeeeee\",\"300\":\"#e0e0e0\",\"400\":\"#bdbdbd\",\"500\":\"#9e9e9e\",\"600\":\"#757575\",\"700\":\"#616161\",\"800\":\"#424242\",\"900\":\"#212121\"};\nexport var blueGrey = {\"50\":\"#eceff1\",\"100\":\"#cfd8dc\",\"200\":\"#b0bec5\",\"300\":\"#90a4ae\",\"400\":\"#78909c\",\"500\":\"#607d8b\",\"600\":\"#546e7a\",\"700\":\"#455a64\",\"800\":\"#37474f\",\"900\":\"#263238\"};\nexport var darkText = {\"primary\":\"rgba(0, 0, 0, 0.87)\",\"secondary\":\"rgba(0, 0, 0, 0.54)\",\"disabled\":\"rgba(0, 0, 0, 0.38)\",\"dividers\":\"rgba(0, 0, 0, 0.12)\"};\nexport var lightText = {\"primary\":\"rgba(255, 255, 255, 1)\",\"secondary\":\"rgba(255, 255, 255, 0.7)\",\"disabled\":\"rgba(255, 255, 255, 0.5)\",\"dividers\":\"rgba(255, 255, 255, 0.12)\"};\nexport var darkIcons = {\"active\":\"rgba(0, 0, 0, 0.54)\",\"inactive\":\"rgba(0, 0, 0, 0.38)\"};\nexport var lightIcons = {\"active\":\"rgba(255, 255, 255, 1)\",\"inactive\":\"rgba(255, 255, 255, 0.5)\"};\nexport var white = \"#ffffff\";\nexport var black = \"#000000\";\n\nexport default {\n red: red,\n pink: pink,\n purple: purple,\n deepPurple: deepPurple,\n indigo: indigo,\n blue: blue,\n lightBlue: lightBlue,\n cyan: cyan,\n teal: teal,\n green: green,\n lightGreen: lightGreen,\n lime: lime,\n yellow: yellow,\n amber: amber,\n orange: orange,\n deepOrange: deepOrange,\n brown: brown,\n grey: grey,\n blueGrey: blueGrey,\n darkText: darkText,\n lightText: lightText,\n darkIcons: darkIcons,\n lightIcons: lightIcons,\n white: white,\n black: black\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CustomPicker = exports.TwitterPicker = exports.SwatchesPicker = exports.SliderPicker = exports.SketchPicker = exports.PhotoshopPicker = exports.MaterialPicker = exports.HuePicker = exports.GithubPicker = exports.CompactPicker = exports.ChromePicker = exports.default = exports.CirclePicker = exports.BlockPicker = exports.AlphaPicker = undefined;\n\nvar _Alpha = require('./components/alpha/Alpha');\n\nObject.defineProperty(exports, 'AlphaPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Alpha).default;\n }\n});\n\nvar _Block = require('./components/block/Block');\n\nObject.defineProperty(exports, 'BlockPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Block).default;\n }\n});\n\nvar _Circle = require('./components/circle/Circle');\n\nObject.defineProperty(exports, 'CirclePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Circle).default;\n }\n});\n\nvar _Chrome = require('./components/chrome/Chrome');\n\nObject.defineProperty(exports, 'ChromePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Chrome).default;\n }\n});\n\nvar _Compact = require('./components/compact/Compact');\n\nObject.defineProperty(exports, 'CompactPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Compact).default;\n }\n});\n\nvar _Github = require('./components/github/Github');\n\nObject.defineProperty(exports, 'GithubPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Github).default;\n }\n});\n\nvar _Hue = require('./components/hue/Hue');\n\nObject.defineProperty(exports, 'HuePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Hue).default;\n }\n});\n\nvar _Material = require('./components/material/Material');\n\nObject.defineProperty(exports, 'MaterialPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Material).default;\n }\n});\n\nvar _Photoshop = require('./components/photoshop/Photoshop');\n\nObject.defineProperty(exports, 'PhotoshopPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Photoshop).default;\n }\n});\n\nvar _Sketch = require('./components/sketch/Sketch');\n\nObject.defineProperty(exports, 'SketchPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Sketch).default;\n }\n});\n\nvar _Slider = require('./components/slider/Slider');\n\nObject.defineProperty(exports, 'SliderPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Slider).default;\n }\n});\n\nvar _Swatches = require('./components/swatches/Swatches');\n\nObject.defineProperty(exports, 'SwatchesPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Swatches).default;\n }\n});\n\nvar _Twitter = require('./components/twitter/Twitter');\n\nObject.defineProperty(exports, 'TwitterPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Twitter).default;\n }\n});\n\nvar _ColorWrap = require('./components/common/ColorWrap');\n\nObject.defineProperty(exports, 'CustomPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ColorWrap).default;\n }\n});\n\nvar _Chrome2 = _interopRequireDefault(_Chrome);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Chrome2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlphaPicker = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nvar _AlphaPointer = require('./AlphaPointer');\n\nvar _AlphaPointer2 = _interopRequireDefault(_AlphaPointer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar AlphaPicker = exports.AlphaPicker = function AlphaPicker(_ref) {\n var rgb = _ref.rgb,\n hsl = _ref.hsl,\n width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n direction = _ref.direction,\n style = _ref.style,\n renderers = _ref.renderers,\n pointer = _ref.pointer,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n alpha: {\n radius: '2px',\n style: style\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'alpha-picker ' + className },\n _react2.default.createElement(_common.Alpha, _extends({}, styles.alpha, {\n rgb: rgb,\n hsl: hsl,\n pointer: pointer,\n renderers: renderers,\n onChange: onChange,\n direction: direction\n }))\n );\n};\n\nAlphaPicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: _AlphaPointer2.default\n};\n\nexports.default = (0, _common.ColorWrap)(AlphaPicker);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flattenNames = undefined;\n\nvar _isString2 = require('lodash/isString');\n\nvar _isString3 = _interopRequireDefault(_isString2);\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _isPlainObject2 = require('lodash/isPlainObject');\n\nvar _isPlainObject3 = _interopRequireDefault(_isPlainObject2);\n\nvar _map2 = require('lodash/map');\n\nvar _map3 = _interopRequireDefault(_map2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar flattenNames = exports.flattenNames = function flattenNames() {\n var things = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var names = [];\n\n (0, _map3.default)(things, function (thing) {\n if (Array.isArray(thing)) {\n flattenNames(thing).map(function (name) {\n return names.push(name);\n });\n } else if ((0, _isPlainObject3.default)(thing)) {\n (0, _forOwn3.default)(thing, function (value, key) {\n value === true && names.push(key);\n names.push(key + '-' + value);\n });\n } else if ((0, _isString3.default)(thing)) {\n names.push(thing);\n }\n });\n\n return names;\n};\n\nexports.default = flattenNames;","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mergeClasses = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _cloneDeep2 = require('lodash/cloneDeep');\n\nvar _cloneDeep3 = _interopRequireDefault(_cloneDeep2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar mergeClasses = exports.mergeClasses = function mergeClasses(classes) {\n var activeNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var styles = classes.default && (0, _cloneDeep3.default)(classes.default) || {};\n activeNames.map(function (name) {\n var toMerge = classes[name];\n if (toMerge) {\n (0, _forOwn3.default)(toMerge, function (value, key) {\n if (!styles[key]) {\n styles[key] = {};\n }\n\n styles[key] = _extends({}, styles[key], toMerge[key]);\n });\n }\n\n return name;\n });\n return styles;\n};\n\nexports.default = mergeClasses;","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.autoprefix = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar transforms = {\n borderRadius: function borderRadius(value) {\n return {\n msBorderRadius: value,\n MozBorderRadius: value,\n OBorderRadius: value,\n WebkitBorderRadius: value,\n borderRadius: value\n };\n },\n boxShadow: function boxShadow(value) {\n return {\n msBoxShadow: value,\n MozBoxShadow: value,\n OBoxShadow: value,\n WebkitBoxShadow: value,\n boxShadow: value\n };\n },\n userSelect: function userSelect(value) {\n return {\n WebkitTouchCallout: value,\n KhtmlUserSelect: value,\n MozUserSelect: value,\n msUserSelect: value,\n WebkitUserSelect: value,\n userSelect: value\n };\n },\n\n flex: function flex(value) {\n return {\n WebkitBoxFlex: value,\n MozBoxFlex: value,\n WebkitFlex: value,\n msFlex: value,\n flex: value\n };\n },\n flexBasis: function flexBasis(value) {\n return {\n WebkitFlexBasis: value,\n flexBasis: value\n };\n },\n justifyContent: function justifyContent(value) {\n return {\n WebkitJustifyContent: value,\n justifyContent: value\n };\n },\n\n transition: function transition(value) {\n return {\n msTransition: value,\n MozTransition: value,\n OTransition: value,\n WebkitTransition: value,\n transition: value\n };\n },\n\n transform: function transform(value) {\n return {\n msTransform: value,\n MozTransform: value,\n OTransform: value,\n WebkitTransform: value,\n transform: value\n };\n },\n absolute: function absolute(value) {\n var direction = value && value.split(' ');\n return {\n position: 'absolute',\n top: direction && direction[0],\n right: direction && direction[1],\n bottom: direction && direction[2],\n left: direction && direction[3]\n };\n },\n extend: function extend(name, otherElementStyles) {\n var otherStyle = otherElementStyles[name];\n if (otherStyle) {\n return otherStyle;\n }\n return {\n 'extend': name\n };\n }\n};\n\nvar autoprefix = exports.autoprefix = function autoprefix(elements) {\n var prefixed = {};\n (0, _forOwn3.default)(elements, function (styles, element) {\n var expanded = {};\n (0, _forOwn3.default)(styles, function (value, key) {\n var transform = transforms[key];\n if (transform) {\n expanded = _extends({}, expanded, transform(value));\n } else {\n expanded[key] = value;\n }\n });\n prefixed[element] = expanded;\n });\n return prefixed;\n};\n\nexports.default = autoprefix;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hover = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar hover = exports.hover = function hover(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Hover, _React$Component);\n\n function Hover() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hover);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Hover.__proto__ || Object.getPrototypeOf(Hover)).call.apply(_ref, [this].concat(args))), _this), _this.state = { hover: false }, _this.handleMouseOver = function () {\n return _this.setState({ hover: true });\n }, _this.handleMouseOut = function () {\n return _this.setState({ hover: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseOver: _this.handleMouseOver, onMouseOut: _this.handleMouseOut },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Hover;\n }(_react2.default.Component);\n};\n\nexports.default = hover;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.active = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar active = exports.active = function active(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Active, _React$Component);\n\n function Active() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Active);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Active.__proto__ || Object.getPrototypeOf(Active)).call.apply(_ref, [this].concat(args))), _this), _this.state = { active: false }, _this.handleMouseDown = function () {\n return _this.setState({ active: true });\n }, _this.handleMouseUp = function () {\n return _this.setState({ active: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseDown: _this.handleMouseDown, onMouseUp: _this.handleMouseUp },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Active;\n }(_react2.default.Component);\n};\n\nexports.default = active;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar loopable = function loopable(i, length) {\n var props = {};\n var setProp = function setProp(name) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n props[name] = value;\n };\n\n i === 0 && setProp('first-child');\n i === length - 1 && setProp('last-child');\n (i === 0 || i % 2 === 0) && setProp('even');\n Math.abs(i % 2) === 1 && setProp('odd');\n setProp('nth-child', i);\n\n return props;\n};\n\nexports.default = loopable;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Alpha = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _alpha = require('../../helpers/alpha');\n\nvar alpha = _interopRequireWildcard(_alpha);\n\nvar _Checkboard = require('./Checkboard');\n\nvar _Checkboard2 = _interopRequireDefault(_Checkboard);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Alpha = exports.Alpha = function (_ref) {\n _inherits(Alpha, _ref);\n\n function Alpha() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Alpha);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Alpha.__proto__ || Object.getPrototypeOf(Alpha)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = alpha.calculateChange(e, _this.props.hsl, _this.props.direction, _this.props.a, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleChange);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Alpha, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var rgb = this.props.rgb;\n var styles = (0, _reactcss2.default)({\n 'default': {\n alpha: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n checkboard: {\n absolute: '0px 0px 0px 0px',\n overflow: 'hidden',\n borderRadius: this.props.radius\n },\n gradient: {\n absolute: '0px 0px 0px 0px',\n background: 'linear-gradient(to right, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n container: {\n position: 'relative',\n height: '100%',\n margin: '0 3px'\n },\n pointer: {\n position: 'absolute',\n left: rgb.a * 100 + '%'\n },\n slider: {\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n marginTop: '1px',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n gradient: {\n background: 'linear-gradient(to bottom, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)'\n },\n pointer: {\n left: 0,\n top: rgb.a * 100 + '%'\n }\n },\n 'overwrite': _extends({}, this.props.style)\n }, {\n vertical: this.props.direction === 'vertical',\n overwrite: true\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(\n 'div',\n { style: styles.checkboard },\n _react2.default.createElement(_Checkboard2.default, { renderers: this.props.renderers })\n ),\n _react2.default.createElement('div', { style: styles.gradient }),\n _react2.default.createElement(\n 'div',\n {\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n _react2.default.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Alpha;\n}(_react.PureComponent || _react.Component);\n\nexports.default = Alpha;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar calculateChange = exports.calculateChange = function calculateChange(e, hsl, direction, initialA, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var a = void 0;\n if (top < 0) {\n a = 0;\n } else if (top > containerHeight) {\n a = 1;\n } else {\n a = Math.round(top * 100 / containerHeight) / 100;\n }\n\n if (hsl.a !== a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: a,\n source: 'rgb'\n };\n }\n } else {\n var _a = void 0;\n if (left < 0) {\n _a = 0;\n } else if (left > containerWidth) {\n _a = 1;\n } else {\n _a = Math.round(left * 100 / containerWidth) / 100;\n }\n\n if (initialA !== _a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: _a,\n source: 'rgb'\n };\n }\n }\n return null;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar checkboardCache = {};\n\nvar render = exports.render = function render(c1, c2, size, serverCanvas) {\n if (typeof document === 'undefined' && !serverCanvas) {\n return null;\n }\n var canvas = serverCanvas ? new serverCanvas() : document.createElement('canvas');\n canvas.width = size * 2;\n canvas.height = size * 2;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return null;\n } // If no context can be found, return early.\n ctx.fillStyle = c1;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = c2;\n ctx.fillRect(0, 0, size, size);\n ctx.translate(size, size);\n ctx.fillRect(0, 0, size, size);\n return canvas.toDataURL();\n};\n\nvar get = exports.get = function get(c1, c2, size, serverCanvas) {\n var key = c1 + '-' + c2 + '-' + size + (serverCanvas ? '-server' : '');\n\n if (checkboardCache[key]) {\n return checkboardCache[key];\n }\n\n var checkboard = render(c1, c2, size, serverCanvas);\n checkboardCache[key] = checkboard;\n return checkboard;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.EditableInput = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEFAULT_ARROW_OFFSET = 1;\n\nvar UP_KEY_CODE = 38;\nvar DOWN_KEY_CODE = 40;\nvar VALID_KEY_CODES = [UP_KEY_CODE, DOWN_KEY_CODE];\nvar isValidKeyCode = function isValidKeyCode(keyCode) {\n return VALID_KEY_CODES.indexOf(keyCode) > -1;\n};\n\nvar getFormattedPercentage = function getFormattedPercentage(number) {\n return number + '%';\n};\nvar getNumberValue = function getNumberValue(value) {\n return Number(String(value).replace(/%/g, ''));\n};\nvar getIsPercentage = function getIsPercentage(value) {\n return String(value).indexOf('%') > -1;\n};\n\nvar EditableInput = exports.EditableInput = function (_ref) {\n _inherits(EditableInput, _ref);\n\n function EditableInput(props) {\n _classCallCheck(this, EditableInput);\n\n var _this = _possibleConstructorReturn(this, (EditableInput.__proto__ || Object.getPrototypeOf(EditableInput)).call(this));\n\n _this.handleBlur = function () {\n if (_this.state.blurValue) {\n _this.setState({ value: _this.state.blurValue, blurValue: null });\n }\n };\n\n _this.handleChange = function (e) {\n _this.setUpdatedValue(e.target.value, e);\n };\n\n _this.handleKeyDown = function (e) {\n // In case `e.target.value` is a percentage remove the `%` character\n // and update accordingly with a percentage\n // https://github.com/casesandberg/react-color/issues/383\n var value = getNumberValue(e.target.value);\n if (!isNaN(value) && isValidKeyCode(e.keyCode)) {\n var offset = _this.getArrowOffset();\n var updatedValue = e.keyCode === UP_KEY_CODE ? value + offset : value - offset;\n\n _this.setUpdatedValue(updatedValue, e);\n }\n };\n\n _this.handleDrag = function (e) {\n if (_this.props.dragLabel) {\n var newValue = Math.round(_this.props.value + e.movementX);\n if (newValue >= 0 && newValue <= _this.props.dragMax) {\n _this.props.onChange && _this.props.onChange(_this.getValueObjectWithLabel(newValue), e);\n }\n }\n };\n\n _this.handleMouseDown = function (e) {\n if (_this.props.dragLabel) {\n e.preventDefault();\n _this.handleDrag(e);\n window.addEventListener('mousemove', _this.handleDrag);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleDrag);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.state = {\n value: String(props.value).toUpperCase(),\n blurValue: String(props.value).toUpperCase()\n };\n return _this;\n }\n\n _createClass(EditableInput, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.value !== this.state.value && (prevProps.value !== this.props.value || prevState.value !== this.state.value)) {\n if (this.input === document.activeElement) {\n this.setState({ blurValue: String(this.props.value).toUpperCase() });\n } else {\n this.setState({ value: String(this.props.value).toUpperCase(), blurValue: !this.state.blurValue && String(this.props.value).toUpperCase() });\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'getValueObjectWithLabel',\n value: function getValueObjectWithLabel(value) {\n return _defineProperty({}, this.props.label, value);\n }\n }, {\n key: 'getArrowOffset',\n value: function getArrowOffset() {\n return this.props.arrowOffset || DEFAULT_ARROW_OFFSET;\n }\n }, {\n key: 'setUpdatedValue',\n value: function setUpdatedValue(value, e) {\n var onChangeValue = this.props.label ? this.getValueObjectWithLabel(value) : value;\n this.props.onChange && this.props.onChange(onChangeValue, e);\n\n var isPercentage = getIsPercentage(e.target.value);\n this.setState({\n value: isPercentage ? getFormattedPercentage(value) : value\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n wrap: {\n position: 'relative'\n }\n },\n 'user-override': {\n wrap: this.props.style && this.props.style.wrap ? this.props.style.wrap : {},\n input: this.props.style && this.props.style.input ? this.props.style.input : {},\n label: this.props.style && this.props.style.label ? this.props.style.label : {}\n },\n 'dragLabel-true': {\n label: {\n cursor: 'ew-resize'\n }\n }\n }, {\n 'user-override': true\n }, this.props);\n\n return _react2.default.createElement(\n 'div',\n { style: styles.wrap },\n _react2.default.createElement('input', {\n style: styles.input,\n ref: function ref(input) {\n return _this2.input = input;\n },\n value: this.state.value,\n onKeyDown: this.handleKeyDown,\n onChange: this.handleChange,\n onBlur: this.handleBlur,\n placeholder: this.props.placeholder,\n spellCheck: 'false'\n }),\n this.props.label && !this.props.hideLabel ? _react2.default.createElement(\n 'span',\n { style: styles.label, onMouseDown: this.handleMouseDown },\n this.props.label\n ) : null\n );\n }\n }]);\n\n return EditableInput;\n}(_react.PureComponent || _react.Component);\n\nexports.default = EditableInput;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Hue = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _hue = require('../../helpers/hue');\n\nvar hue = _interopRequireWildcard(_hue);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Hue = exports.Hue = function (_ref) {\n _inherits(Hue, _ref);\n\n function Hue() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hue);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Hue.__proto__ || Object.getPrototypeOf(Hue)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = hue.calculateChange(e, _this.props.direction, _this.props.hsl, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Hue, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$direction = this.props.direction,\n direction = _props$direction === undefined ? 'horizontal' : _props$direction;\n\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n hue: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius,\n boxShadow: this.props.shadow\n },\n container: {\n padding: '0 2px',\n position: 'relative',\n height: '100%',\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n left: this.props.hsl.h * 100 / 360 + '%'\n },\n slider: {\n marginTop: '1px',\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n pointer: {\n left: '0px',\n top: -(this.props.hsl.h * 100 / 360) + 100 + '%'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(\n 'div',\n {\n className: 'hue-' + direction,\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n _react2.default.createElement(\n 'style',\n null,\n '\\n .hue-horizontal {\\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0\\n 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to right, #f00 0%, #ff0\\n 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n\\n .hue-vertical {\\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,\\n #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,\\n #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n '\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Hue;\n}(_react.PureComponent || _react.Component);\n\nexports.default = Hue;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar calculateChange = exports.calculateChange = function calculateChange(e, direction, hsl, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var h = void 0;\n if (top < 0) {\n h = 359;\n } else if (top > containerHeight) {\n h = 0;\n } else {\n var percent = -(top * 100 / containerHeight) + 100;\n h = 360 * percent / 100;\n }\n\n if (hsl.h !== h) {\n return {\n h: h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'rgb'\n };\n }\n } else {\n var _h = void 0;\n if (left < 0) {\n _h = 0;\n } else if (left > containerWidth) {\n _h = 359;\n } else {\n var _percent = left * 100 / containerWidth;\n _h = 360 * _percent / 100;\n }\n\n if (hsl.h !== _h) {\n return {\n h: _h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'rgb'\n };\n }\n }\n return null;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Raised = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Raised = exports.Raised = function Raised(_ref) {\n var zDepth = _ref.zDepth,\n radius = _ref.radius,\n background = _ref.background,\n children = _ref.children,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n wrap: {\n position: 'relative',\n display: 'inline-block'\n },\n content: {\n position: 'relative'\n },\n bg: {\n absolute: '0px 0px 0px 0px',\n boxShadow: '0 ' + zDepth + 'px ' + zDepth * 4 + 'px rgba(0,0,0,.24)',\n borderRadius: radius,\n background: background\n }\n },\n 'zDepth-0': {\n bg: {\n boxShadow: 'none'\n }\n },\n\n 'zDepth-1': {\n bg: {\n boxShadow: '0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)'\n }\n },\n 'zDepth-2': {\n bg: {\n boxShadow: '0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)'\n }\n },\n 'zDepth-3': {\n bg: {\n boxShadow: '0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)'\n }\n },\n 'zDepth-4': {\n bg: {\n boxShadow: '0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)'\n }\n },\n 'zDepth-5': {\n bg: {\n boxShadow: '0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)'\n }\n },\n 'square': {\n bg: {\n borderRadius: '0'\n }\n },\n 'circle': {\n bg: {\n borderRadius: '50%'\n }\n }\n }, passedStyles), { 'zDepth-1': zDepth === 1 });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.wrap },\n _react2.default.createElement('div', { style: styles.bg }),\n _react2.default.createElement(\n 'div',\n { style: styles.content },\n children\n )\n );\n};\n\nRaised.propTypes = {\n background: _propTypes2.default.string,\n zDepth: _propTypes2.default.oneOf([0, 1, 2, 3, 4, 5]),\n radius: _propTypes2.default.number,\n styles: _propTypes2.default.object\n};\n\nRaised.defaultProps = {\n background: '#fff',\n zDepth: 1,\n radius: 2,\n styles: {}\n};\n\nexports.default = Raised;","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Saturation = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _throttle = require('lodash/throttle');\n\nvar _throttle2 = _interopRequireDefault(_throttle);\n\nvar _saturation = require('../../helpers/saturation');\n\nvar saturation = _interopRequireWildcard(_saturation);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Saturation = exports.Saturation = function (_ref) {\n _inherits(Saturation, _ref);\n\n function Saturation(props) {\n _classCallCheck(this, Saturation);\n\n var _this = _possibleConstructorReturn(this, (Saturation.__proto__ || Object.getPrototypeOf(Saturation)).call(this, props));\n\n _this.handleChange = function (e) {\n typeof _this.props.onChange === 'function' && _this.throttle(_this.props.onChange, saturation.calculateChange(e, _this.props.hsl, _this.container), e);\n };\n\n _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.throttle = (0, _throttle2.default)(function (fn, data, e) {\n fn(data, e);\n }, 50);\n return _this;\n }\n\n _createClass(Saturation, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.throttle.cancel();\n this.unbindEventListeners();\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _ref2 = this.props.style || {},\n color = _ref2.color,\n white = _ref2.white,\n black = _ref2.black,\n pointer = _ref2.pointer,\n circle = _ref2.circle;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n color: {\n absolute: '0px 0px 0px 0px',\n background: 'hsl(' + this.props.hsl.h + ',100%, 50%)',\n borderRadius: this.props.radius\n },\n white: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n black: {\n absolute: '0px 0px 0px 0px',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n top: -(this.props.hsv.v * 100) + 100 + '%',\n left: this.props.hsv.s * 100 + '%',\n cursor: 'default'\n },\n circle: {\n width: '4px',\n height: '4px',\n boxShadow: '0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3),\\n 0 0 1px 2px rgba(0,0,0,.4)',\n borderRadius: '50%',\n cursor: 'hand',\n transform: 'translate(-2px, -2px)'\n }\n },\n 'custom': {\n color: color,\n white: white,\n black: black,\n pointer: pointer,\n circle: circle\n }\n }, { 'custom': !!this.props.style });\n\n return _react2.default.createElement(\n 'div',\n {\n style: styles.color,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n _react2.default.createElement(\n 'style',\n null,\n '\\n .saturation-white {\\n background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));\\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\\n }\\n .saturation-black {\\n background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));\\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\\n }\\n '\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.white, className: 'saturation-white' },\n _react2.default.createElement('div', { style: styles.black, className: 'saturation-black' }),\n _react2.default.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.circle })\n )\n )\n );\n }\n }]);\n\n return Saturation;\n}(_react.PureComponent || _react.Component);\n\nexports.default = Saturation;","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar calculateChange = exports.calculateChange = function calculateChange(e, hsl, container) {\n var _container$getBoundin = container.getBoundingClientRect(),\n containerWidth = _container$getBoundin.width,\n containerHeight = _container$getBoundin.height;\n\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (left < 0) {\n left = 0;\n } else if (left > containerWidth) {\n left = containerWidth;\n }\n\n if (top < 0) {\n top = 0;\n } else if (top > containerHeight) {\n top = containerHeight;\n }\n\n var saturation = left / containerWidth;\n var bright = 1 - top / containerHeight;\n\n return {\n h: hsl.h,\n s: saturation,\n v: bright,\n a: hsl.a,\n source: 'rgb'\n };\n};","module.exports = require('./forEach');\n","var arrayEach = require('./_arrayEach'),\n baseEach = require('./_baseEach'),\n castFunction = require('./_castFunction'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Swatch = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _interaction = require('../../helpers/interaction');\n\nvar _Checkboard = require('./Checkboard');\n\nvar _Checkboard2 = _interopRequireDefault(_Checkboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ENTER = 13;\n\nvar Swatch = exports.Swatch = function Swatch(_ref) {\n var color = _ref.color,\n style = _ref.style,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onHover = _ref.onHover,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? color : _ref$title,\n children = _ref.children,\n focus = _ref.focus,\n _ref$focusStyle = _ref.focusStyle,\n focusStyle = _ref$focusStyle === undefined ? {} : _ref$focusStyle;\n\n var transparent = color === 'transparent';\n var styles = (0, _reactcss2.default)({\n default: {\n swatch: _extends({\n background: color,\n height: '100%',\n width: '100%',\n cursor: 'pointer',\n position: 'relative',\n outline: 'none'\n }, style, focus ? focusStyle : {})\n }\n });\n\n var handleClick = function handleClick(e) {\n return onClick(color, e);\n };\n var handleKeyDown = function handleKeyDown(e) {\n return e.keyCode === ENTER && onClick(color, e);\n };\n var handleHover = function handleHover(e) {\n return onHover(color, e);\n };\n\n var optionalEvents = {};\n if (onHover) {\n optionalEvents.onMouseOver = handleHover;\n }\n\n return _react2.default.createElement(\n 'div',\n _extends({\n style: styles.swatch,\n onClick: handleClick,\n title: title,\n tabIndex: 0,\n onKeyDown: handleKeyDown\n }, optionalEvents),\n children,\n transparent && _react2.default.createElement(_Checkboard2.default, {\n borderRadius: styles.swatch.borderRadius,\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.1)'\n })\n );\n};\n\nexports.default = (0, _interaction.handleFocus)(Swatch);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleFocus = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable no-invalid-this */\n\n\nvar handleFocus = exports.handleFocus = function handleFocus(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n return function (_React$Component) {\n _inherits(Focus, _React$Component);\n\n function Focus() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Focus);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Focus.__proto__ || Object.getPrototypeOf(Focus)).call.apply(_ref, [this].concat(args))), _this), _this.state = { focus: false }, _this.handleFocus = function () {\n return _this.setState({ focus: true });\n }, _this.handleBlur = function () {\n return _this.setState({ focus: false });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Focus, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n Span,\n { onFocus: this.handleFocus, onBlur: this.handleBlur },\n _react2.default.createElement(Component, _extends({}, this.props, this.state))\n );\n }\n }]);\n\n return Focus;\n }(_react2.default.Component);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlphaPointer = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar AlphaPointer = exports.AlphaPointer = function AlphaPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = AlphaPointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Block = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _common = require('../common');\n\nvar _BlockSwatches = require('./BlockSwatches');\n\nvar _BlockSwatches2 = _interopRequireDefault(_BlockSwatches);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Block = exports.Block = function Block(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var transparent = hex === 'transparent';\n var handleChange = function handleChange(hexCode, e) {\n _color2.default.isValidHex(hexCode) && onChange({\n hex: hexCode,\n source: 'hex'\n }, e);\n };\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n boxShadow: '0 1px rgba(0,0,0,.1)',\n borderRadius: '6px',\n position: 'relative'\n },\n head: {\n height: '110px',\n background: hex,\n borderRadius: '6px 6px 0 0',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative'\n },\n body: {\n padding: '10px'\n },\n label: {\n fontSize: '18px',\n color: _color2.default.getContrastingColor(hex),\n position: 'relative'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 10px 10px 10px',\n borderColor: 'transparent transparent ' + hex + ' transparent',\n position: 'absolute',\n top: '-10px',\n left: '50%',\n marginLeft: '-10px'\n },\n input: {\n width: '100%',\n fontSize: '12px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '22px',\n boxShadow: 'inset 0 0 0 1px #ddd',\n borderRadius: '4px',\n padding: '0 7px',\n boxSizing: 'border-box'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n }\n }\n }, passedStyles), { 'hide-triangle': triangle === 'hide' });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.card, className: 'block-picker ' + className },\n _react2.default.createElement('div', { style: styles.triangle }),\n _react2.default.createElement(\n 'div',\n { style: styles.head },\n transparent && _react2.default.createElement(_common.Checkboard, { borderRadius: '6px 6px 0 0' }),\n _react2.default.createElement(\n 'div',\n { style: styles.label },\n hex\n )\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.body },\n _react2.default.createElement(_BlockSwatches2.default, { colors: colors, onClick: handleChange, onSwatchHover: onSwatchHover }),\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input },\n value: hex,\n onChange: handleChange\n })\n )\n );\n};\n\nBlock.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n colors: _propTypes2.default.arrayOf(_propTypes2.default.string),\n triangle: _propTypes2.default.oneOf(['top', 'hide']),\n styles: _propTypes2.default.object\n};\n\nBlock.defaultProps = {\n width: 170,\n colors: ['#D9E3F0', '#F47373', '#697689', '#37D67A', '#2CCCE4', '#555555', '#dce775', '#ff8a65', '#ba68c8'],\n triangle: 'top',\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Block);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BlockSwatches = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BlockSwatches = exports.BlockSwatches = function BlockSwatches(_ref) {\n var colors = _ref.colors,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatches: {\n marginRight: '-10px'\n },\n swatch: {\n width: '22px',\n height: '22px',\n float: 'left',\n marginRight: '10px',\n marginBottom: '10px',\n borderRadius: '4px'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.swatches },\n (0, _map2.default)(colors, function (c) {\n return _react2.default.createElement(_common.Swatch, {\n key: c,\n color: c,\n style: styles.swatch,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n _react2.default.createElement('div', { style: styles.clear })\n );\n};\n\nexports.default = BlockSwatches;","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Circle = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _materialColors = require('material-colors');\n\nvar material = _interopRequireWildcard(_materialColors);\n\nvar _common = require('../common');\n\nvar _CircleSwatch = require('./CircleSwatch');\n\nvar _CircleSwatch2 = _interopRequireDefault(_CircleSwatch);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Circle = exports.Circle = function Circle(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n circleSize = _ref.circleSize,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n circleSpacing = _ref.circleSpacing,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n card: {\n width: width,\n display: 'flex',\n flexWrap: 'wrap',\n marginRight: -circleSpacing,\n marginBottom: -circleSpacing\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(hexCode, e) {\n return onChange({ hex: hexCode, source: 'hex' }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.card, className: 'circle-picker ' + className },\n (0, _map2.default)(colors, function (c) {\n return _react2.default.createElement(_CircleSwatch2.default, {\n key: c,\n color: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover,\n active: hex === c.toLowerCase(),\n circleSize: circleSize,\n circleSpacing: circleSpacing\n });\n })\n );\n};\n\nCircle.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n circleSize: _propTypes2.default.number,\n circleSpacing: _propTypes2.default.number,\n styles: _propTypes2.default.object\n};\n\nCircle.defaultProps = {\n width: 252,\n circleSize: 28,\n circleSpacing: 14,\n colors: [material.red['500'], material.pink['500'], material.purple['500'], material.deepPurple['500'], material.indigo['500'], material.blue['500'], material.lightBlue['500'], material.cyan['500'], material.teal['500'], material.green['500'], material.lightGreen['500'], material.lime['500'], material.yellow['500'], material.amber['500'], material.orange['500'], material.deepOrange['500'], material.brown['500'], material.blueGrey['500']],\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Circle);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CircleSwatch = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar CircleSwatch = exports.CircleSwatch = function CircleSwatch(_ref) {\n var color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n hover = _ref.hover,\n active = _ref.active,\n circleSize = _ref.circleSize,\n circleSpacing = _ref.circleSpacing;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatch: {\n width: circleSize,\n height: circleSize,\n marginRight: circleSpacing,\n marginBottom: circleSpacing,\n transform: 'scale(1)',\n transition: '100ms transform ease'\n },\n Swatch: {\n borderRadius: '50%',\n background: 'transparent',\n boxShadow: 'inset 0 0 0 ' + circleSize / 2 + 'px ' + color,\n transition: '100ms box-shadow ease'\n }\n },\n 'hover': {\n swatch: {\n transform: 'scale(1.2)'\n }\n },\n 'active': {\n Swatch: {\n boxShadow: 'inset 0 0 0 3px ' + color\n }\n }\n }, { hover: hover, active: active });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_common.Swatch, {\n style: styles.Swatch,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: styles.Swatch.boxShadow + ', 0 0 5px ' + color }\n })\n );\n};\n\nCircleSwatch.defaultProps = {\n circleSize: 28,\n circleSpacing: 14\n};\n\nexports.default = (0, _reactcss.handleHover)(CircleSwatch);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Chrome = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _ChromeFields = require('./ChromeFields');\n\nvar _ChromeFields2 = _interopRequireDefault(_ChromeFields);\n\nvar _ChromePointer = require('./ChromePointer');\n\nvar _ChromePointer2 = _interopRequireDefault(_ChromePointer);\n\nvar _ChromePointerCircle = require('./ChromePointerCircle');\n\nvar _ChromePointerCircle2 = _interopRequireDefault(_ChromePointerCircle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Chrome = exports.Chrome = function Chrome(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n disableAlpha = _ref.disableAlpha,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className,\n defaultView = _ref.defaultView;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n borderRadius: '2px',\n boxShadow: '0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)',\n boxSizing: 'initial',\n fontFamily: 'Menlo'\n },\n saturation: {\n width: '100%',\n paddingBottom: '55%',\n position: 'relative',\n borderRadius: '2px 2px 0 0',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '2px 2px 0 0'\n },\n body: {\n padding: '16px 16px 12px'\n },\n controls: {\n display: 'flex'\n },\n color: {\n width: '32px'\n },\n swatch: {\n marginTop: '6px',\n width: '16px',\n height: '16px',\n borderRadius: '8px',\n position: 'relative',\n overflow: 'hidden'\n },\n active: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '8px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.1)',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + rgb.a + ')',\n zIndex: '2'\n },\n toggles: {\n flex: '1'\n },\n hue: {\n height: '10px',\n position: 'relative',\n marginBottom: '8px'\n },\n Hue: {\n radius: '2px'\n },\n alpha: {\n height: '10px',\n position: 'relative'\n },\n Alpha: {\n radius: '2px'\n }\n },\n 'disableAlpha': {\n color: {\n width: '22px'\n },\n alpha: {\n display: 'none'\n },\n hue: {\n marginBottom: '0px'\n },\n swatch: {\n width: '10px',\n height: '10px',\n marginTop: '0px'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'chrome-picker ' + className },\n _react2.default.createElement(\n 'div',\n { style: styles.saturation },\n _react2.default.createElement(_common.Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n pointer: _ChromePointerCircle2.default,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.body },\n _react2.default.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.color },\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement('div', { style: styles.active }),\n _react2.default.createElement(_common.Checkboard, { renderers: renderers })\n )\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.toggles },\n _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(_common.Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: _ChromePointer2.default,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n pointer: _ChromePointer2.default,\n renderers: renderers,\n onChange: onChange\n })\n )\n )\n ),\n _react2.default.createElement(_ChromeFields2.default, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n view: defaultView,\n onChange: onChange,\n disableAlpha: disableAlpha\n })\n )\n );\n};\n\nChrome.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n disableAlpha: _propTypes2.default.bool,\n styles: _propTypes2.default.object,\n defaultView: _propTypes2.default.oneOf([\"hex\", \"rgb\", \"hsl\"])\n};\n\nChrome.defaultProps = {\n width: 225,\n disableAlpha: false,\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Chrome);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChromeFields = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _common = require('../common');\n\nvar _UnfoldMoreHorizontalIcon = require('@icons/material/UnfoldMoreHorizontalIcon');\n\nvar _UnfoldMoreHorizontalIcon2 = _interopRequireDefault(_UnfoldMoreHorizontalIcon);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable react/no-did-mount-set-state, no-param-reassign */\n\nvar ChromeFields = exports.ChromeFields = function (_React$Component) {\n _inherits(ChromeFields, _React$Component);\n\n function ChromeFields(props) {\n _classCallCheck(this, ChromeFields);\n\n var _this = _possibleConstructorReturn(this, (ChromeFields.__proto__ || Object.getPrototypeOf(ChromeFields)).call(this));\n\n _this.toggleViews = function () {\n if (_this.state.view === 'hex') {\n _this.setState({ view: 'rgb' });\n } else if (_this.state.view === 'rgb') {\n _this.setState({ view: 'hsl' });\n } else if (_this.state.view === 'hsl') {\n if (_this.props.hsl.a === 1) {\n _this.setState({ view: 'hex' });\n } else {\n _this.setState({ view: 'rgb' });\n }\n }\n };\n\n _this.handleChange = function (data, e) {\n if (data.hex) {\n _color2.default.isValidHex(data.hex) && _this.props.onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n _this.props.onChange({\n r: data.r || _this.props.rgb.r,\n g: data.g || _this.props.rgb.g,\n b: data.b || _this.props.rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 1) {\n data.a = 1;\n }\n\n _this.props.onChange({\n h: _this.props.hsl.h,\n s: _this.props.hsl.s,\n l: _this.props.hsl.l,\n a: Math.round(data.a * 100) / 100,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.l) {\n // Remove any occurances of '%'.\n if (typeof data.s === 'string' && data.s.includes('%')) {\n data.s = data.s.replace('%', '');\n }\n if (typeof data.l === 'string' && data.l.includes('%')) {\n data.l = data.l.replace('%', '');\n }\n\n _this.props.onChange({\n h: data.h || _this.props.hsl.h,\n s: Number(data.s && data.s || _this.props.hsl.s),\n l: Number(data.l && data.l || _this.props.hsl.l),\n source: 'hsl'\n }, e);\n }\n };\n\n _this.showHighlight = function (e) {\n e.currentTarget.style.background = '#eee';\n };\n\n _this.hideHighlight = function (e) {\n e.currentTarget.style.background = 'transparent';\n };\n\n if (props.hsl.a !== 1 && props.view === \"hex\") {\n _this.state = {\n view: \"rgb\"\n };\n } else {\n _this.state = {\n view: props.view\n };\n }\n return _this;\n }\n\n _createClass(ChromeFields, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n wrap: {\n paddingTop: '16px',\n display: 'flex'\n },\n fields: {\n flex: '1',\n display: 'flex',\n marginLeft: '-6px'\n },\n field: {\n paddingLeft: '6px',\n width: '100%'\n },\n alpha: {\n paddingLeft: '6px',\n width: '100%'\n },\n toggle: {\n width: '32px',\n textAlign: 'right',\n position: 'relative'\n },\n icon: {\n marginRight: '-4px',\n marginTop: '12px',\n cursor: 'pointer',\n position: 'relative'\n },\n iconHighlight: {\n position: 'absolute',\n width: '24px',\n height: '28px',\n background: '#eee',\n borderRadius: '4px',\n top: '10px',\n left: '12px',\n display: 'none'\n },\n input: {\n fontSize: '11px',\n color: '#333',\n width: '100%',\n borderRadius: '2px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #dadada',\n height: '21px',\n textAlign: 'center'\n },\n label: {\n textTransform: 'uppercase',\n fontSize: '11px',\n lineHeight: '11px',\n color: '#969696',\n textAlign: 'center',\n display: 'block',\n marginTop: '12px'\n },\n svg: {\n fill: '#333',\n width: '24px',\n height: '24px',\n border: '1px transparent solid',\n borderRadius: '5px'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, this.props, this.state);\n\n var fields = void 0;\n if (this.state.view === 'hex') {\n fields = _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex', value: this.props.hex,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'rgb') {\n fields = _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: this.props.rgb.r,\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: this.props.rgb.g,\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: this.props.rgb.b,\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.rgb.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'hsl') {\n fields = _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'h',\n value: Math.round(this.props.hsl.h),\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 's',\n value: Math.round(this.props.hsl.s * 100) + '%',\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'l',\n value: Math.round(this.props.hsl.l * 100) + '%',\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.hsl.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n }\n\n return _react2.default.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n fields,\n _react2.default.createElement(\n 'div',\n { style: styles.toggle },\n _react2.default.createElement(\n 'div',\n { style: styles.icon, onClick: this.toggleViews, ref: function ref(icon) {\n return _this2.icon = icon;\n } },\n _react2.default.createElement(_UnfoldMoreHorizontalIcon2.default, {\n style: styles.svg,\n onMouseOver: this.showHighlight,\n onMouseEnter: this.showHighlight,\n onMouseOut: this.hideHighlight\n })\n )\n )\n );\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n if (nextProps.hsl.a !== 1 && state.view === 'hex') {\n return { view: 'rgb' };\n }\n return null;\n }\n }]);\n\n return ChromeFields;\n}(_react2.default.Component);\n\nChromeFields.defaultProps = {\n view: \"hex\"\n};\n\nexports.default = ChromeFields;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z' })\n );\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChromePointer = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ChromePointer = exports.ChromePointer = function ChromePointer() {\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n transform: 'translate(-6px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = ChromePointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChromePointerCircle = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ChromePointerCircle = exports.ChromePointerCircle = function ChromePointerCircle() {\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n }\n });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = ChromePointerCircle;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Compact = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _common = require('../common');\n\nvar _CompactColor = require('./CompactColor');\n\nvar _CompactColor2 = _interopRequireDefault(_CompactColor);\n\nvar _CompactFields = require('./CompactFields');\n\nvar _CompactFields2 = _interopRequireDefault(_CompactFields);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Compact = exports.Compact = function Compact(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n Compact: {\n background: '#f6f6f6',\n radius: '4px'\n },\n compact: {\n paddingTop: '5px',\n paddingLeft: '5px',\n boxSizing: 'initial',\n width: '240px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n _color2.default.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else {\n onChange(data, e);\n }\n };\n\n return _react2.default.createElement(\n _common.Raised,\n { style: styles.Compact, styles: passedStyles },\n _react2.default.createElement(\n 'div',\n { style: styles.compact, className: 'compact-picker ' + className },\n _react2.default.createElement(\n 'div',\n null,\n (0, _map2.default)(colors, function (c) {\n return _react2.default.createElement(_CompactColor2.default, {\n key: c,\n color: c,\n active: c.toLowerCase() === hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n _react2.default.createElement('div', { style: styles.clear })\n ),\n _react2.default.createElement(_CompactFields2.default, { hex: hex, rgb: rgb, onChange: handleChange })\n )\n );\n};\n\nCompact.propTypes = {\n colors: _propTypes2.default.arrayOf(_propTypes2.default.string),\n styles: _propTypes2.default.object\n};\n\nCompact.defaultProps = {\n colors: ['#4D4D4D', '#999999', '#FFFFFF', '#F44E3B', '#FE9200', '#FCDC00', '#DBDF00', '#A4DD00', '#68CCCA', '#73D8FF', '#AEA1FF', '#FDA1FF', '#333333', '#808080', '#cccccc', '#D33115', '#E27300', '#FCC400', '#B0BC00', '#68BC00', '#16A5A5', '#009CE0', '#7B64FF', '#FA28FF', '#000000', '#666666', '#B3B3B3', '#9F0500', '#C45100', '#FB9E00', '#808900', '#194D33', '#0C797D', '#0062B1', '#653294', '#AB149E'],\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Compact);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CompactColor = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar CompactColor = exports.CompactColor = function CompactColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n active = _ref.active;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n color: {\n background: color,\n width: '15px',\n height: '15px',\n float: 'left',\n marginRight: '5px',\n marginBottom: '5px',\n position: 'relative',\n cursor: 'pointer'\n },\n dot: {\n absolute: '5px 5px 5px 5px',\n background: _color2.default.getContrastingColor(color),\n borderRadius: '50%',\n opacity: '0'\n }\n },\n 'active': {\n dot: {\n opacity: '1'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n dot: {\n background: '#000'\n }\n },\n 'transparent': {\n dot: {\n background: '#000'\n }\n }\n }, { active: active, 'color-#FFFFFF': color === '#FFFFFF', 'transparent': color === 'transparent' });\n\n return _react2.default.createElement(\n _common.Swatch,\n {\n style: styles.color,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n _react2.default.createElement('div', { style: styles.dot })\n );\n};\n\nexports.default = CompactColor;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CompactFields = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar CompactFields = exports.CompactFields = function CompactFields(_ref) {\n var hex = _ref.hex,\n rgb = _ref.rgb,\n onChange = _ref.onChange;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n fields: {\n display: 'flex',\n paddingBottom: '6px',\n paddingRight: '5px',\n position: 'relative'\n },\n active: {\n position: 'absolute',\n top: '6px',\n left: '5px',\n height: '9px',\n width: '9px',\n background: hex\n },\n HEXwrap: {\n flex: '6',\n position: 'relative'\n },\n HEXinput: {\n width: '80%',\n padding: '0px',\n paddingLeft: '20%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n HEXlabel: {\n display: 'none'\n },\n RGBwrap: {\n flex: '3',\n position: 'relative'\n },\n RGBinput: {\n width: '70%',\n padding: '0px',\n paddingLeft: '30%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '3px',\n left: '0px',\n lineHeight: '16px',\n textTransform: 'uppercase',\n fontSize: '12px',\n color: '#999'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else {\n onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n }\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement('div', { style: styles.active }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n );\n};\n\nexports.default = CompactFields;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Github = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _GithubSwatch = require('./GithubSwatch');\n\nvar _GithubSwatch2 = _interopRequireDefault(_GithubSwatch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Github = exports.Github = function Github(_ref) {\n var width = _ref.width,\n colors = _ref.colors,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '1px solid rgba(0,0,0,0.2)',\n boxShadow: '0 3px 12px rgba(0,0,0,0.15)',\n borderRadius: '4px',\n position: 'relative',\n padding: '5px',\n display: 'flex',\n flexWrap: 'wrap'\n },\n triangle: {\n position: 'absolute',\n border: '7px solid transparent',\n borderBottomColor: '#fff'\n },\n triangleShadow: {\n position: 'absolute',\n border: '8px solid transparent',\n borderBottomColor: 'rgba(0,0,0,0.15)'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-14px',\n left: '10px'\n },\n triangleShadow: {\n top: '-16px',\n left: '9px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-14px',\n right: '10px'\n },\n triangleShadow: {\n top: '-16px',\n right: '9px'\n }\n },\n 'bottom-left-triangle': {\n triangle: {\n top: '35px',\n left: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n left: '9px',\n transform: 'rotate(180deg)'\n }\n },\n 'bottom-right-triangle': {\n triangle: {\n top: '35px',\n right: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n right: '9px',\n transform: 'rotate(180deg)'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right',\n 'bottom-left-triangle': triangle === 'bottom-left',\n 'bottom-right-triangle': triangle === 'bottom-right'\n });\n\n var handleChange = function handleChange(hex, e) {\n return onChange({ hex: hex, source: 'hex' }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.card, className: 'github-picker ' + className },\n _react2.default.createElement('div', { style: styles.triangleShadow }),\n _react2.default.createElement('div', { style: styles.triangle }),\n (0, _map2.default)(colors, function (c) {\n return _react2.default.createElement(_GithubSwatch2.default, {\n color: c,\n key: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nGithub.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n colors: _propTypes2.default.arrayOf(_propTypes2.default.string),\n triangle: _propTypes2.default.oneOf(['hide', 'top-left', 'top-right', 'bottom-left', 'bottom-right']),\n styles: _propTypes2.default.object\n};\n\nGithub.defaultProps = {\n width: 200,\n colors: ['#B80000', '#DB3E00', '#FCCB00', '#008B02', '#006B76', '#1273DE', '#004DCF', '#5300EB', '#EB9694', '#FAD0C3', '#FEF3BD', '#C1E1C5', '#BEDADC', '#C4DEF6', '#BED3F3', '#D4C4FB'],\n triangle: 'top-left',\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Github);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GithubSwatch = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar GithubSwatch = exports.GithubSwatch = function GithubSwatch(_ref) {\n var hover = _ref.hover,\n color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var hoverSwatch = {\n position: 'relative',\n zIndex: '2',\n outline: '2px solid #fff',\n boxShadow: '0 0 5px 2px rgba(0,0,0,0.25)'\n };\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatch: {\n width: '25px',\n height: '25px',\n fontSize: '0'\n }\n },\n 'hover': {\n swatch: hoverSwatch\n }\n }, { hover: hover });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_common.Swatch, {\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: hoverSwatch\n })\n );\n};\n\nexports.default = (0, _reactcss.handleHover)(GithubSwatch);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.HuePicker = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _HuePointer = require('./HuePointer');\n\nvar _HuePointer2 = _interopRequireDefault(_HuePointer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar HuePicker = exports.HuePicker = function HuePicker(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n hsl = _ref.hsl,\n direction = _ref.direction,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n // Overwrite to provide pure hue color\n var handleChange = function handleChange(data) {\n return onChange({ a: 1, h: data.h, l: 0.5, s: 1 });\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'hue-picker ' + className },\n _react2.default.createElement(_common.Hue, _extends({}, styles.hue, {\n hsl: hsl,\n pointer: pointer,\n onChange: handleChange,\n direction: direction\n }))\n );\n};\n\nHuePicker.propTypes = {\n styles: _propTypes2.default.object\n};\nHuePicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: _HuePointer2.default,\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(HuePicker);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SliderPointer = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SliderPointer = exports.SliderPointer = function SliderPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = SliderPointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Material = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Material = exports.Material = function Material(_ref) {\n var onChange = _ref.onChange,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n material: {\n width: '98px',\n height: '98px',\n padding: '16px',\n fontFamily: 'Roboto'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '2px solid ' + hex,\n outline: 'none',\n height: '30px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n Hex: {\n style: {}\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '1px solid #eee',\n outline: 'none',\n height: '30px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n split: {\n display: 'flex',\n marginRight: '-10px',\n paddingTop: '11px'\n },\n third: {\n flex: '1',\n paddingRight: '10px'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n _color2.default.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n }\n };\n\n return _react2.default.createElement(\n _common.Raised,\n { styles: passedStyles },\n _react2.default.createElement(\n 'div',\n { style: styles.material, className: 'material-picker ' + className },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n _react2.default.createElement(\n 'div',\n { style: styles.split, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.third },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r', value: rgb.r,\n onChange: handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.third },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.third },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexports.default = (0, _common.ColorWrap)(Material);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Photoshop = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _PhotoshopFields = require('./PhotoshopFields');\n\nvar _PhotoshopFields2 = _interopRequireDefault(_PhotoshopFields);\n\nvar _PhotoshopPointerCircle = require('./PhotoshopPointerCircle');\n\nvar _PhotoshopPointerCircle2 = _interopRequireDefault(_PhotoshopPointerCircle);\n\nvar _PhotoshopPointer = require('./PhotoshopPointer');\n\nvar _PhotoshopPointer2 = _interopRequireDefault(_PhotoshopPointer);\n\nvar _PhotoshopButton = require('./PhotoshopButton');\n\nvar _PhotoshopButton2 = _interopRequireDefault(_PhotoshopButton);\n\nvar _PhotoshopPreviews = require('./PhotoshopPreviews');\n\nvar _PhotoshopPreviews2 = _interopRequireDefault(_PhotoshopPreviews);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Photoshop = exports.Photoshop = function (_React$Component) {\n _inherits(Photoshop, _React$Component);\n\n function Photoshop(props) {\n _classCallCheck(this, Photoshop);\n\n var _this = _possibleConstructorReturn(this, (Photoshop.__proto__ || Object.getPrototypeOf(Photoshop)).call(this));\n\n _this.state = {\n currentColor: props.hex\n };\n return _this;\n }\n\n _createClass(Photoshop, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n _props$styles = _props.styles,\n passedStyles = _props$styles === undefined ? {} : _props$styles,\n _props$className = _props.className,\n className = _props$className === undefined ? '' : _props$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n picker: {\n background: '#DCDCDC',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.25), 0 8px 16px rgba(0,0,0,.15)',\n boxSizing: 'initial',\n width: '513px'\n },\n head: {\n backgroundImage: 'linear-gradient(-180deg, #F0F0F0 0%, #D4D4D4 100%)',\n borderBottom: '1px solid #B1B1B1',\n boxShadow: 'inset 0 1px 0 0 rgba(255,255,255,.2), inset 0 -1px 0 0 rgba(0,0,0,.02)',\n height: '23px',\n lineHeight: '24px',\n borderRadius: '4px 4px 0 0',\n fontSize: '13px',\n color: '#4D4D4D',\n textAlign: 'center'\n },\n body: {\n padding: '15px 15px 0',\n display: 'flex'\n },\n saturation: {\n width: '256px',\n height: '256px',\n position: 'relative',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0',\n overflow: 'hidden'\n },\n hue: {\n position: 'relative',\n height: '256px',\n width: '19px',\n marginLeft: '10px',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0'\n },\n controls: {\n width: '180px',\n marginLeft: '10px'\n },\n top: {\n display: 'flex'\n },\n previews: {\n width: '60px'\n },\n actions: {\n flex: '1',\n marginLeft: '20px'\n }\n }\n }, passedStyles));\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'photoshop-picker ' + className },\n _react2.default.createElement(\n 'div',\n { style: styles.head },\n this.props.header\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.body, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.saturation },\n _react2.default.createElement(_common.Saturation, {\n hsl: this.props.hsl,\n hsv: this.props.hsv,\n pointer: _PhotoshopPointerCircle2.default,\n onChange: this.props.onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(_common.Hue, {\n direction: 'vertical',\n hsl: this.props.hsl,\n pointer: _PhotoshopPointer2.default,\n onChange: this.props.onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.controls },\n _react2.default.createElement(\n 'div',\n { style: styles.top, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.previews },\n _react2.default.createElement(_PhotoshopPreviews2.default, {\n rgb: this.props.rgb,\n currentColor: this.state.currentColor\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.actions },\n _react2.default.createElement(_PhotoshopButton2.default, { label: 'OK', onClick: this.props.onAccept, active: true }),\n _react2.default.createElement(_PhotoshopButton2.default, { label: 'Cancel', onClick: this.props.onCancel }),\n _react2.default.createElement(_PhotoshopFields2.default, {\n onChange: this.props.onChange,\n rgb: this.props.rgb,\n hsv: this.props.hsv,\n hex: this.props.hex\n })\n )\n )\n )\n )\n );\n }\n }]);\n\n return Photoshop;\n}(_react2.default.Component);\n\nPhotoshop.propTypes = {\n header: _propTypes2.default.string,\n styles: _propTypes2.default.object\n};\n\nPhotoshop.defaultProps = {\n header: 'Color Picker',\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Photoshop);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopPicker = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopPicker = exports.PhotoshopPicker = function PhotoshopPicker(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsv = _ref.hsv,\n hex = _ref.hex;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n fields: {\n paddingTop: '5px',\n paddingBottom: '9px',\n width: '80px',\n position: 'relative'\n },\n divider: {\n height: '5px'\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n marginLeft: '40%',\n width: '40%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '5px',\n fontSize: '13px',\n paddingLeft: '3px',\n marginRight: '10px'\n },\n RGBlabel: {\n left: '0px',\n width: '34px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px',\n position: 'absolute'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n marginLeft: '20%',\n width: '80%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '6px',\n fontSize: '13px',\n paddingLeft: '3px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n width: '14px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px'\n },\n fieldSymbols: {\n position: 'absolute',\n top: '5px',\n right: '-7px',\n fontSize: '13px'\n },\n symbol: {\n height: '20px',\n lineHeight: '22px',\n paddingBottom: '7px'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data['#']) {\n _color2.default.isValidHex(data['#']) && onChange({\n hex: data['#'],\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.v) {\n onChange({\n h: data.h || hsv.h,\n s: data.s || hsv.s,\n v: data.v || hsv.v,\n source: 'hsv'\n }, e);\n }\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.fields },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'h',\n value: Math.round(hsv.h),\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 's',\n value: Math.round(hsv.s * 100),\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'v',\n value: Math.round(hsv.v * 100),\n onChange: handleChange\n }),\n _react2.default.createElement('div', { style: styles.divider }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n }),\n _react2.default.createElement('div', { style: styles.divider }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: '#',\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n _react2.default.createElement(\n 'div',\n { style: styles.fieldSymbols },\n _react2.default.createElement(\n 'div',\n { style: styles.symbol },\n '\\xB0'\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n )\n )\n );\n};\n\nexports.default = PhotoshopPicker;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopPointerCircle = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopPointerCircle = exports.PhotoshopPointerCircle = function PhotoshopPointerCircle(_ref) {\n var hsl = _ref.hsl;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n },\n 'black-outline': {\n picker: {\n boxShadow: 'inset 0 0 0 1px #000'\n }\n }\n }, { 'black-outline': hsl.l > 0.5 });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = PhotoshopPointerCircle;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopPointerCircle = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopPointerCircle = exports.PhotoshopPointerCircle = function PhotoshopPointerCircle() {\n var styles = (0, _reactcss2.default)({\n 'default': {\n triangle: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '4px 0 4px 6px',\n borderColor: 'transparent transparent transparent #fff',\n position: 'absolute',\n top: '1px',\n left: '1px'\n },\n triangleBorder: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '5px 0 5px 8px',\n borderColor: 'transparent transparent transparent #555'\n },\n\n left: {\n Extend: 'triangleBorder',\n transform: 'translate(-13px, -4px)'\n },\n leftInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n },\n\n right: {\n Extend: 'triangleBorder',\n transform: 'translate(20px, -14px) rotate(180deg)'\n },\n rightInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.pointer },\n _react2.default.createElement(\n 'div',\n { style: styles.left },\n _react2.default.createElement('div', { style: styles.leftInside })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.right },\n _react2.default.createElement('div', { style: styles.rightInside })\n )\n );\n};\n\nexports.default = PhotoshopPointerCircle;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopButton = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopButton = exports.PhotoshopButton = function PhotoshopButton(_ref) {\n var onClick = _ref.onClick,\n label = _ref.label,\n children = _ref.children,\n active = _ref.active;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n button: {\n backgroundImage: 'linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)',\n border: '1px solid #878787',\n borderRadius: '2px',\n height: '20px',\n boxShadow: '0 1px 0 0 #EAEAEA',\n fontSize: '14px',\n color: '#000',\n lineHeight: '20px',\n textAlign: 'center',\n marginBottom: '10px',\n cursor: 'pointer'\n }\n },\n 'active': {\n button: {\n boxShadow: '0 0 0 1px #878787'\n }\n }\n }, { active: active });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.button, onClick: onClick },\n label || children\n );\n};\n\nexports.default = PhotoshopButton;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopPreviews = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopPreviews = exports.PhotoshopPreviews = function PhotoshopPreviews(_ref) {\n var rgb = _ref.rgb,\n currentColor = _ref.currentColor;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatches: {\n border: '1px solid #B3B3B3',\n borderBottom: '1px solid #F0F0F0',\n marginBottom: '2px',\n marginTop: '1px'\n },\n new: {\n height: '34px',\n background: 'rgb(' + rgb.r + ',' + rgb.g + ', ' + rgb.b + ')',\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000'\n },\n current: {\n height: '34px',\n background: currentColor,\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000'\n },\n label: {\n fontSize: '14px',\n color: '#000',\n textAlign: 'center'\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n 'div',\n { style: styles.label },\n 'new'\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatches },\n _react2.default.createElement('div', { style: styles.new }),\n _react2.default.createElement('div', { style: styles.current })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.label },\n 'current'\n )\n );\n};\n\nexports.default = PhotoshopPreviews;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Sketch = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _SketchFields = require('./SketchFields');\n\nvar _SketchFields2 = _interopRequireDefault(_SketchFields);\n\nvar _SketchPresetColors = require('./SketchPresetColors');\n\nvar _SketchPresetColors2 = _interopRequireDefault(_SketchPresetColors);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Sketch = exports.Sketch = function Sketch(_ref) {\n var width = _ref.width,\n rgb = _ref.rgb,\n hex = _ref.hex,\n hsv = _ref.hsv,\n hsl = _ref.hsl,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n disableAlpha = _ref.disableAlpha,\n presetColors = _ref.presetColors,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': _extends({\n picker: {\n width: width,\n padding: '10px 10px 0',\n boxSizing: 'initial',\n background: '#fff',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.15), 0 8px 16px rgba(0,0,0,.15)'\n },\n saturation: {\n width: '100%',\n paddingBottom: '75%',\n position: 'relative',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '3px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n controls: {\n display: 'flex'\n },\n sliders: {\n padding: '4px 0',\n flex: '1'\n },\n color: {\n width: '24px',\n height: '24px',\n position: 'relative',\n marginTop: '4px',\n marginLeft: '4px',\n borderRadius: '3px'\n },\n activeColor: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '2px',\n background: 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + rgb.a + ')',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n hue: {\n position: 'relative',\n height: '10px',\n overflow: 'hidden'\n },\n Hue: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n\n alpha: {\n position: 'relative',\n height: '10px',\n marginTop: '4px',\n overflow: 'hidden'\n },\n Alpha: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n }\n }, passedStyles),\n 'disableAlpha': {\n color: {\n height: '10px'\n },\n hue: {\n height: '10px'\n },\n alpha: {\n display: 'none'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'sketch-picker ' + className },\n _react2.default.createElement(\n 'div',\n { style: styles.saturation },\n _react2.default.createElement(_common.Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.sliders },\n _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(_common.Hue, {\n style: styles.Hue,\n hsl: hsl,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n renderers: renderers,\n onChange: onChange\n })\n )\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.color },\n _react2.default.createElement(_common.Checkboard, null),\n _react2.default.createElement('div', { style: styles.activeColor })\n )\n ),\n _react2.default.createElement(_SketchFields2.default, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n onChange: onChange,\n disableAlpha: disableAlpha\n }),\n _react2.default.createElement(_SketchPresetColors2.default, {\n colors: presetColors,\n onClick: onChange,\n onSwatchHover: onSwatchHover\n })\n );\n};\n\nSketch.propTypes = {\n disableAlpha: _propTypes2.default.bool,\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n styles: _propTypes2.default.object\n};\n\nSketch.defaultProps = {\n disableAlpha: false,\n width: 200,\n styles: {},\n presetColors: ['#D0021B', '#F5A623', '#F8E71C', '#8B572A', '#7ED321', '#417505', '#BD10E0', '#9013FE', '#4A90E2', '#50E3C2', '#B8E986', '#000000', '#4A4A4A', '#9B9B9B', '#FFFFFF']\n};\n\nexports.default = (0, _common.ColorWrap)(Sketch);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SketchFields = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable no-param-reassign */\n\nvar SketchFields = exports.SketchFields = function SketchFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n disableAlpha = _ref.disableAlpha;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n fields: {\n display: 'flex',\n paddingTop: '4px'\n },\n single: {\n flex: '1',\n paddingLeft: '6px'\n },\n alpha: {\n flex: '1',\n paddingLeft: '6px'\n },\n double: {\n flex: '2'\n },\n input: {\n width: '80%',\n padding: '4px 10% 3px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #ccc',\n fontSize: '11px'\n },\n label: {\n display: 'block',\n textAlign: 'center',\n fontSize: '11px',\n color: '#222',\n paddingTop: '3px',\n paddingBottom: '4px',\n textTransform: 'capitalize'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, { disableAlpha: disableAlpha });\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n _color2.default.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n a: rgb.a,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 100) {\n data.a = 100;\n }\n\n data.a /= 100;\n onChange({\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: data.a,\n source: 'rgb'\n }, e);\n }\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.double },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex.replace('#', ''),\n onChange: handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.single },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: rgb.r,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.single },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: rgb.g,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.single },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: rgb.b,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: Math.round(rgb.a * 100),\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '100'\n })\n )\n );\n};\n\nexports.default = SketchFields;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SketchPresetColors = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SketchPresetColors = exports.SketchPresetColors = function SketchPresetColors(_ref) {\n var colors = _ref.colors,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n colors: {\n margin: '0 -10px',\n padding: '10px 0 0 10px',\n borderTop: '1px solid #eee',\n display: 'flex',\n flexWrap: 'wrap',\n position: 'relative'\n },\n swatchWrap: {\n width: '16px',\n height: '16px',\n margin: '0 10px 10px 0'\n },\n swatch: {\n borderRadius: '3px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)'\n }\n },\n 'no-presets': {\n colors: {\n display: 'none'\n }\n }\n }, {\n 'no-presets': !colors || !colors.length\n });\n\n var handleClick = function handleClick(hex, e) {\n onClick({\n hex: hex,\n source: 'hex'\n }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.colors, className: 'flexbox-fix' },\n colors.map(function (colorObjOrString) {\n var c = typeof colorObjOrString === 'string' ? { color: colorObjOrString } : colorObjOrString;\n var key = '' + c.color + (c.title || '');\n return _react2.default.createElement(\n 'div',\n { key: key, style: styles.swatchWrap },\n _react2.default.createElement(_common.Swatch, _extends({}, c, {\n style: styles.swatch,\n onClick: handleClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), 0 0 4px ' + c.color\n }\n }))\n );\n })\n );\n};\n\nSketchPresetColors.propTypes = {\n colors: _propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n color: _propTypes2.default.string,\n title: _propTypes2.default.string\n })])).isRequired\n};\n\nexports.default = SketchPresetColors;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Slider = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _SliderSwatches = require('./SliderSwatches');\n\nvar _SliderSwatches2 = _interopRequireDefault(_SliderSwatches);\n\nvar _SliderPointer = require('./SliderPointer');\n\nvar _SliderPointer2 = _interopRequireDefault(_SliderPointer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Slider = exports.Slider = function Slider(_ref) {\n var hsl = _ref.hsl,\n onChange = _ref.onChange,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n hue: {\n height: '12px',\n position: 'relative'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n return _react2.default.createElement(\n 'div',\n { style: styles.wrap || {}, className: 'slider-picker ' + className },\n _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(_common.Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: pointer,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatches },\n _react2.default.createElement(_SliderSwatches2.default, { hsl: hsl, onClick: onChange })\n )\n );\n};\n\nSlider.propTypes = {\n styles: _propTypes2.default.object\n};\nSlider.defaultProps = {\n pointer: _SliderPointer2.default,\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Slider);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SliderSwatches = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _SliderSwatch = require('./SliderSwatch');\n\nvar _SliderSwatch2 = _interopRequireDefault(_SliderSwatch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SliderSwatches = exports.SliderSwatches = function SliderSwatches(_ref) {\n var onClick = _ref.onClick,\n hsl = _ref.hsl;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatches: {\n marginTop: '20px'\n },\n swatch: {\n boxSizing: 'border-box',\n width: '20%',\n paddingRight: '1px',\n float: 'left'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n // Acceptible difference in floating point equality\n var epsilon = 0.1;\n\n return _react2.default.createElement(\n 'div',\n { style: styles.swatches },\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.80',\n active: Math.abs(hsl.l - 0.80) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n first: true\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.65',\n active: Math.abs(hsl.l - 0.65) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.50',\n active: Math.abs(hsl.l - 0.50) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.35',\n active: Math.abs(hsl.l - 0.35) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.20',\n active: Math.abs(hsl.l - 0.20) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n last: true\n })\n ),\n _react2.default.createElement('div', { style: styles.clear })\n );\n};\n\nexports.default = SliderSwatches;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SliderSwatch = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SliderSwatch = exports.SliderSwatch = function SliderSwatch(_ref) {\n var hsl = _ref.hsl,\n offset = _ref.offset,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n active = _ref.active,\n first = _ref.first,\n last = _ref.last;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatch: {\n height: '12px',\n background: 'hsl(' + hsl.h + ', 50%, ' + offset * 100 + '%)',\n cursor: 'pointer'\n }\n },\n 'first': {\n swatch: {\n borderRadius: '2px 0 0 2px'\n }\n },\n 'last': {\n swatch: {\n borderRadius: '0 2px 2px 0'\n }\n },\n 'active': {\n swatch: {\n transform: 'scaleY(1.8)',\n borderRadius: '3.6px/2px'\n }\n }\n }, { active: active, first: first, last: last });\n\n var handleClick = function handleClick(e) {\n return onClick({\n h: hsl.h,\n s: 0.5,\n l: offset,\n source: 'hsl'\n }, e);\n };\n\n return _react2.default.createElement('div', { style: styles.swatch, onClick: handleClick });\n};\n\nexports.default = SliderSwatch;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SliderPointer = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SliderPointer = exports.SliderPointer = function SliderPointer() {\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '14px',\n height: '14px',\n borderRadius: '6px',\n transform: 'translate(-7px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = SliderPointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Swatches = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _materialColors = require('material-colors');\n\nvar material = _interopRequireWildcard(_materialColors);\n\nvar _common = require('../common');\n\nvar _SwatchesGroup = require('./SwatchesGroup');\n\nvar _SwatchesGroup2 = _interopRequireDefault(_SwatchesGroup);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Swatches = exports.Swatches = function Swatches(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n picker: {\n width: width,\n height: height\n },\n overflow: {\n height: height,\n overflowY: 'scroll'\n },\n body: {\n padding: '16px 0 6px 16px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n _color2.default.isValidHex(data) && onChange({\n hex: data,\n source: 'hex'\n }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'swatches-picker ' + className },\n _react2.default.createElement(\n _common.Raised,\n null,\n _react2.default.createElement(\n 'div',\n { style: styles.overflow },\n _react2.default.createElement(\n 'div',\n { style: styles.body },\n (0, _map2.default)(colors, function (group) {\n return _react2.default.createElement(_SwatchesGroup2.default, {\n key: group.toString(),\n group: group,\n active: hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n _react2.default.createElement('div', { style: styles.clear })\n )\n )\n )\n );\n};\n\nSwatches.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n height: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n colors: _propTypes2.default.arrayOf(_propTypes2.default.arrayOf(_propTypes2.default.string)),\n styles: _propTypes2.default.object\n\n /* eslint-disable max-len */\n};Swatches.defaultProps = {\n width: 320,\n height: 240,\n colors: [[material.red['900'], material.red['700'], material.red['500'], material.red['300'], material.red['100']], [material.pink['900'], material.pink['700'], material.pink['500'], material.pink['300'], material.pink['100']], [material.purple['900'], material.purple['700'], material.purple['500'], material.purple['300'], material.purple['100']], [material.deepPurple['900'], material.deepPurple['700'], material.deepPurple['500'], material.deepPurple['300'], material.deepPurple['100']], [material.indigo['900'], material.indigo['700'], material.indigo['500'], material.indigo['300'], material.indigo['100']], [material.blue['900'], material.blue['700'], material.blue['500'], material.blue['300'], material.blue['100']], [material.lightBlue['900'], material.lightBlue['700'], material.lightBlue['500'], material.lightBlue['300'], material.lightBlue['100']], [material.cyan['900'], material.cyan['700'], material.cyan['500'], material.cyan['300'], material.cyan['100']], [material.teal['900'], material.teal['700'], material.teal['500'], material.teal['300'], material.teal['100']], ['#194D33', material.green['700'], material.green['500'], material.green['300'], material.green['100']], [material.lightGreen['900'], material.lightGreen['700'], material.lightGreen['500'], material.lightGreen['300'], material.lightGreen['100']], [material.lime['900'], material.lime['700'], material.lime['500'], material.lime['300'], material.lime['100']], [material.yellow['900'], material.yellow['700'], material.yellow['500'], material.yellow['300'], material.yellow['100']], [material.amber['900'], material.amber['700'], material.amber['500'], material.amber['300'], material.amber['100']], [material.orange['900'], material.orange['700'], material.orange['500'], material.orange['300'], material.orange['100']], [material.deepOrange['900'], material.deepOrange['700'], material.deepOrange['500'], material.deepOrange['300'], material.deepOrange['100']], [material.brown['900'], material.brown['700'], material.brown['500'], material.brown['300'], material.brown['100']], [material.blueGrey['900'], material.blueGrey['700'], material.blueGrey['500'], material.blueGrey['300'], material.blueGrey['100']], ['#000000', '#525252', '#969696', '#D9D9D9', '#FFFFFF']],\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Swatches);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SwatchesGroup = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _SwatchesColor = require('./SwatchesColor');\n\nvar _SwatchesColor2 = _interopRequireDefault(_SwatchesColor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SwatchesGroup = exports.SwatchesGroup = function SwatchesGroup(_ref) {\n var onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n group = _ref.group,\n active = _ref.active;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n group: {\n paddingBottom: '10px',\n width: '40px',\n float: 'left',\n marginRight: '10px'\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.group },\n (0, _map2.default)(group, function (color, i) {\n return _react2.default.createElement(_SwatchesColor2.default, {\n key: color,\n color: color,\n active: color.toLowerCase() === active,\n first: i === 0,\n last: i === group.length - 1,\n onClick: onClick,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nexports.default = SwatchesGroup;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SwatchesColor = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _common = require('../common');\n\nvar _CheckIcon = require('@icons/material/CheckIcon');\n\nvar _CheckIcon2 = _interopRequireDefault(_CheckIcon);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SwatchesColor = exports.SwatchesColor = function SwatchesColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n first = _ref.first,\n last = _ref.last,\n active = _ref.active;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n color: {\n width: '40px',\n height: '24px',\n cursor: 'pointer',\n background: color,\n marginBottom: '1px'\n },\n check: {\n color: _color2.default.getContrastingColor(color),\n marginLeft: '8px',\n display: 'none'\n }\n },\n 'first': {\n color: {\n overflow: 'hidden',\n borderRadius: '2px 2px 0 0'\n }\n },\n 'last': {\n color: {\n overflow: 'hidden',\n borderRadius: '0 0 2px 2px'\n }\n },\n 'active': {\n check: {\n display: 'block'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n check: {\n color: '#333'\n }\n },\n 'transparent': {\n check: {\n color: '#333'\n }\n }\n }, {\n first: first,\n last: last,\n active: active,\n 'color-#FFFFFF': color === '#FFFFFF',\n 'transparent': color === 'transparent'\n });\n\n return _react2.default.createElement(\n _common.Swatch,\n {\n color: color,\n style: styles.color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n _react2.default.createElement(\n 'div',\n { style: styles.check },\n _react2.default.createElement(_CheckIcon2.default, null)\n )\n );\n};\n\nexports.default = SwatchesColor;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z' })\n );\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Twitter = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Twitter = exports.Twitter = function Twitter(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '0 solid rgba(0,0,0,0.25)',\n boxShadow: '0 1px 4px rgba(0,0,0,0.25)',\n borderRadius: '4px',\n position: 'relative'\n },\n body: {\n padding: '15px 9px 9px 15px'\n },\n label: {\n fontSize: '18px',\n color: '#fff'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent #fff transparent',\n position: 'absolute'\n },\n triangleShadow: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent rgba(0,0,0,.1) transparent',\n position: 'absolute'\n },\n hash: {\n background: '#F0F0F0',\n height: '30px',\n width: '30px',\n borderRadius: '4px 0 0 4px',\n float: 'left',\n color: '#98A1A4',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n input: {\n width: '100px',\n fontSize: '14px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '28px',\n boxShadow: 'inset 0 0 0 1px #F0F0F0',\n boxSizing: 'content-box',\n borderRadius: '0 4px 4px 0',\n float: 'left',\n paddingLeft: '8px'\n },\n swatch: {\n width: '30px',\n height: '30px',\n float: 'left',\n borderRadius: '4px',\n margin: '0 6px 6px 0'\n },\n clear: {\n clear: 'both'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-10px',\n left: '12px'\n },\n triangleShadow: {\n top: '-11px',\n left: '12px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-10px',\n right: '12px'\n },\n triangleShadow: {\n top: '-11px',\n right: '12px'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right'\n });\n\n var handleChange = function handleChange(hexcode, e) {\n _color2.default.isValidHex(hexcode) && onChange({\n hex: hexcode,\n source: 'hex'\n }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.card, className: 'twitter-picker ' + className },\n _react2.default.createElement('div', { style: styles.triangleShadow }),\n _react2.default.createElement('div', { style: styles.triangle }),\n _react2.default.createElement(\n 'div',\n { style: styles.body },\n (0, _map2.default)(colors, function (c, i) {\n return _react2.default.createElement(_common.Swatch, {\n key: i,\n color: c,\n hex: c,\n style: styles.swatch,\n onClick: handleChange,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n _react2.default.createElement(\n 'div',\n { style: styles.hash },\n '#'\n ),\n _react2.default.createElement(_common.EditableInput, {\n label: null,\n style: { input: styles.input },\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n _react2.default.createElement('div', { style: styles.clear })\n )\n );\n};\n\nTwitter.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n triangle: _propTypes2.default.oneOf(['hide', 'top-left', 'top-right']),\n colors: _propTypes2.default.arrayOf(_propTypes2.default.string),\n styles: _propTypes2.default.object\n};\n\nTwitter.defaultProps = {\n width: 276,\n colors: ['#FF6900', '#FCB900', '#7BDCB5', '#00D084', '#8ED1FC', '#0693E3', '#ABB8C3', '#EB144C', '#F78DA7', '#9900EF'],\n triangle: 'top-left',\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Twitter);"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://dash_daq/./src/styled/ColorPicker.styled.js","webpack://dash_daq/./src/fragments/ColorPicker.react.js","webpack://dash_daq/./node_modules/reactcss/lib/index.js","webpack://dash_daq/./node_modules/react-color/lib/components/common/index.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/merge.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isArray.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_root.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isObject.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isArray.js","webpack://dash_daq/./node_modules/react-color/lib/helpers/color.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_root.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isObjectLike.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseGetTag.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getNative.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_getNative.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isObjectLike.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/map.js","webpack://dash_daq/(webpack)/buildin/module.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isObject.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseGetTag.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isArrayLike.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_Symbol.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/keys.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/eq.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isArrayLike.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_ListCache.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_assocIndexOf.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_nativeCreate.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getMapData.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getTag.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_toKey.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_copyObject.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_ListCache.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_assocIndexOf.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_Symbol.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_nativeCreate.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_getMapData.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/identity.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isSymbol.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_toKey.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/forOwn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isBuffer.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isLength.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseUnary.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_nodeUtil.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_isPrototype.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getPrototype.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_Stack.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/eq.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_Map.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_MapCache.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getSymbols.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_isKey.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isSymbol.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/keysIn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_cloneArrayBuffer.js","webpack://dash_daq/./node_modules/react-color/lib/components/common/Checkboard.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_Stack.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_Map.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isFunction.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_MapCache.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseAssignValue.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_isPrototype.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isArguments.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isLength.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isBuffer.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isTypedArray.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_isIndex.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/keys.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_isKey.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_freeGlobal.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseForOwn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_arrayLikeKeys.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isArguments.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_isIndex.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isTypedArray.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_overArg.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isFunction.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/identity.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_arrayMap.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_toSource.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseIsEqual.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_equalArrays.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_Uint8Array.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getAllKeys.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseGetAllKeys.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_arrayPush.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/stubArray.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_isStrictComparable.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_matchesStrictComparable.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseGet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_castPath.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_assignValue.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseAssignValue.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getSymbolsIn.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_freeGlobal.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_toSource.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_assignMergeValue.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_defineProperty.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseFor.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_Uint8Array.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_getPrototype.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_overArg.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_safeGet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/keysIn.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_arrayLikeKeys.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/debounce.js","webpack://dash_daq/./node_modules/react-color/lib/components/common/ColorWrap.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseEach.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_arrayMap.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseIsEqual.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_equalArrays.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_isStrictComparable.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_matchesStrictComparable.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseGet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_castPath.js","webpack://dash_daq/./node_modules/material-colors/dist/colors.es2015.js","webpack://dash_daq/./node_modules/react-color/lib/index.js","webpack://dash_daq/./node_modules/react-color/lib/components/alpha/Alpha.js","webpack://dash_daq/./node_modules/reactcss/lib/flattenNames.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isString.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getRawTag.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_objectToString.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseFor.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_createBaseFor.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseTimes.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseIsArguments.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/stubFalse.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseIsTypedArray.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseKeys.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_nativeKeys.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_castFunction.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isPlainObject.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/map.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseIteratee.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseMatches.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseIsMatch.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_listCacheClear.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_listCacheDelete.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_listCacheGet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_listCacheHas.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_listCacheSet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_stackClear.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_stackDelete.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_stackGet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_stackHas.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_stackSet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseIsNative.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_isMasked.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_coreJsData.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getValue.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_mapCacheClear.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_Hash.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_hashClear.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_hashDelete.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_hashGet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_hashHas.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_hashSet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_mapCacheDelete.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_isKeyable.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_mapCacheGet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_mapCacheHas.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_mapCacheSet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseIsEqualDeep.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_SetCache.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_setCacheAdd.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_setCacheHas.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_arraySome.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_cacheHas.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_equalByTag.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_mapToArray.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_setToArray.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_equalObjects.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_arrayFilter.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_DataView.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_Promise.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_Set.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_WeakMap.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getMatchData.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseMatchesProperty.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/get.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_stringToPath.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_memoizeCapped.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/memoize.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/toString.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseToString.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/hasIn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseHasIn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_hasPath.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/property.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseProperty.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_basePropertyDeep.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseMap.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseEach.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_createBaseEach.js","webpack://dash_daq/./node_modules/reactcss/lib/mergeClasses.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/cloneDeep.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseClone.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_arrayEach.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_defineProperty.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseAssign.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseAssignIn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseKeysIn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_nativeKeysIn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_cloneBuffer.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_copyArray.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_copySymbols.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_copySymbolsIn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_getAllKeysIn.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_initCloneArray.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_initCloneByTag.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_cloneDataView.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_cloneRegExp.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_cloneSymbol.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_cloneTypedArray.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_initCloneObject.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseCreate.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isMap.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseIsMap.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/isSet.js","webpack://dash_daq/./node_modules/reactcss/node_modules/lodash/_baseIsSet.js","webpack://dash_daq/./node_modules/reactcss/lib/autoprefix.js","webpack://dash_daq/./node_modules/reactcss/lib/components/hover.js","webpack://dash_daq/./node_modules/reactcss/lib/components/active.js","webpack://dash_daq/./node_modules/reactcss/lib/loop.js","webpack://dash_daq/./node_modules/react-color/lib/components/common/Alpha.js","webpack://dash_daq/./node_modules/react-color/lib/helpers/alpha.js","webpack://dash_daq/./node_modules/react-color/lib/helpers/checkboard.js","webpack://dash_daq/./node_modules/react-color/lib/components/common/EditableInput.js","webpack://dash_daq/./node_modules/react-color/lib/components/common/Hue.js","webpack://dash_daq/./node_modules/react-color/lib/helpers/hue.js","webpack://dash_daq/./node_modules/react-color/lib/components/common/Raised.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseMerge.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_listCacheClear.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_listCacheDelete.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_listCacheGet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_listCacheHas.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_listCacheSet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_stackClear.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_stackDelete.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_stackGet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_stackHas.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_stackSet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseIsNative.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_getRawTag.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_objectToString.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_isMasked.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_coreJsData.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_getValue.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_mapCacheClear.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_Hash.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_hashClear.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_hashDelete.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_hashGet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_hashHas.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_hashSet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_mapCacheDelete.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_isKeyable.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_mapCacheGet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_mapCacheHas.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_mapCacheSet.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_createBaseFor.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseMergeDeep.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_cloneBuffer.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_cloneTypedArray.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_cloneArrayBuffer.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_copyArray.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_initCloneObject.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseCreate.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseIsArguments.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isArrayLikeObject.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/stubFalse.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/isPlainObject.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseIsTypedArray.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseUnary.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_nodeUtil.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/toPlainObject.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_copyObject.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_assignValue.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseTimes.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseKeysIn.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_nativeKeysIn.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_createAssigner.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseRest.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_overRest.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_apply.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_setToString.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseSetToString.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/constant.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_shortOut.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_isIterateeCall.js","webpack://dash_daq/./node_modules/react-color/lib/components/common/Saturation.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/throttle.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/now.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/toNumber.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseTrim.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_trimmedEndIndex.js","webpack://dash_daq/./node_modules/react-color/lib/helpers/saturation.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/each.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/forEach.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_arrayEach.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseForOwn.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseKeys.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_nativeKeys.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_createBaseEach.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_castFunction.js","webpack://dash_daq/./node_modules/react-color/lib/components/common/Swatch.js","webpack://dash_daq/./node_modules/react-color/lib/helpers/interaction.js","webpack://dash_daq/./node_modules/react-color/lib/components/alpha/AlphaPointer.js","webpack://dash_daq/./node_modules/react-color/lib/components/block/Block.js","webpack://dash_daq/./node_modules/react-color/lib/components/block/BlockSwatches.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseIteratee.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseMatches.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseIsMatch.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseIsEqualDeep.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_SetCache.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_setCacheAdd.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_setCacheHas.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_arraySome.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_cacheHas.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_equalByTag.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_mapToArray.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_setToArray.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_equalObjects.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_getAllKeys.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseGetAllKeys.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_arrayPush.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_getSymbols.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_arrayFilter.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/stubArray.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_getTag.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_DataView.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_Promise.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_Set.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_WeakMap.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_getMatchData.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseMatchesProperty.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/get.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_stringToPath.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_memoizeCapped.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/memoize.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/toString.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseToString.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/hasIn.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseHasIn.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_hasPath.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/property.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseProperty.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_basePropertyDeep.js","webpack://dash_daq/./node_modules/react-color/node_modules/lodash/_baseMap.js","webpack://dash_daq/./node_modules/react-color/lib/components/circle/Circle.js","webpack://dash_daq/./node_modules/react-color/lib/components/circle/CircleSwatch.js","webpack://dash_daq/./node_modules/react-color/lib/components/chrome/Chrome.js","webpack://dash_daq/./node_modules/react-color/lib/components/chrome/ChromeFields.js","webpack://dash_daq/./node_modules/@icons/material/UnfoldMoreHorizontalIcon.js","webpack://dash_daq/./node_modules/react-color/lib/components/chrome/ChromePointer.js","webpack://dash_daq/./node_modules/react-color/lib/components/chrome/ChromePointerCircle.js","webpack://dash_daq/./node_modules/react-color/lib/components/compact/Compact.js","webpack://dash_daq/./node_modules/react-color/lib/components/compact/CompactColor.js","webpack://dash_daq/./node_modules/react-color/lib/components/compact/CompactFields.js","webpack://dash_daq/./node_modules/react-color/lib/components/github/Github.js","webpack://dash_daq/./node_modules/react-color/lib/components/github/GithubSwatch.js","webpack://dash_daq/./node_modules/react-color/lib/components/hue/Hue.js","webpack://dash_daq/./node_modules/react-color/lib/components/hue/HuePointer.js","webpack://dash_daq/./node_modules/react-color/lib/components/material/Material.js","webpack://dash_daq/./node_modules/react-color/lib/components/photoshop/Photoshop.js","webpack://dash_daq/./node_modules/react-color/lib/components/photoshop/PhotoshopFields.js","webpack://dash_daq/./node_modules/react-color/lib/components/photoshop/PhotoshopPointerCircle.js","webpack://dash_daq/./node_modules/react-color/lib/components/photoshop/PhotoshopPointer.js","webpack://dash_daq/./node_modules/react-color/lib/components/photoshop/PhotoshopButton.js","webpack://dash_daq/./node_modules/react-color/lib/components/photoshop/PhotoshopPreviews.js","webpack://dash_daq/./node_modules/react-color/lib/components/sketch/Sketch.js","webpack://dash_daq/./node_modules/react-color/lib/components/sketch/SketchFields.js","webpack://dash_daq/./node_modules/react-color/lib/components/sketch/SketchPresetColors.js","webpack://dash_daq/./node_modules/react-color/lib/components/slider/Slider.js","webpack://dash_daq/./node_modules/react-color/lib/components/slider/SliderSwatches.js","webpack://dash_daq/./node_modules/react-color/lib/components/slider/SliderSwatch.js","webpack://dash_daq/./node_modules/react-color/lib/components/slider/SliderPointer.js","webpack://dash_daq/./node_modules/react-color/lib/components/swatches/Swatches.js","webpack://dash_daq/./node_modules/react-color/lib/components/swatches/SwatchesGroup.js","webpack://dash_daq/./node_modules/react-color/lib/components/swatches/SwatchesColor.js","webpack://dash_daq/./node_modules/@icons/material/CheckIcon.js","webpack://dash_daq/./node_modules/react-color/lib/components/twitter/Twitter.js"],"names":["Container","styled","div","disabled","theme","css","dark","size","color","primary","darkContainer","lightContainer","lightKnobs","detail","darkKnobs","glow","darkAlpha","darkInput","defaultProps","light","DEFAULT_COLOR","colors","PRIMARY","parseValue","value","rgb","rgba","r","g","b","a","hex","Color","string","componentToHex","c","toString","length","ColorPicker","props","newValue","Math","round","substr","toUpperCase","setProps","state","calcHandleGlow","bind","setValue","newProps","this","setState","fade","id","className","style","elementName","getClassName","filteredProps","getFilteredProps","onChangeComplete","Component","propTypes","withTheme","Object","defineProperty","exports","ReactCSS","loop","handleActive","handleHover","hover","undefined","_flattenNames2","_interopRequireDefault","_mergeClasses2","_autoprefix2","_hover3","_active2","_loop3","obj","__esModule","default","classes","_len","arguments","activations","Array","_key","activeNames","merged","_Alpha","enumerable","get","_Checkboard","_EditableInput","_Hue","_Raised","_Saturation","_ColorWrap","_Swatch","baseMerge","merge","createAssigner","object","source","srcIndex","module","isArray","freeGlobal","freeSelf","self","root","Function","type","red","getContrastingColor","isValidHex","toState","simpleCheckForValidColor","_each2","_tinycolor2","data","checked","passed","letter","isNaN","test","oldHue","hsl","toHsl","hsv","toHsv","toRgb","toHex","s","h","lh","String","charAt","isValid","col","l","v","Symbol","getRawTag","objectToString","symToStringTag","toStringTag","baseIsNative","getValue","key","arrayMap","baseIteratee","baseMap","collection","iteratee","webpackPolyfill","deprecate","paths","children","i","isFunction","isLength","arrayLikeKeys","baseKeys","isArrayLike","other","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","entries","index","clear","entry","set","prototype","has","eq","array","nativeCreate","getNative","isKeyable","map","__data__","DataView","Map","Promise","Set","WeakMap","baseGetTag","toSource","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ArrayBuffer","resolve","result","Ctor","constructor","ctorString","isSymbol","assignValue","baseAssignValue","customizer","isNew","isObjectLike","baseForOwn","castFunction","stubFalse","freeExports","nodeType","freeModule","Buffer","isBuffer","func","freeProcess","process","nodeUtil","types","require","binding","e","objectProto","getPrototype","overArg","getPrototypeOf","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","arrayFilter","stubArray","propertyIsEnumerable","nativeGetSymbols","getOwnPropertySymbols","getSymbols","symbol","call","reIsDeepProp","reIsPlainProp","baseKeysIn","Uint8Array","arrayBuffer","byteLength","Checkboard","_react2","_reactcss2","checkboard","newObj","hasOwnProperty","_interopRequireWildcard","_ref","white","grey","renderers","borderRadius","boxShadow","styles","grid","absolute","background","canvas","createElement","isObject","tag","baseIsArguments","isArguments","baseIsTypedArray","baseUnary","nodeIsTypedArray","isTypedArray","reIsUint","global","baseFor","keys","baseTimes","isIndex","inherited","isArr","isArg","isBuff","isType","skipIndexes","push","transform","arg","funcToString","baseIsEqualDeep","baseIsEqual","bitmask","stack","SetCache","arraySome","cacheHas","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","baseGetAllKeys","arrayPush","keysFunc","symbolsFunc","values","offset","srcValue","castPath","toKey","path","isKey","stringToPath","objValue","getSymbolsIn","createBaseFor","now","toNumber","nativeMax","max","nativeMin","min","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","clearTimeout","cancel","flush","ColorWrap","_extends","assign","target","_createClass","defineProperties","descriptor","configurable","writable","Constructor","protoProps","staticProps","_react","_debounce2","_color2","Picker","instance","_classCallCheck","_this","ReferenceError","_possibleConstructorReturn","__proto__","handleChange","event","debounce","onChange","handleSwatchHover","onSwatchHover","fn","subClass","superClass","create","setPrototypeOf","_inherits","optionalEvents","nextProps","PureComponent","baseEach","createBaseEach","pink","purple","deepPurple","indigo","blue","lightBlue","cyan","teal","green","lightGreen","lime","yellow","amber","orange","deepOrange","brown","blueGrey","darkText","lightText","darkIcons","lightIcons","black","CustomPicker","TwitterPicker","SwatchesPicker","SliderPicker","SketchPicker","PhotoshopPicker","MaterialPicker","HuePicker","GithubPicker","CompactPicker","ChromePicker","CirclePicker","BlockPicker","AlphaPicker","_Block","_Circle","_Chrome","_Compact","_Github","_Material","_Photoshop","_Sketch","_Slider","_Swatches","_Twitter","_Chrome2","_common","_AlphaPointer2","width","height","direction","pointer","_ref$className","picker","position","alpha","radius","Alpha","flattenNames","_isString3","_forOwn3","_isPlainObject3","_map3","things","names","thing","name","nativeObjectToString","isOwn","unmasked","fromRight","iterable","n","typedArrayTags","isPrototype","nativeKeys","identity","funcProto","objectCtorString","proto","baseMatches","baseMatchesProperty","property","baseIsMatch","getMatchData","matchesStrictComparable","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","assocIndexOf","splice","pop","pairs","LARGE_ARRAY_SIZE","isMasked","reIsHostCtor","reIsNative","RegExp","replace","uid","coreJsData","maskSrcKey","exec","IE_PROTO","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","getMapData","equalArrays","equalByTag","equalObjects","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","setCacheAdd","setCacheHas","add","predicate","cache","mapToArray","setToArray","symbolProto","symbolValueOf","valueOf","byteOffset","buffer","message","convert","stacked","forEach","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","resIndex","isStrictComparable","hasIn","baseGet","defaultValue","memoizeCapped","rePropName","reEscapeChar","charCodeAt","match","number","quote","subString","memoize","resolver","memoized","Cache","baseToString","symbolToString","baseHasIn","hasPath","hasFunc","baseProperty","basePropertyDeep","eachFunc","mergeClasses","_cloneDeep3","toMerge","baseClone","CLONE_DEEP_FLAG","arrayEach","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeysIn","initCloneArray","initCloneByTag","initCloneObject","isMap","isSet","keysIn","cloneableTags","isDeep","isFlat","isFull","isFunc","subValue","copyObject","nativeKeysIn","isProto","allocUnsafe","slice","copy","input","cloneArrayBuffer","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","dataView","reFlags","regexp","lastIndex","typedArray","baseCreate","objectCreate","baseIsMap","nodeIsMap","baseIsSet","nodeIsSet","autoprefix","_forOwn2","transforms","msBorderRadius","MozBorderRadius","OBorderRadius","WebkitBorderRadius","msBoxShadow","MozBoxShadow","OBoxShadow","WebkitBoxShadow","userSelect","WebkitTouchCallout","KhtmlUserSelect","MozUserSelect","msUserSelect","WebkitUserSelect","flex","WebkitBoxFlex","MozBoxFlex","WebkitFlex","msFlex","flexBasis","WebkitFlexBasis","justifyContent","WebkitJustifyContent","transition","msTransition","MozTransition","OTransition","WebkitTransition","msTransform","MozTransform","OTransform","WebkitTransform","split","top","right","bottom","left","extend","otherElementStyles","otherStyle","elements","prefixed","element","expanded","Span","_React$Component","Hover","_temp","concat","handleMouseOver","handleMouseOut","render","onMouseOver","onMouseOut","active","Active","handleMouseDown","handleMouseUp","onMouseDown","onMouseUp","setProp","abs","_Checkboard2","_ref2","change","calculateChange","container","window","addEventListener","unbindEventListeners","removeEventListener","_this2","overflow","gradient","shadow","margin","slider","marginTop","vertical","overwrite","ref","onTouchMove","onTouchStart","initialA","containerWidth","clientWidth","containerHeight","clientHeight","x","pageX","touches","y","pageY","getBoundingClientRect","pageXOffset","pageYOffset","_a","checkboardCache","c1","c2","serverCanvas","document","ctx","getContext","fillStyle","fillRect","translate","toDataURL","EditableInput","VALID_KEY_CODES","handleBlur","blurValue","setUpdatedValue","handleKeyDown","keyCode","Number","getNumberValue","indexOf","getArrowOffset","updatedValue","handleDrag","dragLabel","movementX","dragMax","getValueObjectWithLabel","preventDefault","prevProps","prevState","activeElement","_defineProperty","label","arrowOffset","onChangeValue","isPercentage","getIsPercentage","wrap","cursor","onKeyDown","onBlur","placeholder","spellCheck","hideLabel","Hue","hue","_props$direction","padding","_h","Raised","_propTypes2","_merge2","zDepth","_ref$styles","passedStyles","display","content","bg","oneOf","assignMergeValue","baseMergeDeep","safeGet","isArrayLikeObject","isPlainObject","toPlainObject","mergeFunc","isCommon","isTyped","baseRest","isIterateeCall","assigner","sources","guard","overRest","setToString","start","otherArgs","baseSetToString","shortOut","constant","nativeNow","Date","count","lastCalled","stamp","remaining","Saturation","_throttle2","saturation","throttle","circle","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","isBinary","trimmedEndIndex","reTrimStart","reWhitespace","_container$getBoundin","bright","Swatch","_interaction","_ref$onClick","onClick","onHover","_ref$title","title","focus","_ref$focusStyle","focusStyle","transparent","swatch","outline","tabIndex","handleFocus","Focus","onFocus","AlphaPointer","backgroundColor","Block","_BlockSwatches2","triangle","hexCode","card","head","alignItems","body","fontSize","borderStyle","borderWidth","borderColor","marginLeft","border","boxSizing","oneOfType","arrayOf","BlockSwatches","_map2","swatches","marginRight","float","marginBottom","Circle","material","_CircleSwatch2","circleSize","circleSpacing","flexWrap","toLowerCase","CircleSwatch","_reactcss","Chrome","_ChromeFields2","_ChromePointer2","_ChromePointerCircle2","disableAlpha","defaultView","fontFamily","paddingBottom","controls","zIndex","toggles","view","bool","ChromeFields","_UnfoldMoreHorizontalIcon2","toggleViews","includes","showHighlight","currentTarget","hideHighlight","paddingTop","fields","field","paddingLeft","toggle","textAlign","icon","iconHighlight","textTransform","lineHeight","svg","fill","onMouseEnter","_ref$fill","_ref$width","_ref$height","_ref$style","_objectWithoutProperties","viewBox","d","ChromePointer","ChromePointerCircle","Compact","_CompactColor2","_CompactFields2","compact","CompactColor","dot","opacity","CompactFields","paddingRight","HEXwrap","HEXinput","HEXlabel","RGBwrap","RGBinput","RGBlabel","Github","_GithubSwatch2","borderBottomColor","triangleShadow","GithubSwatch","hoverSwatch","_HuePointer2","SliderPointer","Material","borderBottom","Hex","third","Photoshop","_PhotoshopFields2","_PhotoshopPointerCircle2","_PhotoshopPointer2","_PhotoshopButton2","_PhotoshopPreviews2","currentColor","_props","_props$styles","_props$className","backgroundImage","previews","actions","header","onAccept","onCancel","divider","fieldSymbols","PhotoshopPointerCircle","triangleBorder","Extend","leftInside","rightInside","PhotoshopButton","button","PhotoshopPreviews","new","current","Sketch","_SketchFields2","_SketchPresetColors2","presetColors","sliders","activeColor","SketchFields","single","double","SketchPresetColors","borderTop","swatchWrap","handleClick","colorObjOrString","shape","isRequired","Slider","_SliderSwatches2","_SliderPointer2","SliderSwatches","_SliderSwatch2","first","last","SliderSwatch","Swatches","_SwatchesGroup2","overflowY","group","SwatchesGroup","_SwatchesColor2","SwatchesColor","_CheckIcon2","check","Twitter","hash","hexcode"],"mappings":"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","file":"async-colorpicker.js","sourcesContent":["import styled, { css } from 'styled-components';\n\nimport { light } from './constants';\n\nexport const Container = styled.div`\n ${({ disabled, theme }) =>\n disabled &&\n css`\n opacity: ${theme.dark ? 1 : 0.65};\n cursor: not-allowed !important;\n & .chrome-picker {\n pointer-events: none !important;\n }\n `} & .chrome-picker {\n font-family: unset !important;\n box-shadow: none !important;\n ${({ size }) =>\n css`\n width: ${size}px !important;\n `};\n }\n\n & .chrome-picker svg {\n background: unset !important;\n }\n\n & .chrome-picker svg:hover path {\n fill: ${({ theme, color }) => color || theme.primary};\n }\n\n ${({ theme }) => (theme.dark ? darkContainer : lightContainer)};\n`;\n\nconst lightKnobs = css`\n & .chrome-picker .hue-horizontal > div > div,\n .chrome-picker\n > div:nth-child(2)\n > div:nth-child(1)\n > div:nth-child(2)\n > div:nth-child(2)\n > div\n > div:nth-child(3)\n > div\n > div {\n box-shadow: none !important;\n background-color: #fff;\n border-radius: 100% !important;\n ${({ theme }) =>\n css`\n border: 1px solid ${theme.detail} !important;\n `};\n }\n`;\n\nconst lightContainer = css`\n border-radius: 3px !important;\n\n ${lightKnobs} ${({ theme }) =>\n css`\n border: 1px solid ${theme.detail};\n `};\n`;\n\nconst darkKnobs = css`\n & .chrome-picker .hue-horizontal > div > div,\n .chrome-picker\n > div:nth-child(2)\n > div:nth-child(1)\n > div:nth-child(2)\n > div:nth-child(2)\n > div\n > div:nth-child(3)\n > div\n > div {\n border-radius: 100% !important;\n border: none !important;\n background: #101010 !important;\n background-image: linear-gradient(\n 135deg,\n rgba(255, 255, 255, 0.3) -50%,\n rgba(0, 0, 0, 0.7) 100%\n ) !important;\n transition: all 0.3s ease-in !important;\n ${({ glow }) =>\n css`\n box-shadow: inset 0 0 1px 0 rgba(52, 52, 52, 0.4), inset 0 0 0 1px rgba(0, 0, 0, 0.2),\n 0 0 12px 4px ${glow} !important;\n `};\n }\n`;\n\nconst darkAlpha = css`\n .chrome-picker .flexbox-fix div:nth-child(2) > div:nth-child(2) > div {\n background: #fff !important;\n }\n`;\n\nconst darkInput = css`\n & .chrome-picker input {\n font-family: unset !important;\n color: #fff !important;\n border-radius: 0px !important;\n background-color: #22272a !important;\n background-image: linear-gradient(\n 145deg,\n rgba(255, 255, 255, 0.05) 0%,\n rgba(0, 0, 0, 0.5) 100%\n ) !important;\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1) !important;\n }\n\n & .chrome-picker input:focus {\n outline: 0 !important;\n border: none !important;\n background-image: linear-gradient(\n 145deg,\n rgba(255, 255, 255, 0.2) 0%,\n rgba(0, 0, 0, 0.4) 100%\n ) !important;\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.6), inset 0 0 4px 0 rgba(0, 0, 0, 0.6),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.6), 1px 1px 0px 0px rgba(255, 255, 255, 0.1) !important;\n }\n`;\n\nconst darkContainer = css`\n box-shadow: 0px 0px 8px 2px rgba(100,100,100,0.075),\n 0px 0px 32px 2px rgba(255,255,255,0.05),\n 1px 1px 0px 0px rgba(25,25,25,0.6),\n -1px -1px 0px 0px rgba(255,255,255,0.2) !important;\n\n & .chrome-picker > div:first-child {\n border-radius: 0 !important;\n }\n\n & .chrome-picker > div:nth-child(2) {\n background: #0a0a0a !important;\n border-top: 1px solid rgba(255,255,255,0.075);\n }\n\n ${darkKnobs}\n ${darkInput}\n ${darkAlpha}\n`;\n\nContainer.defaultProps = {\n theme: light\n};\n\nexport default Container;\n","import React, { Component } from 'react';\nimport { ChromePicker } from 'react-color';\nimport { withTheme } from 'styled-components';\nimport Color from 'color';\n\nimport { colors } from '../styled/constants';\nimport { Container } from '../styled/ColorPicker.styled';\nimport LabelContainer from '../styled/shared/LabelContainer.styled';\n\nimport { defaultProps, propTypes } from '../components/ColorPicker.react';\n\nimport { getClassName, getFilteredProps } from '../helpers/classNameGenerator';\n\nconst DEFAULT_COLOR = colors.PRIMARY;\n\nconst parseValue = value => {\n value = value || {};\n\n if (value.rgb) {\n const rgba = value.rgb;\n return `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`;\n }\n\n if (value.hex)\n return Color(value.hex)\n .rgb()\n .string();\n\n return DEFAULT_COLOR;\n};\n\nconst componentToHex = (c) => {\n var hex = c.toString(16);\n return hex.length == 1 ? '0' + hex : hex;\n}\n\n// converts color from rgb to hexadecimal. \nconst rgbToHex = ({ r, g, b, a }) => {\n return '#' + componentToHex(r) + componentToHex(g) + componentToHex(b) + (Math.round(a * 255) + 0x10000).toString(16).substr(-2).toUpperCase();\n}\n\n\n/**\n * A color picker.\n */\nclass ColorPicker extends Component {\n constructor(props) {\n super(props);\n\n let newValue = props.value;\n if (props.value && !props.value.hex && props.value.rgb) {\n const value = rgbToHex(props.value.rgb);\n newValue = { hex: value, rgb: props.value.rgb };\n if (this.props.setProps) this.props.setProps({ value: newValue });\n }\n this.state = {\n value: newValue\n };\n this.calcHandleGlow = this.calcHandleGlow.bind(this);\n this.setValue = this.setValue.bind(this);\n }\n\n UNSAFE_componentWillReceiveProps(newProps) {\n if (newProps.value !== this.state.value) this.setState({ value: newProps.value });\n }\n\n calcHandleGlow() {\n return Color(parseValue(this.state.value))\n .fade(0.5)\n .string();\n }\n\n setValue(value) {\n if (value != null) {\n const { hex, rgb } = value;\n const newValue = { hex, rgb };\n\n this.setState({ value: newValue });\n if (this.props.setProps) this.props.setProps({ value: newValue });\n }\n }\n\n render() {\n const { id, className, style, theme } = this.props;\n\n const elementName = getClassName('colorpicker', theme);\n\n const filteredProps = getFilteredProps(this.props);\n\n return (\n
\n \n \n \n \n \n
\n );\n }\n}\n\nColorPicker.defaultProps = defaultProps;\nColorPicker.propTypes = propTypes;\n\nexport default withTheme(ColorPicker);\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ReactCSS = exports.loop = exports.handleActive = exports.handleHover = exports.hover = undefined;\n\nvar _flattenNames = require('./flattenNames');\n\nvar _flattenNames2 = _interopRequireDefault(_flattenNames);\n\nvar _mergeClasses = require('./mergeClasses');\n\nvar _mergeClasses2 = _interopRequireDefault(_mergeClasses);\n\nvar _autoprefix = require('./autoprefix');\n\nvar _autoprefix2 = _interopRequireDefault(_autoprefix);\n\nvar _hover2 = require('./components/hover');\n\nvar _hover3 = _interopRequireDefault(_hover2);\n\nvar _active = require('./components/active');\n\nvar _active2 = _interopRequireDefault(_active);\n\nvar _loop2 = require('./loop');\n\nvar _loop3 = _interopRequireDefault(_loop2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.hover = _hover3.default;\nexports.handleHover = _hover3.default;\nexports.handleActive = _active2.default;\nexports.loop = _loop3.default;\nvar ReactCSS = exports.ReactCSS = function ReactCSS(classes) {\n for (var _len = arguments.length, activations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n activations[_key - 1] = arguments[_key];\n }\n\n var activeNames = (0, _flattenNames2.default)(activations);\n var merged = (0, _mergeClasses2.default)(classes, activeNames);\n return (0, _autoprefix2.default)(merged);\n};\n\nexports.default = ReactCSS;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Alpha = require('./Alpha');\n\nObject.defineProperty(exports, 'Alpha', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Alpha).default;\n }\n});\n\nvar _Checkboard = require('./Checkboard');\n\nObject.defineProperty(exports, 'Checkboard', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Checkboard).default;\n }\n});\n\nvar _EditableInput = require('./EditableInput');\n\nObject.defineProperty(exports, 'EditableInput', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_EditableInput).default;\n }\n});\n\nvar _Hue = require('./Hue');\n\nObject.defineProperty(exports, 'Hue', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Hue).default;\n }\n});\n\nvar _Raised = require('./Raised');\n\nObject.defineProperty(exports, 'Raised', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Raised).default;\n }\n});\n\nvar _Saturation = require('./Saturation');\n\nObject.defineProperty(exports, 'Saturation', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Saturation).default;\n }\n});\n\nvar _ColorWrap = require('./ColorWrap');\n\nObject.defineProperty(exports, 'ColorWrap', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ColorWrap).default;\n }\n});\n\nvar _Swatch = require('./Swatch');\n\nObject.defineProperty(exports, 'Swatch', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Swatch).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.red = exports.getContrastingColor = exports.isValidHex = exports.toState = exports.simpleCheckForValidColor = undefined;\n\nvar _each = require('lodash/each');\n\nvar _each2 = _interopRequireDefault(_each);\n\nvar _tinycolor = require('tinycolor2');\n\nvar _tinycolor2 = _interopRequireDefault(_tinycolor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar simpleCheckForValidColor = exports.simpleCheckForValidColor = function simpleCheckForValidColor(data) {\n var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n var checked = 0;\n var passed = 0;\n (0, _each2.default)(keysToCheck, function (letter) {\n if (data[letter]) {\n checked += 1;\n if (!isNaN(data[letter])) {\n passed += 1;\n }\n if (letter === 's' || letter === 'l') {\n var percentPatt = /^\\d+%$/;\n if (percentPatt.test(data[letter])) {\n passed += 1;\n }\n }\n }\n });\n return checked === passed ? data : false;\n};\n\nvar toState = exports.toState = function toState(data, oldHue) {\n var color = data.hex ? (0, _tinycolor2.default)(data.hex) : (0, _tinycolor2.default)(data);\n var hsl = color.toHsl();\n var hsv = color.toHsv();\n var rgb = color.toRgb();\n var hex = color.toHex();\n if (hsl.s === 0) {\n hsl.h = oldHue || 0;\n hsv.h = oldHue || 0;\n }\n var transparent = hex === '000000' && rgb.a === 0;\n\n return {\n hsl: hsl,\n hex: transparent ? 'transparent' : '#' + hex,\n rgb: rgb,\n hsv: hsv,\n oldHue: data.h || oldHue || hsl.h,\n source: data.source\n };\n};\n\nvar isValidHex = exports.isValidHex = function isValidHex(hex) {\n // disable hex4 and hex8\n var lh = String(hex).charAt(0) === '#' ? 1 : 0;\n return hex.length !== 4 + lh && hex.length < 7 + lh && (0, _tinycolor2.default)(hex).isValid();\n};\n\nvar getContrastingColor = exports.getContrastingColor = function getContrastingColor(data) {\n if (!data) {\n return '#fff';\n }\n var col = toState(data);\n if (col.hex === 'transparent') {\n return 'rgba(0,0,0,0.4)';\n }\n var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000;\n return yiq >= 128 ? '#000' : '#fff';\n};\n\nvar red = exports.red = {\n hsl: { a: 1, h: 0, l: 0.5, s: 1 },\n hex: '#ff0000',\n rgb: { r: 255, g: 0, b: 0, a: 1 },\n hsv: { h: 0, s: 1, v: 1, a: 1 }\n};\n\nexports.default = exports;","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var baseForOwn = require('./_baseForOwn'),\n castFunction = require('./_castFunction');\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nmodule.exports = forOwn;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Checkboard = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _checkboard = require('../../helpers/checkboard');\n\nvar checkboard = _interopRequireWildcard(_checkboard);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Checkboard = exports.Checkboard = function Checkboard(_ref) {\n var white = _ref.white,\n grey = _ref.grey,\n size = _ref.size,\n renderers = _ref.renderers,\n borderRadius = _ref.borderRadius,\n boxShadow = _ref.boxShadow;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n grid: {\n borderRadius: borderRadius,\n boxShadow: boxShadow,\n absolute: '0px 0px 0px 0px',\n background: 'url(' + checkboard.get(white, grey, size, renderers.canvas) + ') center left'\n }\n }\n });\n\n return _react2.default.createElement('div', { style: styles.grid });\n};\n\nCheckboard.defaultProps = {\n size: 8,\n white: 'transparent',\n grey: 'rgba(0,0,0,.08)',\n renderers: {}\n};\n\nexports.default = Checkboard;","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorWrap = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _debounce = require('lodash/debounce');\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorWrap = exports.ColorWrap = function ColorWrap(Picker) {\n var ColorPicker = function (_ref) {\n _inherits(ColorPicker, _ref);\n\n function ColorPicker(props) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this));\n\n _this.handleChange = function (data, event) {\n var isValidColor = _color2.default.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = _color2.default.toState(data, data.h || _this.state.oldHue);\n _this.setState(colors);\n _this.props.onChangeComplete && _this.debounce(_this.props.onChangeComplete, colors, event);\n _this.props.onChange && _this.props.onChange(colors, event);\n }\n };\n\n _this.handleSwatchHover = function (data, event) {\n var isValidColor = _color2.default.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = _color2.default.toState(data, data.h || _this.state.oldHue);\n _this.props.onSwatchHover && _this.props.onSwatchHover(colors, event);\n }\n };\n\n _this.state = _extends({}, _color2.default.toState(props.color, 0));\n\n _this.debounce = (0, _debounce2.default)(function (fn, data, event) {\n fn(data, event);\n }, 100);\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'render',\n value: function render() {\n var optionalEvents = {};\n if (this.props.onSwatchHover) {\n optionalEvents.onSwatchHover = this.handleSwatchHover;\n }\n\n return _react2.default.createElement(Picker, _extends({}, this.props, this.state, {\n onChange: this.handleChange\n }, optionalEvents));\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n return _extends({}, _color2.default.toState(nextProps.color, state.oldHue));\n }\n }]);\n\n return ColorPicker;\n }(_react.PureComponent || _react.Component);\n\n ColorPicker.propTypes = _extends({}, Picker.propTypes);\n\n ColorPicker.defaultProps = _extends({}, Picker.defaultProps, {\n color: {\n h: 250,\n s: 0.50,\n l: 0.20,\n a: 1\n }\n });\n\n return ColorPicker;\n};\n\nexports.default = ColorWrap;","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","export var red = {\"50\":\"#ffebee\",\"100\":\"#ffcdd2\",\"200\":\"#ef9a9a\",\"300\":\"#e57373\",\"400\":\"#ef5350\",\"500\":\"#f44336\",\"600\":\"#e53935\",\"700\":\"#d32f2f\",\"800\":\"#c62828\",\"900\":\"#b71c1c\",\"a100\":\"#ff8a80\",\"a200\":\"#ff5252\",\"a400\":\"#ff1744\",\"a700\":\"#d50000\"};\nexport var pink = {\"50\":\"#fce4ec\",\"100\":\"#f8bbd0\",\"200\":\"#f48fb1\",\"300\":\"#f06292\",\"400\":\"#ec407a\",\"500\":\"#e91e63\",\"600\":\"#d81b60\",\"700\":\"#c2185b\",\"800\":\"#ad1457\",\"900\":\"#880e4f\",\"a100\":\"#ff80ab\",\"a200\":\"#ff4081\",\"a400\":\"#f50057\",\"a700\":\"#c51162\"};\nexport var purple = {\"50\":\"#f3e5f5\",\"100\":\"#e1bee7\",\"200\":\"#ce93d8\",\"300\":\"#ba68c8\",\"400\":\"#ab47bc\",\"500\":\"#9c27b0\",\"600\":\"#8e24aa\",\"700\":\"#7b1fa2\",\"800\":\"#6a1b9a\",\"900\":\"#4a148c\",\"a100\":\"#ea80fc\",\"a200\":\"#e040fb\",\"a400\":\"#d500f9\",\"a700\":\"#aa00ff\"};\nexport var deepPurple = {\"50\":\"#ede7f6\",\"100\":\"#d1c4e9\",\"200\":\"#b39ddb\",\"300\":\"#9575cd\",\"400\":\"#7e57c2\",\"500\":\"#673ab7\",\"600\":\"#5e35b1\",\"700\":\"#512da8\",\"800\":\"#4527a0\",\"900\":\"#311b92\",\"a100\":\"#b388ff\",\"a200\":\"#7c4dff\",\"a400\":\"#651fff\",\"a700\":\"#6200ea\"};\nexport var indigo = {\"50\":\"#e8eaf6\",\"100\":\"#c5cae9\",\"200\":\"#9fa8da\",\"300\":\"#7986cb\",\"400\":\"#5c6bc0\",\"500\":\"#3f51b5\",\"600\":\"#3949ab\",\"700\":\"#303f9f\",\"800\":\"#283593\",\"900\":\"#1a237e\",\"a100\":\"#8c9eff\",\"a200\":\"#536dfe\",\"a400\":\"#3d5afe\",\"a700\":\"#304ffe\"};\nexport var blue = {\"50\":\"#e3f2fd\",\"100\":\"#bbdefb\",\"200\":\"#90caf9\",\"300\":\"#64b5f6\",\"400\":\"#42a5f5\",\"500\":\"#2196f3\",\"600\":\"#1e88e5\",\"700\":\"#1976d2\",\"800\":\"#1565c0\",\"900\":\"#0d47a1\",\"a100\":\"#82b1ff\",\"a200\":\"#448aff\",\"a400\":\"#2979ff\",\"a700\":\"#2962ff\"};\nexport var lightBlue = {\"50\":\"#e1f5fe\",\"100\":\"#b3e5fc\",\"200\":\"#81d4fa\",\"300\":\"#4fc3f7\",\"400\":\"#29b6f6\",\"500\":\"#03a9f4\",\"600\":\"#039be5\",\"700\":\"#0288d1\",\"800\":\"#0277bd\",\"900\":\"#01579b\",\"a100\":\"#80d8ff\",\"a200\":\"#40c4ff\",\"a400\":\"#00b0ff\",\"a700\":\"#0091ea\"};\nexport var cyan = {\"50\":\"#e0f7fa\",\"100\":\"#b2ebf2\",\"200\":\"#80deea\",\"300\":\"#4dd0e1\",\"400\":\"#26c6da\",\"500\":\"#00bcd4\",\"600\":\"#00acc1\",\"700\":\"#0097a7\",\"800\":\"#00838f\",\"900\":\"#006064\",\"a100\":\"#84ffff\",\"a200\":\"#18ffff\",\"a400\":\"#00e5ff\",\"a700\":\"#00b8d4\"};\nexport var teal = {\"50\":\"#e0f2f1\",\"100\":\"#b2dfdb\",\"200\":\"#80cbc4\",\"300\":\"#4db6ac\",\"400\":\"#26a69a\",\"500\":\"#009688\",\"600\":\"#00897b\",\"700\":\"#00796b\",\"800\":\"#00695c\",\"900\":\"#004d40\",\"a100\":\"#a7ffeb\",\"a200\":\"#64ffda\",\"a400\":\"#1de9b6\",\"a700\":\"#00bfa5\"};\nexport var green = {\"50\":\"#e8f5e9\",\"100\":\"#c8e6c9\",\"200\":\"#a5d6a7\",\"300\":\"#81c784\",\"400\":\"#66bb6a\",\"500\":\"#4caf50\",\"600\":\"#43a047\",\"700\":\"#388e3c\",\"800\":\"#2e7d32\",\"900\":\"#1b5e20\",\"a100\":\"#b9f6ca\",\"a200\":\"#69f0ae\",\"a400\":\"#00e676\",\"a700\":\"#00c853\"};\nexport var lightGreen = {\"50\":\"#f1f8e9\",\"100\":\"#dcedc8\",\"200\":\"#c5e1a5\",\"300\":\"#aed581\",\"400\":\"#9ccc65\",\"500\":\"#8bc34a\",\"600\":\"#7cb342\",\"700\":\"#689f38\",\"800\":\"#558b2f\",\"900\":\"#33691e\",\"a100\":\"#ccff90\",\"a200\":\"#b2ff59\",\"a400\":\"#76ff03\",\"a700\":\"#64dd17\"};\nexport var lime = {\"50\":\"#f9fbe7\",\"100\":\"#f0f4c3\",\"200\":\"#e6ee9c\",\"300\":\"#dce775\",\"400\":\"#d4e157\",\"500\":\"#cddc39\",\"600\":\"#c0ca33\",\"700\":\"#afb42b\",\"800\":\"#9e9d24\",\"900\":\"#827717\",\"a100\":\"#f4ff81\",\"a200\":\"#eeff41\",\"a400\":\"#c6ff00\",\"a700\":\"#aeea00\"};\nexport var yellow = {\"50\":\"#fffde7\",\"100\":\"#fff9c4\",\"200\":\"#fff59d\",\"300\":\"#fff176\",\"400\":\"#ffee58\",\"500\":\"#ffeb3b\",\"600\":\"#fdd835\",\"700\":\"#fbc02d\",\"800\":\"#f9a825\",\"900\":\"#f57f17\",\"a100\":\"#ffff8d\",\"a200\":\"#ffff00\",\"a400\":\"#ffea00\",\"a700\":\"#ffd600\"};\nexport var amber = {\"50\":\"#fff8e1\",\"100\":\"#ffecb3\",\"200\":\"#ffe082\",\"300\":\"#ffd54f\",\"400\":\"#ffca28\",\"500\":\"#ffc107\",\"600\":\"#ffb300\",\"700\":\"#ffa000\",\"800\":\"#ff8f00\",\"900\":\"#ff6f00\",\"a100\":\"#ffe57f\",\"a200\":\"#ffd740\",\"a400\":\"#ffc400\",\"a700\":\"#ffab00\"};\nexport var orange = {\"50\":\"#fff3e0\",\"100\":\"#ffe0b2\",\"200\":\"#ffcc80\",\"300\":\"#ffb74d\",\"400\":\"#ffa726\",\"500\":\"#ff9800\",\"600\":\"#fb8c00\",\"700\":\"#f57c00\",\"800\":\"#ef6c00\",\"900\":\"#e65100\",\"a100\":\"#ffd180\",\"a200\":\"#ffab40\",\"a400\":\"#ff9100\",\"a700\":\"#ff6d00\"};\nexport var deepOrange = {\"50\":\"#fbe9e7\",\"100\":\"#ffccbc\",\"200\":\"#ffab91\",\"300\":\"#ff8a65\",\"400\":\"#ff7043\",\"500\":\"#ff5722\",\"600\":\"#f4511e\",\"700\":\"#e64a19\",\"800\":\"#d84315\",\"900\":\"#bf360c\",\"a100\":\"#ff9e80\",\"a200\":\"#ff6e40\",\"a400\":\"#ff3d00\",\"a700\":\"#dd2c00\"};\nexport var brown = {\"50\":\"#efebe9\",\"100\":\"#d7ccc8\",\"200\":\"#bcaaa4\",\"300\":\"#a1887f\",\"400\":\"#8d6e63\",\"500\":\"#795548\",\"600\":\"#6d4c41\",\"700\":\"#5d4037\",\"800\":\"#4e342e\",\"900\":\"#3e2723\"};\nexport var grey = {\"50\":\"#fafafa\",\"100\":\"#f5f5f5\",\"200\":\"#eeeeee\",\"300\":\"#e0e0e0\",\"400\":\"#bdbdbd\",\"500\":\"#9e9e9e\",\"600\":\"#757575\",\"700\":\"#616161\",\"800\":\"#424242\",\"900\":\"#212121\"};\nexport var blueGrey = {\"50\":\"#eceff1\",\"100\":\"#cfd8dc\",\"200\":\"#b0bec5\",\"300\":\"#90a4ae\",\"400\":\"#78909c\",\"500\":\"#607d8b\",\"600\":\"#546e7a\",\"700\":\"#455a64\",\"800\":\"#37474f\",\"900\":\"#263238\"};\nexport var darkText = {\"primary\":\"rgba(0, 0, 0, 0.87)\",\"secondary\":\"rgba(0, 0, 0, 0.54)\",\"disabled\":\"rgba(0, 0, 0, 0.38)\",\"dividers\":\"rgba(0, 0, 0, 0.12)\"};\nexport var lightText = {\"primary\":\"rgba(255, 255, 255, 1)\",\"secondary\":\"rgba(255, 255, 255, 0.7)\",\"disabled\":\"rgba(255, 255, 255, 0.5)\",\"dividers\":\"rgba(255, 255, 255, 0.12)\"};\nexport var darkIcons = {\"active\":\"rgba(0, 0, 0, 0.54)\",\"inactive\":\"rgba(0, 0, 0, 0.38)\"};\nexport var lightIcons = {\"active\":\"rgba(255, 255, 255, 1)\",\"inactive\":\"rgba(255, 255, 255, 0.5)\"};\nexport var white = \"#ffffff\";\nexport var black = \"#000000\";\n\nexport default {\n red: red,\n pink: pink,\n purple: purple,\n deepPurple: deepPurple,\n indigo: indigo,\n blue: blue,\n lightBlue: lightBlue,\n cyan: cyan,\n teal: teal,\n green: green,\n lightGreen: lightGreen,\n lime: lime,\n yellow: yellow,\n amber: amber,\n orange: orange,\n deepOrange: deepOrange,\n brown: brown,\n grey: grey,\n blueGrey: blueGrey,\n darkText: darkText,\n lightText: lightText,\n darkIcons: darkIcons,\n lightIcons: lightIcons,\n white: white,\n black: black\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CustomPicker = exports.TwitterPicker = exports.SwatchesPicker = exports.SliderPicker = exports.SketchPicker = exports.PhotoshopPicker = exports.MaterialPicker = exports.HuePicker = exports.GithubPicker = exports.CompactPicker = exports.ChromePicker = exports.default = exports.CirclePicker = exports.BlockPicker = exports.AlphaPicker = undefined;\n\nvar _Alpha = require('./components/alpha/Alpha');\n\nObject.defineProperty(exports, 'AlphaPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Alpha).default;\n }\n});\n\nvar _Block = require('./components/block/Block');\n\nObject.defineProperty(exports, 'BlockPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Block).default;\n }\n});\n\nvar _Circle = require('./components/circle/Circle');\n\nObject.defineProperty(exports, 'CirclePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Circle).default;\n }\n});\n\nvar _Chrome = require('./components/chrome/Chrome');\n\nObject.defineProperty(exports, 'ChromePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Chrome).default;\n }\n});\n\nvar _Compact = require('./components/compact/Compact');\n\nObject.defineProperty(exports, 'CompactPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Compact).default;\n }\n});\n\nvar _Github = require('./components/github/Github');\n\nObject.defineProperty(exports, 'GithubPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Github).default;\n }\n});\n\nvar _Hue = require('./components/hue/Hue');\n\nObject.defineProperty(exports, 'HuePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Hue).default;\n }\n});\n\nvar _Material = require('./components/material/Material');\n\nObject.defineProperty(exports, 'MaterialPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Material).default;\n }\n});\n\nvar _Photoshop = require('./components/photoshop/Photoshop');\n\nObject.defineProperty(exports, 'PhotoshopPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Photoshop).default;\n }\n});\n\nvar _Sketch = require('./components/sketch/Sketch');\n\nObject.defineProperty(exports, 'SketchPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Sketch).default;\n }\n});\n\nvar _Slider = require('./components/slider/Slider');\n\nObject.defineProperty(exports, 'SliderPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Slider).default;\n }\n});\n\nvar _Swatches = require('./components/swatches/Swatches');\n\nObject.defineProperty(exports, 'SwatchesPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Swatches).default;\n }\n});\n\nvar _Twitter = require('./components/twitter/Twitter');\n\nObject.defineProperty(exports, 'TwitterPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Twitter).default;\n }\n});\n\nvar _ColorWrap = require('./components/common/ColorWrap');\n\nObject.defineProperty(exports, 'CustomPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ColorWrap).default;\n }\n});\n\nvar _Chrome2 = _interopRequireDefault(_Chrome);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Chrome2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlphaPicker = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nvar _AlphaPointer = require('./AlphaPointer');\n\nvar _AlphaPointer2 = _interopRequireDefault(_AlphaPointer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar AlphaPicker = exports.AlphaPicker = function AlphaPicker(_ref) {\n var rgb = _ref.rgb,\n hsl = _ref.hsl,\n width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n direction = _ref.direction,\n style = _ref.style,\n renderers = _ref.renderers,\n pointer = _ref.pointer,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n alpha: {\n radius: '2px',\n style: style\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'alpha-picker ' + className },\n _react2.default.createElement(_common.Alpha, _extends({}, styles.alpha, {\n rgb: rgb,\n hsl: hsl,\n pointer: pointer,\n renderers: renderers,\n onChange: onChange,\n direction: direction\n }))\n );\n};\n\nAlphaPicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: _AlphaPointer2.default\n};\n\nexports.default = (0, _common.ColorWrap)(AlphaPicker);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flattenNames = undefined;\n\nvar _isString2 = require('lodash/isString');\n\nvar _isString3 = _interopRequireDefault(_isString2);\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _isPlainObject2 = require('lodash/isPlainObject');\n\nvar _isPlainObject3 = _interopRequireDefault(_isPlainObject2);\n\nvar _map2 = require('lodash/map');\n\nvar _map3 = _interopRequireDefault(_map2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar flattenNames = exports.flattenNames = function flattenNames() {\n var things = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var names = [];\n\n (0, _map3.default)(things, function (thing) {\n if (Array.isArray(thing)) {\n flattenNames(thing).map(function (name) {\n return names.push(name);\n });\n } else if ((0, _isPlainObject3.default)(thing)) {\n (0, _forOwn3.default)(thing, function (value, key) {\n value === true && names.push(key);\n names.push(key + '-' + value);\n });\n } else if ((0, _isString3.default)(thing)) {\n names.push(thing);\n }\n });\n\n return names;\n};\n\nexports.default = flattenNames;","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mergeClasses = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _cloneDeep2 = require('lodash/cloneDeep');\n\nvar _cloneDeep3 = _interopRequireDefault(_cloneDeep2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar mergeClasses = exports.mergeClasses = function mergeClasses(classes) {\n var activeNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var styles = classes.default && (0, _cloneDeep3.default)(classes.default) || {};\n activeNames.map(function (name) {\n var toMerge = classes[name];\n if (toMerge) {\n (0, _forOwn3.default)(toMerge, function (value, key) {\n if (!styles[key]) {\n styles[key] = {};\n }\n\n styles[key] = _extends({}, styles[key], toMerge[key]);\n });\n }\n\n return name;\n });\n return styles;\n};\n\nexports.default = mergeClasses;","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.autoprefix = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar transforms = {\n borderRadius: function borderRadius(value) {\n return {\n msBorderRadius: value,\n MozBorderRadius: value,\n OBorderRadius: value,\n WebkitBorderRadius: value,\n borderRadius: value\n };\n },\n boxShadow: function boxShadow(value) {\n return {\n msBoxShadow: value,\n MozBoxShadow: value,\n OBoxShadow: value,\n WebkitBoxShadow: value,\n boxShadow: value\n };\n },\n userSelect: function userSelect(value) {\n return {\n WebkitTouchCallout: value,\n KhtmlUserSelect: value,\n MozUserSelect: value,\n msUserSelect: value,\n WebkitUserSelect: value,\n userSelect: value\n };\n },\n\n flex: function flex(value) {\n return {\n WebkitBoxFlex: value,\n MozBoxFlex: value,\n WebkitFlex: value,\n msFlex: value,\n flex: value\n };\n },\n flexBasis: function flexBasis(value) {\n return {\n WebkitFlexBasis: value,\n flexBasis: value\n };\n },\n justifyContent: function justifyContent(value) {\n return {\n WebkitJustifyContent: value,\n justifyContent: value\n };\n },\n\n transition: function transition(value) {\n return {\n msTransition: value,\n MozTransition: value,\n OTransition: value,\n WebkitTransition: value,\n transition: value\n };\n },\n\n transform: function transform(value) {\n return {\n msTransform: value,\n MozTransform: value,\n OTransform: value,\n WebkitTransform: value,\n transform: value\n };\n },\n absolute: function absolute(value) {\n var direction = value && value.split(' ');\n return {\n position: 'absolute',\n top: direction && direction[0],\n right: direction && direction[1],\n bottom: direction && direction[2],\n left: direction && direction[3]\n };\n },\n extend: function extend(name, otherElementStyles) {\n var otherStyle = otherElementStyles[name];\n if (otherStyle) {\n return otherStyle;\n }\n return {\n 'extend': name\n };\n }\n};\n\nvar autoprefix = exports.autoprefix = function autoprefix(elements) {\n var prefixed = {};\n (0, _forOwn3.default)(elements, function (styles, element) {\n var expanded = {};\n (0, _forOwn3.default)(styles, function (value, key) {\n var transform = transforms[key];\n if (transform) {\n expanded = _extends({}, expanded, transform(value));\n } else {\n expanded[key] = value;\n }\n });\n prefixed[element] = expanded;\n });\n return prefixed;\n};\n\nexports.default = autoprefix;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hover = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar hover = exports.hover = function hover(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Hover, _React$Component);\n\n function Hover() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hover);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Hover.__proto__ || Object.getPrototypeOf(Hover)).call.apply(_ref, [this].concat(args))), _this), _this.state = { hover: false }, _this.handleMouseOver = function () {\n return _this.setState({ hover: true });\n }, _this.handleMouseOut = function () {\n return _this.setState({ hover: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseOver: _this.handleMouseOver, onMouseOut: _this.handleMouseOut },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Hover;\n }(_react2.default.Component);\n};\n\nexports.default = hover;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.active = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar active = exports.active = function active(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Active, _React$Component);\n\n function Active() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Active);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Active.__proto__ || Object.getPrototypeOf(Active)).call.apply(_ref, [this].concat(args))), _this), _this.state = { active: false }, _this.handleMouseDown = function () {\n return _this.setState({ active: true });\n }, _this.handleMouseUp = function () {\n return _this.setState({ active: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseDown: _this.handleMouseDown, onMouseUp: _this.handleMouseUp },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Active;\n }(_react2.default.Component);\n};\n\nexports.default = active;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar loopable = function loopable(i, length) {\n var props = {};\n var setProp = function setProp(name) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n props[name] = value;\n };\n\n i === 0 && setProp('first-child');\n i === length - 1 && setProp('last-child');\n (i === 0 || i % 2 === 0) && setProp('even');\n Math.abs(i % 2) === 1 && setProp('odd');\n setProp('nth-child', i);\n\n return props;\n};\n\nexports.default = loopable;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Alpha = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _alpha = require('../../helpers/alpha');\n\nvar alpha = _interopRequireWildcard(_alpha);\n\nvar _Checkboard = require('./Checkboard');\n\nvar _Checkboard2 = _interopRequireDefault(_Checkboard);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Alpha = exports.Alpha = function (_ref) {\n _inherits(Alpha, _ref);\n\n function Alpha() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Alpha);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Alpha.__proto__ || Object.getPrototypeOf(Alpha)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = alpha.calculateChange(e, _this.props.hsl, _this.props.direction, _this.props.a, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleChange);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Alpha, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var rgb = this.props.rgb;\n var styles = (0, _reactcss2.default)({\n 'default': {\n alpha: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n checkboard: {\n absolute: '0px 0px 0px 0px',\n overflow: 'hidden',\n borderRadius: this.props.radius\n },\n gradient: {\n absolute: '0px 0px 0px 0px',\n background: 'linear-gradient(to right, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n container: {\n position: 'relative',\n height: '100%',\n margin: '0 3px'\n },\n pointer: {\n position: 'absolute',\n left: rgb.a * 100 + '%'\n },\n slider: {\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n marginTop: '1px',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n gradient: {\n background: 'linear-gradient(to bottom, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)'\n },\n pointer: {\n left: 0,\n top: rgb.a * 100 + '%'\n }\n },\n 'overwrite': _extends({}, this.props.style)\n }, {\n vertical: this.props.direction === 'vertical',\n overwrite: true\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(\n 'div',\n { style: styles.checkboard },\n _react2.default.createElement(_Checkboard2.default, { renderers: this.props.renderers })\n ),\n _react2.default.createElement('div', { style: styles.gradient }),\n _react2.default.createElement(\n 'div',\n {\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n _react2.default.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Alpha;\n}(_react.PureComponent || _react.Component);\n\nexports.default = Alpha;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar calculateChange = exports.calculateChange = function calculateChange(e, hsl, direction, initialA, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var a = void 0;\n if (top < 0) {\n a = 0;\n } else if (top > containerHeight) {\n a = 1;\n } else {\n a = Math.round(top * 100 / containerHeight) / 100;\n }\n\n if (hsl.a !== a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: a,\n source: 'rgb'\n };\n }\n } else {\n var _a = void 0;\n if (left < 0) {\n _a = 0;\n } else if (left > containerWidth) {\n _a = 1;\n } else {\n _a = Math.round(left * 100 / containerWidth) / 100;\n }\n\n if (initialA !== _a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: _a,\n source: 'rgb'\n };\n }\n }\n return null;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar checkboardCache = {};\n\nvar render = exports.render = function render(c1, c2, size, serverCanvas) {\n if (typeof document === 'undefined' && !serverCanvas) {\n return null;\n }\n var canvas = serverCanvas ? new serverCanvas() : document.createElement('canvas');\n canvas.width = size * 2;\n canvas.height = size * 2;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return null;\n } // If no context can be found, return early.\n ctx.fillStyle = c1;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = c2;\n ctx.fillRect(0, 0, size, size);\n ctx.translate(size, size);\n ctx.fillRect(0, 0, size, size);\n return canvas.toDataURL();\n};\n\nvar get = exports.get = function get(c1, c2, size, serverCanvas) {\n var key = c1 + '-' + c2 + '-' + size + (serverCanvas ? '-server' : '');\n\n if (checkboardCache[key]) {\n return checkboardCache[key];\n }\n\n var checkboard = render(c1, c2, size, serverCanvas);\n checkboardCache[key] = checkboard;\n return checkboard;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.EditableInput = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEFAULT_ARROW_OFFSET = 1;\n\nvar UP_KEY_CODE = 38;\nvar DOWN_KEY_CODE = 40;\nvar VALID_KEY_CODES = [UP_KEY_CODE, DOWN_KEY_CODE];\nvar isValidKeyCode = function isValidKeyCode(keyCode) {\n return VALID_KEY_CODES.indexOf(keyCode) > -1;\n};\n\nvar getFormattedPercentage = function getFormattedPercentage(number) {\n return number + '%';\n};\nvar getNumberValue = function getNumberValue(value) {\n return Number(String(value).replace(/%/g, ''));\n};\nvar getIsPercentage = function getIsPercentage(value) {\n return String(value).indexOf('%') > -1;\n};\n\nvar EditableInput = exports.EditableInput = function (_ref) {\n _inherits(EditableInput, _ref);\n\n function EditableInput(props) {\n _classCallCheck(this, EditableInput);\n\n var _this = _possibleConstructorReturn(this, (EditableInput.__proto__ || Object.getPrototypeOf(EditableInput)).call(this));\n\n _this.handleBlur = function () {\n if (_this.state.blurValue) {\n _this.setState({ value: _this.state.blurValue, blurValue: null });\n }\n };\n\n _this.handleChange = function (e) {\n _this.setUpdatedValue(e.target.value, e);\n };\n\n _this.handleKeyDown = function (e) {\n // In case `e.target.value` is a percentage remove the `%` character\n // and update accordingly with a percentage\n // https://github.com/casesandberg/react-color/issues/383\n var value = getNumberValue(e.target.value);\n if (!isNaN(value) && isValidKeyCode(e.keyCode)) {\n var offset = _this.getArrowOffset();\n var updatedValue = e.keyCode === UP_KEY_CODE ? value + offset : value - offset;\n\n _this.setUpdatedValue(updatedValue, e);\n }\n };\n\n _this.handleDrag = function (e) {\n if (_this.props.dragLabel) {\n var newValue = Math.round(_this.props.value + e.movementX);\n if (newValue >= 0 && newValue <= _this.props.dragMax) {\n _this.props.onChange && _this.props.onChange(_this.getValueObjectWithLabel(newValue), e);\n }\n }\n };\n\n _this.handleMouseDown = function (e) {\n if (_this.props.dragLabel) {\n e.preventDefault();\n _this.handleDrag(e);\n window.addEventListener('mousemove', _this.handleDrag);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleDrag);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.state = {\n value: String(props.value).toUpperCase(),\n blurValue: String(props.value).toUpperCase()\n };\n return _this;\n }\n\n _createClass(EditableInput, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.value !== this.state.value && (prevProps.value !== this.props.value || prevState.value !== this.state.value)) {\n if (this.input === document.activeElement) {\n this.setState({ blurValue: String(this.props.value).toUpperCase() });\n } else {\n this.setState({ value: String(this.props.value).toUpperCase(), blurValue: !this.state.blurValue && String(this.props.value).toUpperCase() });\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'getValueObjectWithLabel',\n value: function getValueObjectWithLabel(value) {\n return _defineProperty({}, this.props.label, value);\n }\n }, {\n key: 'getArrowOffset',\n value: function getArrowOffset() {\n return this.props.arrowOffset || DEFAULT_ARROW_OFFSET;\n }\n }, {\n key: 'setUpdatedValue',\n value: function setUpdatedValue(value, e) {\n var onChangeValue = this.props.label ? this.getValueObjectWithLabel(value) : value;\n this.props.onChange && this.props.onChange(onChangeValue, e);\n\n var isPercentage = getIsPercentage(e.target.value);\n this.setState({\n value: isPercentage ? getFormattedPercentage(value) : value\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n wrap: {\n position: 'relative'\n }\n },\n 'user-override': {\n wrap: this.props.style && this.props.style.wrap ? this.props.style.wrap : {},\n input: this.props.style && this.props.style.input ? this.props.style.input : {},\n label: this.props.style && this.props.style.label ? this.props.style.label : {}\n },\n 'dragLabel-true': {\n label: {\n cursor: 'ew-resize'\n }\n }\n }, {\n 'user-override': true\n }, this.props);\n\n return _react2.default.createElement(\n 'div',\n { style: styles.wrap },\n _react2.default.createElement('input', {\n style: styles.input,\n ref: function ref(input) {\n return _this2.input = input;\n },\n value: this.state.value,\n onKeyDown: this.handleKeyDown,\n onChange: this.handleChange,\n onBlur: this.handleBlur,\n placeholder: this.props.placeholder,\n spellCheck: 'false'\n }),\n this.props.label && !this.props.hideLabel ? _react2.default.createElement(\n 'span',\n { style: styles.label, onMouseDown: this.handleMouseDown },\n this.props.label\n ) : null\n );\n }\n }]);\n\n return EditableInput;\n}(_react.PureComponent || _react.Component);\n\nexports.default = EditableInput;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Hue = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _hue = require('../../helpers/hue');\n\nvar hue = _interopRequireWildcard(_hue);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Hue = exports.Hue = function (_ref) {\n _inherits(Hue, _ref);\n\n function Hue() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hue);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Hue.__proto__ || Object.getPrototypeOf(Hue)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = hue.calculateChange(e, _this.props.direction, _this.props.hsl, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Hue, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$direction = this.props.direction,\n direction = _props$direction === undefined ? 'horizontal' : _props$direction;\n\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n hue: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius,\n boxShadow: this.props.shadow\n },\n container: {\n padding: '0 2px',\n position: 'relative',\n height: '100%',\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n left: this.props.hsl.h * 100 / 360 + '%'\n },\n slider: {\n marginTop: '1px',\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n pointer: {\n left: '0px',\n top: -(this.props.hsl.h * 100 / 360) + 100 + '%'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(\n 'div',\n {\n className: 'hue-' + direction,\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n _react2.default.createElement(\n 'style',\n null,\n '\\n .hue-horizontal {\\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0\\n 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to right, #f00 0%, #ff0\\n 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n\\n .hue-vertical {\\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,\\n #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,\\n #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n '\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Hue;\n}(_react.PureComponent || _react.Component);\n\nexports.default = Hue;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar calculateChange = exports.calculateChange = function calculateChange(e, direction, hsl, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var h = void 0;\n if (top < 0) {\n h = 359;\n } else if (top > containerHeight) {\n h = 0;\n } else {\n var percent = -(top * 100 / containerHeight) + 100;\n h = 360 * percent / 100;\n }\n\n if (hsl.h !== h) {\n return {\n h: h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'rgb'\n };\n }\n } else {\n var _h = void 0;\n if (left < 0) {\n _h = 0;\n } else if (left > containerWidth) {\n _h = 359;\n } else {\n var _percent = left * 100 / containerWidth;\n _h = 360 * _percent / 100;\n }\n\n if (hsl.h !== _h) {\n return {\n h: _h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'rgb'\n };\n }\n }\n return null;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Raised = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Raised = exports.Raised = function Raised(_ref) {\n var zDepth = _ref.zDepth,\n radius = _ref.radius,\n background = _ref.background,\n children = _ref.children,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n wrap: {\n position: 'relative',\n display: 'inline-block'\n },\n content: {\n position: 'relative'\n },\n bg: {\n absolute: '0px 0px 0px 0px',\n boxShadow: '0 ' + zDepth + 'px ' + zDepth * 4 + 'px rgba(0,0,0,.24)',\n borderRadius: radius,\n background: background\n }\n },\n 'zDepth-0': {\n bg: {\n boxShadow: 'none'\n }\n },\n\n 'zDepth-1': {\n bg: {\n boxShadow: '0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)'\n }\n },\n 'zDepth-2': {\n bg: {\n boxShadow: '0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)'\n }\n },\n 'zDepth-3': {\n bg: {\n boxShadow: '0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)'\n }\n },\n 'zDepth-4': {\n bg: {\n boxShadow: '0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)'\n }\n },\n 'zDepth-5': {\n bg: {\n boxShadow: '0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)'\n }\n },\n 'square': {\n bg: {\n borderRadius: '0'\n }\n },\n 'circle': {\n bg: {\n borderRadius: '50%'\n }\n }\n }, passedStyles), { 'zDepth-1': zDepth === 1 });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.wrap },\n _react2.default.createElement('div', { style: styles.bg }),\n _react2.default.createElement(\n 'div',\n { style: styles.content },\n children\n )\n );\n};\n\nRaised.propTypes = {\n background: _propTypes2.default.string,\n zDepth: _propTypes2.default.oneOf([0, 1, 2, 3, 4, 5]),\n radius: _propTypes2.default.number,\n styles: _propTypes2.default.object\n};\n\nRaised.defaultProps = {\n background: '#fff',\n zDepth: 1,\n radius: 2,\n styles: {}\n};\n\nexports.default = Raised;","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Saturation = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _throttle = require('lodash/throttle');\n\nvar _throttle2 = _interopRequireDefault(_throttle);\n\nvar _saturation = require('../../helpers/saturation');\n\nvar saturation = _interopRequireWildcard(_saturation);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Saturation = exports.Saturation = function (_ref) {\n _inherits(Saturation, _ref);\n\n function Saturation(props) {\n _classCallCheck(this, Saturation);\n\n var _this = _possibleConstructorReturn(this, (Saturation.__proto__ || Object.getPrototypeOf(Saturation)).call(this, props));\n\n _this.handleChange = function (e) {\n typeof _this.props.onChange === 'function' && _this.throttle(_this.props.onChange, saturation.calculateChange(e, _this.props.hsl, _this.container), e);\n };\n\n _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.throttle = (0, _throttle2.default)(function (fn, data, e) {\n fn(data, e);\n }, 50);\n return _this;\n }\n\n _createClass(Saturation, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.throttle.cancel();\n this.unbindEventListeners();\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _ref2 = this.props.style || {},\n color = _ref2.color,\n white = _ref2.white,\n black = _ref2.black,\n pointer = _ref2.pointer,\n circle = _ref2.circle;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n color: {\n absolute: '0px 0px 0px 0px',\n background: 'hsl(' + this.props.hsl.h + ',100%, 50%)',\n borderRadius: this.props.radius\n },\n white: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n black: {\n absolute: '0px 0px 0px 0px',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n top: -(this.props.hsv.v * 100) + 100 + '%',\n left: this.props.hsv.s * 100 + '%',\n cursor: 'default'\n },\n circle: {\n width: '4px',\n height: '4px',\n boxShadow: '0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3),\\n 0 0 1px 2px rgba(0,0,0,.4)',\n borderRadius: '50%',\n cursor: 'hand',\n transform: 'translate(-2px, -2px)'\n }\n },\n 'custom': {\n color: color,\n white: white,\n black: black,\n pointer: pointer,\n circle: circle\n }\n }, { 'custom': !!this.props.style });\n\n return _react2.default.createElement(\n 'div',\n {\n style: styles.color,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n _react2.default.createElement(\n 'style',\n null,\n '\\n .saturation-white {\\n background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));\\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\\n }\\n .saturation-black {\\n background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));\\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\\n }\\n '\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.white, className: 'saturation-white' },\n _react2.default.createElement('div', { style: styles.black, className: 'saturation-black' }),\n _react2.default.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.circle })\n )\n )\n );\n }\n }]);\n\n return Saturation;\n}(_react.PureComponent || _react.Component);\n\nexports.default = Saturation;","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar calculateChange = exports.calculateChange = function calculateChange(e, hsl, container) {\n var _container$getBoundin = container.getBoundingClientRect(),\n containerWidth = _container$getBoundin.width,\n containerHeight = _container$getBoundin.height;\n\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (left < 0) {\n left = 0;\n } else if (left > containerWidth) {\n left = containerWidth;\n }\n\n if (top < 0) {\n top = 0;\n } else if (top > containerHeight) {\n top = containerHeight;\n }\n\n var saturation = left / containerWidth;\n var bright = 1 - top / containerHeight;\n\n return {\n h: hsl.h,\n s: saturation,\n v: bright,\n a: hsl.a,\n source: 'rgb'\n };\n};","module.exports = require('./forEach');\n","var arrayEach = require('./_arrayEach'),\n baseEach = require('./_baseEach'),\n castFunction = require('./_castFunction'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Swatch = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _interaction = require('../../helpers/interaction');\n\nvar _Checkboard = require('./Checkboard');\n\nvar _Checkboard2 = _interopRequireDefault(_Checkboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ENTER = 13;\n\nvar Swatch = exports.Swatch = function Swatch(_ref) {\n var color = _ref.color,\n style = _ref.style,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onHover = _ref.onHover,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? color : _ref$title,\n children = _ref.children,\n focus = _ref.focus,\n _ref$focusStyle = _ref.focusStyle,\n focusStyle = _ref$focusStyle === undefined ? {} : _ref$focusStyle;\n\n var transparent = color === 'transparent';\n var styles = (0, _reactcss2.default)({\n default: {\n swatch: _extends({\n background: color,\n height: '100%',\n width: '100%',\n cursor: 'pointer',\n position: 'relative',\n outline: 'none'\n }, style, focus ? focusStyle : {})\n }\n });\n\n var handleClick = function handleClick(e) {\n return onClick(color, e);\n };\n var handleKeyDown = function handleKeyDown(e) {\n return e.keyCode === ENTER && onClick(color, e);\n };\n var handleHover = function handleHover(e) {\n return onHover(color, e);\n };\n\n var optionalEvents = {};\n if (onHover) {\n optionalEvents.onMouseOver = handleHover;\n }\n\n return _react2.default.createElement(\n 'div',\n _extends({\n style: styles.swatch,\n onClick: handleClick,\n title: title,\n tabIndex: 0,\n onKeyDown: handleKeyDown\n }, optionalEvents),\n children,\n transparent && _react2.default.createElement(_Checkboard2.default, {\n borderRadius: styles.swatch.borderRadius,\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.1)'\n })\n );\n};\n\nexports.default = (0, _interaction.handleFocus)(Swatch);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleFocus = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable no-invalid-this */\n\n\nvar handleFocus = exports.handleFocus = function handleFocus(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n return function (_React$Component) {\n _inherits(Focus, _React$Component);\n\n function Focus() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Focus);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Focus.__proto__ || Object.getPrototypeOf(Focus)).call.apply(_ref, [this].concat(args))), _this), _this.state = { focus: false }, _this.handleFocus = function () {\n return _this.setState({ focus: true });\n }, _this.handleBlur = function () {\n return _this.setState({ focus: false });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Focus, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n Span,\n { onFocus: this.handleFocus, onBlur: this.handleBlur },\n _react2.default.createElement(Component, _extends({}, this.props, this.state))\n );\n }\n }]);\n\n return Focus;\n }(_react2.default.Component);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlphaPointer = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar AlphaPointer = exports.AlphaPointer = function AlphaPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = AlphaPointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Block = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _common = require('../common');\n\nvar _BlockSwatches = require('./BlockSwatches');\n\nvar _BlockSwatches2 = _interopRequireDefault(_BlockSwatches);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Block = exports.Block = function Block(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var transparent = hex === 'transparent';\n var handleChange = function handleChange(hexCode, e) {\n _color2.default.isValidHex(hexCode) && onChange({\n hex: hexCode,\n source: 'hex'\n }, e);\n };\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n boxShadow: '0 1px rgba(0,0,0,.1)',\n borderRadius: '6px',\n position: 'relative'\n },\n head: {\n height: '110px',\n background: hex,\n borderRadius: '6px 6px 0 0',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative'\n },\n body: {\n padding: '10px'\n },\n label: {\n fontSize: '18px',\n color: _color2.default.getContrastingColor(hex),\n position: 'relative'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 10px 10px 10px',\n borderColor: 'transparent transparent ' + hex + ' transparent',\n position: 'absolute',\n top: '-10px',\n left: '50%',\n marginLeft: '-10px'\n },\n input: {\n width: '100%',\n fontSize: '12px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '22px',\n boxShadow: 'inset 0 0 0 1px #ddd',\n borderRadius: '4px',\n padding: '0 7px',\n boxSizing: 'border-box'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n }\n }\n }, passedStyles), { 'hide-triangle': triangle === 'hide' });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.card, className: 'block-picker ' + className },\n _react2.default.createElement('div', { style: styles.triangle }),\n _react2.default.createElement(\n 'div',\n { style: styles.head },\n transparent && _react2.default.createElement(_common.Checkboard, { borderRadius: '6px 6px 0 0' }),\n _react2.default.createElement(\n 'div',\n { style: styles.label },\n hex\n )\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.body },\n _react2.default.createElement(_BlockSwatches2.default, { colors: colors, onClick: handleChange, onSwatchHover: onSwatchHover }),\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input },\n value: hex,\n onChange: handleChange\n })\n )\n );\n};\n\nBlock.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n colors: _propTypes2.default.arrayOf(_propTypes2.default.string),\n triangle: _propTypes2.default.oneOf(['top', 'hide']),\n styles: _propTypes2.default.object\n};\n\nBlock.defaultProps = {\n width: 170,\n colors: ['#D9E3F0', '#F47373', '#697689', '#37D67A', '#2CCCE4', '#555555', '#dce775', '#ff8a65', '#ba68c8'],\n triangle: 'top',\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Block);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BlockSwatches = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BlockSwatches = exports.BlockSwatches = function BlockSwatches(_ref) {\n var colors = _ref.colors,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatches: {\n marginRight: '-10px'\n },\n swatch: {\n width: '22px',\n height: '22px',\n float: 'left',\n marginRight: '10px',\n marginBottom: '10px',\n borderRadius: '4px'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.swatches },\n (0, _map2.default)(colors, function (c) {\n return _react2.default.createElement(_common.Swatch, {\n key: c,\n color: c,\n style: styles.swatch,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n _react2.default.createElement('div', { style: styles.clear })\n );\n};\n\nexports.default = BlockSwatches;","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Circle = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _materialColors = require('material-colors');\n\nvar material = _interopRequireWildcard(_materialColors);\n\nvar _common = require('../common');\n\nvar _CircleSwatch = require('./CircleSwatch');\n\nvar _CircleSwatch2 = _interopRequireDefault(_CircleSwatch);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Circle = exports.Circle = function Circle(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n circleSize = _ref.circleSize,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n circleSpacing = _ref.circleSpacing,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n card: {\n width: width,\n display: 'flex',\n flexWrap: 'wrap',\n marginRight: -circleSpacing,\n marginBottom: -circleSpacing\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(hexCode, e) {\n return onChange({ hex: hexCode, source: 'hex' }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.card, className: 'circle-picker ' + className },\n (0, _map2.default)(colors, function (c) {\n return _react2.default.createElement(_CircleSwatch2.default, {\n key: c,\n color: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover,\n active: hex === c.toLowerCase(),\n circleSize: circleSize,\n circleSpacing: circleSpacing\n });\n })\n );\n};\n\nCircle.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n circleSize: _propTypes2.default.number,\n circleSpacing: _propTypes2.default.number,\n styles: _propTypes2.default.object\n};\n\nCircle.defaultProps = {\n width: 252,\n circleSize: 28,\n circleSpacing: 14,\n colors: [material.red['500'], material.pink['500'], material.purple['500'], material.deepPurple['500'], material.indigo['500'], material.blue['500'], material.lightBlue['500'], material.cyan['500'], material.teal['500'], material.green['500'], material.lightGreen['500'], material.lime['500'], material.yellow['500'], material.amber['500'], material.orange['500'], material.deepOrange['500'], material.brown['500'], material.blueGrey['500']],\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Circle);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CircleSwatch = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar CircleSwatch = exports.CircleSwatch = function CircleSwatch(_ref) {\n var color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n hover = _ref.hover,\n active = _ref.active,\n circleSize = _ref.circleSize,\n circleSpacing = _ref.circleSpacing;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatch: {\n width: circleSize,\n height: circleSize,\n marginRight: circleSpacing,\n marginBottom: circleSpacing,\n transform: 'scale(1)',\n transition: '100ms transform ease'\n },\n Swatch: {\n borderRadius: '50%',\n background: 'transparent',\n boxShadow: 'inset 0 0 0 ' + circleSize / 2 + 'px ' + color,\n transition: '100ms box-shadow ease'\n }\n },\n 'hover': {\n swatch: {\n transform: 'scale(1.2)'\n }\n },\n 'active': {\n Swatch: {\n boxShadow: 'inset 0 0 0 3px ' + color\n }\n }\n }, { hover: hover, active: active });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_common.Swatch, {\n style: styles.Swatch,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: styles.Swatch.boxShadow + ', 0 0 5px ' + color }\n })\n );\n};\n\nCircleSwatch.defaultProps = {\n circleSize: 28,\n circleSpacing: 14\n};\n\nexports.default = (0, _reactcss.handleHover)(CircleSwatch);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Chrome = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _ChromeFields = require('./ChromeFields');\n\nvar _ChromeFields2 = _interopRequireDefault(_ChromeFields);\n\nvar _ChromePointer = require('./ChromePointer');\n\nvar _ChromePointer2 = _interopRequireDefault(_ChromePointer);\n\nvar _ChromePointerCircle = require('./ChromePointerCircle');\n\nvar _ChromePointerCircle2 = _interopRequireDefault(_ChromePointerCircle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Chrome = exports.Chrome = function Chrome(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n disableAlpha = _ref.disableAlpha,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className,\n defaultView = _ref.defaultView;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n borderRadius: '2px',\n boxShadow: '0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)',\n boxSizing: 'initial',\n fontFamily: 'Menlo'\n },\n saturation: {\n width: '100%',\n paddingBottom: '55%',\n position: 'relative',\n borderRadius: '2px 2px 0 0',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '2px 2px 0 0'\n },\n body: {\n padding: '16px 16px 12px'\n },\n controls: {\n display: 'flex'\n },\n color: {\n width: '32px'\n },\n swatch: {\n marginTop: '6px',\n width: '16px',\n height: '16px',\n borderRadius: '8px',\n position: 'relative',\n overflow: 'hidden'\n },\n active: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '8px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.1)',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + rgb.a + ')',\n zIndex: '2'\n },\n toggles: {\n flex: '1'\n },\n hue: {\n height: '10px',\n position: 'relative',\n marginBottom: '8px'\n },\n Hue: {\n radius: '2px'\n },\n alpha: {\n height: '10px',\n position: 'relative'\n },\n Alpha: {\n radius: '2px'\n }\n },\n 'disableAlpha': {\n color: {\n width: '22px'\n },\n alpha: {\n display: 'none'\n },\n hue: {\n marginBottom: '0px'\n },\n swatch: {\n width: '10px',\n height: '10px',\n marginTop: '0px'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'chrome-picker ' + className },\n _react2.default.createElement(\n 'div',\n { style: styles.saturation },\n _react2.default.createElement(_common.Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n pointer: _ChromePointerCircle2.default,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.body },\n _react2.default.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.color },\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement('div', { style: styles.active }),\n _react2.default.createElement(_common.Checkboard, { renderers: renderers })\n )\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.toggles },\n _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(_common.Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: _ChromePointer2.default,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n pointer: _ChromePointer2.default,\n renderers: renderers,\n onChange: onChange\n })\n )\n )\n ),\n _react2.default.createElement(_ChromeFields2.default, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n view: defaultView,\n onChange: onChange,\n disableAlpha: disableAlpha\n })\n )\n );\n};\n\nChrome.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n disableAlpha: _propTypes2.default.bool,\n styles: _propTypes2.default.object,\n defaultView: _propTypes2.default.oneOf([\"hex\", \"rgb\", \"hsl\"])\n};\n\nChrome.defaultProps = {\n width: 225,\n disableAlpha: false,\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Chrome);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChromeFields = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _common = require('../common');\n\nvar _UnfoldMoreHorizontalIcon = require('@icons/material/UnfoldMoreHorizontalIcon');\n\nvar _UnfoldMoreHorizontalIcon2 = _interopRequireDefault(_UnfoldMoreHorizontalIcon);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable react/no-did-mount-set-state, no-param-reassign */\n\nvar ChromeFields = exports.ChromeFields = function (_React$Component) {\n _inherits(ChromeFields, _React$Component);\n\n function ChromeFields(props) {\n _classCallCheck(this, ChromeFields);\n\n var _this = _possibleConstructorReturn(this, (ChromeFields.__proto__ || Object.getPrototypeOf(ChromeFields)).call(this));\n\n _this.toggleViews = function () {\n if (_this.state.view === 'hex') {\n _this.setState({ view: 'rgb' });\n } else if (_this.state.view === 'rgb') {\n _this.setState({ view: 'hsl' });\n } else if (_this.state.view === 'hsl') {\n if (_this.props.hsl.a === 1) {\n _this.setState({ view: 'hex' });\n } else {\n _this.setState({ view: 'rgb' });\n }\n }\n };\n\n _this.handleChange = function (data, e) {\n if (data.hex) {\n _color2.default.isValidHex(data.hex) && _this.props.onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n _this.props.onChange({\n r: data.r || _this.props.rgb.r,\n g: data.g || _this.props.rgb.g,\n b: data.b || _this.props.rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 1) {\n data.a = 1;\n }\n\n _this.props.onChange({\n h: _this.props.hsl.h,\n s: _this.props.hsl.s,\n l: _this.props.hsl.l,\n a: Math.round(data.a * 100) / 100,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.l) {\n // Remove any occurances of '%'.\n if (typeof data.s === 'string' && data.s.includes('%')) {\n data.s = data.s.replace('%', '');\n }\n if (typeof data.l === 'string' && data.l.includes('%')) {\n data.l = data.l.replace('%', '');\n }\n\n _this.props.onChange({\n h: data.h || _this.props.hsl.h,\n s: Number(data.s && data.s || _this.props.hsl.s),\n l: Number(data.l && data.l || _this.props.hsl.l),\n source: 'hsl'\n }, e);\n }\n };\n\n _this.showHighlight = function (e) {\n e.currentTarget.style.background = '#eee';\n };\n\n _this.hideHighlight = function (e) {\n e.currentTarget.style.background = 'transparent';\n };\n\n if (props.hsl.a !== 1 && props.view === \"hex\") {\n _this.state = {\n view: \"rgb\"\n };\n } else {\n _this.state = {\n view: props.view\n };\n }\n return _this;\n }\n\n _createClass(ChromeFields, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n wrap: {\n paddingTop: '16px',\n display: 'flex'\n },\n fields: {\n flex: '1',\n display: 'flex',\n marginLeft: '-6px'\n },\n field: {\n paddingLeft: '6px',\n width: '100%'\n },\n alpha: {\n paddingLeft: '6px',\n width: '100%'\n },\n toggle: {\n width: '32px',\n textAlign: 'right',\n position: 'relative'\n },\n icon: {\n marginRight: '-4px',\n marginTop: '12px',\n cursor: 'pointer',\n position: 'relative'\n },\n iconHighlight: {\n position: 'absolute',\n width: '24px',\n height: '28px',\n background: '#eee',\n borderRadius: '4px',\n top: '10px',\n left: '12px',\n display: 'none'\n },\n input: {\n fontSize: '11px',\n color: '#333',\n width: '100%',\n borderRadius: '2px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #dadada',\n height: '21px',\n textAlign: 'center'\n },\n label: {\n textTransform: 'uppercase',\n fontSize: '11px',\n lineHeight: '11px',\n color: '#969696',\n textAlign: 'center',\n display: 'block',\n marginTop: '12px'\n },\n svg: {\n fill: '#333',\n width: '24px',\n height: '24px',\n border: '1px transparent solid',\n borderRadius: '5px'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, this.props, this.state);\n\n var fields = void 0;\n if (this.state.view === 'hex') {\n fields = _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex', value: this.props.hex,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'rgb') {\n fields = _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: this.props.rgb.r,\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: this.props.rgb.g,\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: this.props.rgb.b,\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.rgb.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'hsl') {\n fields = _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'h',\n value: Math.round(this.props.hsl.h),\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 's',\n value: Math.round(this.props.hsl.s * 100) + '%',\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'l',\n value: Math.round(this.props.hsl.l * 100) + '%',\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.hsl.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n }\n\n return _react2.default.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n fields,\n _react2.default.createElement(\n 'div',\n { style: styles.toggle },\n _react2.default.createElement(\n 'div',\n { style: styles.icon, onClick: this.toggleViews, ref: function ref(icon) {\n return _this2.icon = icon;\n } },\n _react2.default.createElement(_UnfoldMoreHorizontalIcon2.default, {\n style: styles.svg,\n onMouseOver: this.showHighlight,\n onMouseEnter: this.showHighlight,\n onMouseOut: this.hideHighlight\n })\n )\n )\n );\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n if (nextProps.hsl.a !== 1 && state.view === 'hex') {\n return { view: 'rgb' };\n }\n return null;\n }\n }]);\n\n return ChromeFields;\n}(_react2.default.Component);\n\nChromeFields.defaultProps = {\n view: \"hex\"\n};\n\nexports.default = ChromeFields;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z' })\n );\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChromePointer = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ChromePointer = exports.ChromePointer = function ChromePointer() {\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n transform: 'translate(-6px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = ChromePointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChromePointerCircle = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ChromePointerCircle = exports.ChromePointerCircle = function ChromePointerCircle() {\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n }\n });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = ChromePointerCircle;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Compact = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _common = require('../common');\n\nvar _CompactColor = require('./CompactColor');\n\nvar _CompactColor2 = _interopRequireDefault(_CompactColor);\n\nvar _CompactFields = require('./CompactFields');\n\nvar _CompactFields2 = _interopRequireDefault(_CompactFields);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Compact = exports.Compact = function Compact(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n Compact: {\n background: '#f6f6f6',\n radius: '4px'\n },\n compact: {\n paddingTop: '5px',\n paddingLeft: '5px',\n boxSizing: 'initial',\n width: '240px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n _color2.default.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else {\n onChange(data, e);\n }\n };\n\n return _react2.default.createElement(\n _common.Raised,\n { style: styles.Compact, styles: passedStyles },\n _react2.default.createElement(\n 'div',\n { style: styles.compact, className: 'compact-picker ' + className },\n _react2.default.createElement(\n 'div',\n null,\n (0, _map2.default)(colors, function (c) {\n return _react2.default.createElement(_CompactColor2.default, {\n key: c,\n color: c,\n active: c.toLowerCase() === hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n _react2.default.createElement('div', { style: styles.clear })\n ),\n _react2.default.createElement(_CompactFields2.default, { hex: hex, rgb: rgb, onChange: handleChange })\n )\n );\n};\n\nCompact.propTypes = {\n colors: _propTypes2.default.arrayOf(_propTypes2.default.string),\n styles: _propTypes2.default.object\n};\n\nCompact.defaultProps = {\n colors: ['#4D4D4D', '#999999', '#FFFFFF', '#F44E3B', '#FE9200', '#FCDC00', '#DBDF00', '#A4DD00', '#68CCCA', '#73D8FF', '#AEA1FF', '#FDA1FF', '#333333', '#808080', '#cccccc', '#D33115', '#E27300', '#FCC400', '#B0BC00', '#68BC00', '#16A5A5', '#009CE0', '#7B64FF', '#FA28FF', '#000000', '#666666', '#B3B3B3', '#9F0500', '#C45100', '#FB9E00', '#808900', '#194D33', '#0C797D', '#0062B1', '#653294', '#AB149E'],\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Compact);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CompactColor = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar CompactColor = exports.CompactColor = function CompactColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n active = _ref.active;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n color: {\n background: color,\n width: '15px',\n height: '15px',\n float: 'left',\n marginRight: '5px',\n marginBottom: '5px',\n position: 'relative',\n cursor: 'pointer'\n },\n dot: {\n absolute: '5px 5px 5px 5px',\n background: _color2.default.getContrastingColor(color),\n borderRadius: '50%',\n opacity: '0'\n }\n },\n 'active': {\n dot: {\n opacity: '1'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n dot: {\n background: '#000'\n }\n },\n 'transparent': {\n dot: {\n background: '#000'\n }\n }\n }, { active: active, 'color-#FFFFFF': color === '#FFFFFF', 'transparent': color === 'transparent' });\n\n return _react2.default.createElement(\n _common.Swatch,\n {\n style: styles.color,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n _react2.default.createElement('div', { style: styles.dot })\n );\n};\n\nexports.default = CompactColor;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CompactFields = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar CompactFields = exports.CompactFields = function CompactFields(_ref) {\n var hex = _ref.hex,\n rgb = _ref.rgb,\n onChange = _ref.onChange;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n fields: {\n display: 'flex',\n paddingBottom: '6px',\n paddingRight: '5px',\n position: 'relative'\n },\n active: {\n position: 'absolute',\n top: '6px',\n left: '5px',\n height: '9px',\n width: '9px',\n background: hex\n },\n HEXwrap: {\n flex: '6',\n position: 'relative'\n },\n HEXinput: {\n width: '80%',\n padding: '0px',\n paddingLeft: '20%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n HEXlabel: {\n display: 'none'\n },\n RGBwrap: {\n flex: '3',\n position: 'relative'\n },\n RGBinput: {\n width: '70%',\n padding: '0px',\n paddingLeft: '30%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '3px',\n left: '0px',\n lineHeight: '16px',\n textTransform: 'uppercase',\n fontSize: '12px',\n color: '#999'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else {\n onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n }\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement('div', { style: styles.active }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n );\n};\n\nexports.default = CompactFields;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Github = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _GithubSwatch = require('./GithubSwatch');\n\nvar _GithubSwatch2 = _interopRequireDefault(_GithubSwatch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Github = exports.Github = function Github(_ref) {\n var width = _ref.width,\n colors = _ref.colors,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '1px solid rgba(0,0,0,0.2)',\n boxShadow: '0 3px 12px rgba(0,0,0,0.15)',\n borderRadius: '4px',\n position: 'relative',\n padding: '5px',\n display: 'flex',\n flexWrap: 'wrap'\n },\n triangle: {\n position: 'absolute',\n border: '7px solid transparent',\n borderBottomColor: '#fff'\n },\n triangleShadow: {\n position: 'absolute',\n border: '8px solid transparent',\n borderBottomColor: 'rgba(0,0,0,0.15)'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-14px',\n left: '10px'\n },\n triangleShadow: {\n top: '-16px',\n left: '9px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-14px',\n right: '10px'\n },\n triangleShadow: {\n top: '-16px',\n right: '9px'\n }\n },\n 'bottom-left-triangle': {\n triangle: {\n top: '35px',\n left: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n left: '9px',\n transform: 'rotate(180deg)'\n }\n },\n 'bottom-right-triangle': {\n triangle: {\n top: '35px',\n right: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n right: '9px',\n transform: 'rotate(180deg)'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right',\n 'bottom-left-triangle': triangle === 'bottom-left',\n 'bottom-right-triangle': triangle === 'bottom-right'\n });\n\n var handleChange = function handleChange(hex, e) {\n return onChange({ hex: hex, source: 'hex' }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.card, className: 'github-picker ' + className },\n _react2.default.createElement('div', { style: styles.triangleShadow }),\n _react2.default.createElement('div', { style: styles.triangle }),\n (0, _map2.default)(colors, function (c) {\n return _react2.default.createElement(_GithubSwatch2.default, {\n color: c,\n key: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nGithub.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n colors: _propTypes2.default.arrayOf(_propTypes2.default.string),\n triangle: _propTypes2.default.oneOf(['hide', 'top-left', 'top-right', 'bottom-left', 'bottom-right']),\n styles: _propTypes2.default.object\n};\n\nGithub.defaultProps = {\n width: 200,\n colors: ['#B80000', '#DB3E00', '#FCCB00', '#008B02', '#006B76', '#1273DE', '#004DCF', '#5300EB', '#EB9694', '#FAD0C3', '#FEF3BD', '#C1E1C5', '#BEDADC', '#C4DEF6', '#BED3F3', '#D4C4FB'],\n triangle: 'top-left',\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Github);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GithubSwatch = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar GithubSwatch = exports.GithubSwatch = function GithubSwatch(_ref) {\n var hover = _ref.hover,\n color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var hoverSwatch = {\n position: 'relative',\n zIndex: '2',\n outline: '2px solid #fff',\n boxShadow: '0 0 5px 2px rgba(0,0,0,0.25)'\n };\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatch: {\n width: '25px',\n height: '25px',\n fontSize: '0'\n }\n },\n 'hover': {\n swatch: hoverSwatch\n }\n }, { hover: hover });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_common.Swatch, {\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: hoverSwatch\n })\n );\n};\n\nexports.default = (0, _reactcss.handleHover)(GithubSwatch);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.HuePicker = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _HuePointer = require('./HuePointer');\n\nvar _HuePointer2 = _interopRequireDefault(_HuePointer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar HuePicker = exports.HuePicker = function HuePicker(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n hsl = _ref.hsl,\n direction = _ref.direction,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n // Overwrite to provide pure hue color\n var handleChange = function handleChange(data) {\n return onChange({ a: 1, h: data.h, l: 0.5, s: 1 });\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'hue-picker ' + className },\n _react2.default.createElement(_common.Hue, _extends({}, styles.hue, {\n hsl: hsl,\n pointer: pointer,\n onChange: handleChange,\n direction: direction\n }))\n );\n};\n\nHuePicker.propTypes = {\n styles: _propTypes2.default.object\n};\nHuePicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: _HuePointer2.default,\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(HuePicker);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SliderPointer = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SliderPointer = exports.SliderPointer = function SliderPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = SliderPointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Material = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Material = exports.Material = function Material(_ref) {\n var onChange = _ref.onChange,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n material: {\n width: '98px',\n height: '98px',\n padding: '16px',\n fontFamily: 'Roboto'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '2px solid ' + hex,\n outline: 'none',\n height: '30px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n Hex: {\n style: {}\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '1px solid #eee',\n outline: 'none',\n height: '30px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n split: {\n display: 'flex',\n marginRight: '-10px',\n paddingTop: '11px'\n },\n third: {\n flex: '1',\n paddingRight: '10px'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n _color2.default.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n }\n };\n\n return _react2.default.createElement(\n _common.Raised,\n { styles: passedStyles },\n _react2.default.createElement(\n 'div',\n { style: styles.material, className: 'material-picker ' + className },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n _react2.default.createElement(\n 'div',\n { style: styles.split, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.third },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r', value: rgb.r,\n onChange: handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.third },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.third },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexports.default = (0, _common.ColorWrap)(Material);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Photoshop = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _PhotoshopFields = require('./PhotoshopFields');\n\nvar _PhotoshopFields2 = _interopRequireDefault(_PhotoshopFields);\n\nvar _PhotoshopPointerCircle = require('./PhotoshopPointerCircle');\n\nvar _PhotoshopPointerCircle2 = _interopRequireDefault(_PhotoshopPointerCircle);\n\nvar _PhotoshopPointer = require('./PhotoshopPointer');\n\nvar _PhotoshopPointer2 = _interopRequireDefault(_PhotoshopPointer);\n\nvar _PhotoshopButton = require('./PhotoshopButton');\n\nvar _PhotoshopButton2 = _interopRequireDefault(_PhotoshopButton);\n\nvar _PhotoshopPreviews = require('./PhotoshopPreviews');\n\nvar _PhotoshopPreviews2 = _interopRequireDefault(_PhotoshopPreviews);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Photoshop = exports.Photoshop = function (_React$Component) {\n _inherits(Photoshop, _React$Component);\n\n function Photoshop(props) {\n _classCallCheck(this, Photoshop);\n\n var _this = _possibleConstructorReturn(this, (Photoshop.__proto__ || Object.getPrototypeOf(Photoshop)).call(this));\n\n _this.state = {\n currentColor: props.hex\n };\n return _this;\n }\n\n _createClass(Photoshop, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n _props$styles = _props.styles,\n passedStyles = _props$styles === undefined ? {} : _props$styles,\n _props$className = _props.className,\n className = _props$className === undefined ? '' : _props$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n picker: {\n background: '#DCDCDC',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.25), 0 8px 16px rgba(0,0,0,.15)',\n boxSizing: 'initial',\n width: '513px'\n },\n head: {\n backgroundImage: 'linear-gradient(-180deg, #F0F0F0 0%, #D4D4D4 100%)',\n borderBottom: '1px solid #B1B1B1',\n boxShadow: 'inset 0 1px 0 0 rgba(255,255,255,.2), inset 0 -1px 0 0 rgba(0,0,0,.02)',\n height: '23px',\n lineHeight: '24px',\n borderRadius: '4px 4px 0 0',\n fontSize: '13px',\n color: '#4D4D4D',\n textAlign: 'center'\n },\n body: {\n padding: '15px 15px 0',\n display: 'flex'\n },\n saturation: {\n width: '256px',\n height: '256px',\n position: 'relative',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0',\n overflow: 'hidden'\n },\n hue: {\n position: 'relative',\n height: '256px',\n width: '19px',\n marginLeft: '10px',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0'\n },\n controls: {\n width: '180px',\n marginLeft: '10px'\n },\n top: {\n display: 'flex'\n },\n previews: {\n width: '60px'\n },\n actions: {\n flex: '1',\n marginLeft: '20px'\n }\n }\n }, passedStyles));\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'photoshop-picker ' + className },\n _react2.default.createElement(\n 'div',\n { style: styles.head },\n this.props.header\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.body, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.saturation },\n _react2.default.createElement(_common.Saturation, {\n hsl: this.props.hsl,\n hsv: this.props.hsv,\n pointer: _PhotoshopPointerCircle2.default,\n onChange: this.props.onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(_common.Hue, {\n direction: 'vertical',\n hsl: this.props.hsl,\n pointer: _PhotoshopPointer2.default,\n onChange: this.props.onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.controls },\n _react2.default.createElement(\n 'div',\n { style: styles.top, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.previews },\n _react2.default.createElement(_PhotoshopPreviews2.default, {\n rgb: this.props.rgb,\n currentColor: this.state.currentColor\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.actions },\n _react2.default.createElement(_PhotoshopButton2.default, { label: 'OK', onClick: this.props.onAccept, active: true }),\n _react2.default.createElement(_PhotoshopButton2.default, { label: 'Cancel', onClick: this.props.onCancel }),\n _react2.default.createElement(_PhotoshopFields2.default, {\n onChange: this.props.onChange,\n rgb: this.props.rgb,\n hsv: this.props.hsv,\n hex: this.props.hex\n })\n )\n )\n )\n )\n );\n }\n }]);\n\n return Photoshop;\n}(_react2.default.Component);\n\nPhotoshop.propTypes = {\n header: _propTypes2.default.string,\n styles: _propTypes2.default.object\n};\n\nPhotoshop.defaultProps = {\n header: 'Color Picker',\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Photoshop);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopPicker = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopPicker = exports.PhotoshopPicker = function PhotoshopPicker(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsv = _ref.hsv,\n hex = _ref.hex;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n fields: {\n paddingTop: '5px',\n paddingBottom: '9px',\n width: '80px',\n position: 'relative'\n },\n divider: {\n height: '5px'\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n marginLeft: '40%',\n width: '40%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '5px',\n fontSize: '13px',\n paddingLeft: '3px',\n marginRight: '10px'\n },\n RGBlabel: {\n left: '0px',\n width: '34px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px',\n position: 'absolute'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n marginLeft: '20%',\n width: '80%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '6px',\n fontSize: '13px',\n paddingLeft: '3px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n width: '14px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px'\n },\n fieldSymbols: {\n position: 'absolute',\n top: '5px',\n right: '-7px',\n fontSize: '13px'\n },\n symbol: {\n height: '20px',\n lineHeight: '22px',\n paddingBottom: '7px'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data['#']) {\n _color2.default.isValidHex(data['#']) && onChange({\n hex: data['#'],\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.v) {\n onChange({\n h: data.h || hsv.h,\n s: data.s || hsv.s,\n v: data.v || hsv.v,\n source: 'hsv'\n }, e);\n }\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.fields },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'h',\n value: Math.round(hsv.h),\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 's',\n value: Math.round(hsv.s * 100),\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'v',\n value: Math.round(hsv.v * 100),\n onChange: handleChange\n }),\n _react2.default.createElement('div', { style: styles.divider }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n }),\n _react2.default.createElement('div', { style: styles.divider }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: '#',\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n _react2.default.createElement(\n 'div',\n { style: styles.fieldSymbols },\n _react2.default.createElement(\n 'div',\n { style: styles.symbol },\n '\\xB0'\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n )\n )\n );\n};\n\nexports.default = PhotoshopPicker;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopPointerCircle = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopPointerCircle = exports.PhotoshopPointerCircle = function PhotoshopPointerCircle(_ref) {\n var hsl = _ref.hsl;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n },\n 'black-outline': {\n picker: {\n boxShadow: 'inset 0 0 0 1px #000'\n }\n }\n }, { 'black-outline': hsl.l > 0.5 });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = PhotoshopPointerCircle;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopPointerCircle = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopPointerCircle = exports.PhotoshopPointerCircle = function PhotoshopPointerCircle() {\n var styles = (0, _reactcss2.default)({\n 'default': {\n triangle: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '4px 0 4px 6px',\n borderColor: 'transparent transparent transparent #fff',\n position: 'absolute',\n top: '1px',\n left: '1px'\n },\n triangleBorder: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '5px 0 5px 8px',\n borderColor: 'transparent transparent transparent #555'\n },\n\n left: {\n Extend: 'triangleBorder',\n transform: 'translate(-13px, -4px)'\n },\n leftInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n },\n\n right: {\n Extend: 'triangleBorder',\n transform: 'translate(20px, -14px) rotate(180deg)'\n },\n rightInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.pointer },\n _react2.default.createElement(\n 'div',\n { style: styles.left },\n _react2.default.createElement('div', { style: styles.leftInside })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.right },\n _react2.default.createElement('div', { style: styles.rightInside })\n )\n );\n};\n\nexports.default = PhotoshopPointerCircle;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopButton = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopButton = exports.PhotoshopButton = function PhotoshopButton(_ref) {\n var onClick = _ref.onClick,\n label = _ref.label,\n children = _ref.children,\n active = _ref.active;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n button: {\n backgroundImage: 'linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)',\n border: '1px solid #878787',\n borderRadius: '2px',\n height: '20px',\n boxShadow: '0 1px 0 0 #EAEAEA',\n fontSize: '14px',\n color: '#000',\n lineHeight: '20px',\n textAlign: 'center',\n marginBottom: '10px',\n cursor: 'pointer'\n }\n },\n 'active': {\n button: {\n boxShadow: '0 0 0 1px #878787'\n }\n }\n }, { active: active });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.button, onClick: onClick },\n label || children\n );\n};\n\nexports.default = PhotoshopButton;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopPreviews = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopPreviews = exports.PhotoshopPreviews = function PhotoshopPreviews(_ref) {\n var rgb = _ref.rgb,\n currentColor = _ref.currentColor;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatches: {\n border: '1px solid #B3B3B3',\n borderBottom: '1px solid #F0F0F0',\n marginBottom: '2px',\n marginTop: '1px'\n },\n new: {\n height: '34px',\n background: 'rgb(' + rgb.r + ',' + rgb.g + ', ' + rgb.b + ')',\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000'\n },\n current: {\n height: '34px',\n background: currentColor,\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000'\n },\n label: {\n fontSize: '14px',\n color: '#000',\n textAlign: 'center'\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n 'div',\n { style: styles.label },\n 'new'\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatches },\n _react2.default.createElement('div', { style: styles.new }),\n _react2.default.createElement('div', { style: styles.current })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.label },\n 'current'\n )\n );\n};\n\nexports.default = PhotoshopPreviews;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Sketch = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _SketchFields = require('./SketchFields');\n\nvar _SketchFields2 = _interopRequireDefault(_SketchFields);\n\nvar _SketchPresetColors = require('./SketchPresetColors');\n\nvar _SketchPresetColors2 = _interopRequireDefault(_SketchPresetColors);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Sketch = exports.Sketch = function Sketch(_ref) {\n var width = _ref.width,\n rgb = _ref.rgb,\n hex = _ref.hex,\n hsv = _ref.hsv,\n hsl = _ref.hsl,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n disableAlpha = _ref.disableAlpha,\n presetColors = _ref.presetColors,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': _extends({\n picker: {\n width: width,\n padding: '10px 10px 0',\n boxSizing: 'initial',\n background: '#fff',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.15), 0 8px 16px rgba(0,0,0,.15)'\n },\n saturation: {\n width: '100%',\n paddingBottom: '75%',\n position: 'relative',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '3px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n controls: {\n display: 'flex'\n },\n sliders: {\n padding: '4px 0',\n flex: '1'\n },\n color: {\n width: '24px',\n height: '24px',\n position: 'relative',\n marginTop: '4px',\n marginLeft: '4px',\n borderRadius: '3px'\n },\n activeColor: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '2px',\n background: 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + rgb.a + ')',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n hue: {\n position: 'relative',\n height: '10px',\n overflow: 'hidden'\n },\n Hue: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n\n alpha: {\n position: 'relative',\n height: '10px',\n marginTop: '4px',\n overflow: 'hidden'\n },\n Alpha: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n }\n }, passedStyles),\n 'disableAlpha': {\n color: {\n height: '10px'\n },\n hue: {\n height: '10px'\n },\n alpha: {\n display: 'none'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'sketch-picker ' + className },\n _react2.default.createElement(\n 'div',\n { style: styles.saturation },\n _react2.default.createElement(_common.Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.sliders },\n _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(_common.Hue, {\n style: styles.Hue,\n hsl: hsl,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n renderers: renderers,\n onChange: onChange\n })\n )\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.color },\n _react2.default.createElement(_common.Checkboard, null),\n _react2.default.createElement('div', { style: styles.activeColor })\n )\n ),\n _react2.default.createElement(_SketchFields2.default, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n onChange: onChange,\n disableAlpha: disableAlpha\n }),\n _react2.default.createElement(_SketchPresetColors2.default, {\n colors: presetColors,\n onClick: onChange,\n onSwatchHover: onSwatchHover\n })\n );\n};\n\nSketch.propTypes = {\n disableAlpha: _propTypes2.default.bool,\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n styles: _propTypes2.default.object\n};\n\nSketch.defaultProps = {\n disableAlpha: false,\n width: 200,\n styles: {},\n presetColors: ['#D0021B', '#F5A623', '#F8E71C', '#8B572A', '#7ED321', '#417505', '#BD10E0', '#9013FE', '#4A90E2', '#50E3C2', '#B8E986', '#000000', '#4A4A4A', '#9B9B9B', '#FFFFFF']\n};\n\nexports.default = (0, _common.ColorWrap)(Sketch);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SketchFields = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable no-param-reassign */\n\nvar SketchFields = exports.SketchFields = function SketchFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n disableAlpha = _ref.disableAlpha;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n fields: {\n display: 'flex',\n paddingTop: '4px'\n },\n single: {\n flex: '1',\n paddingLeft: '6px'\n },\n alpha: {\n flex: '1',\n paddingLeft: '6px'\n },\n double: {\n flex: '2'\n },\n input: {\n width: '80%',\n padding: '4px 10% 3px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #ccc',\n fontSize: '11px'\n },\n label: {\n display: 'block',\n textAlign: 'center',\n fontSize: '11px',\n color: '#222',\n paddingTop: '3px',\n paddingBottom: '4px',\n textTransform: 'capitalize'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, { disableAlpha: disableAlpha });\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n _color2.default.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n a: rgb.a,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 100) {\n data.a = 100;\n }\n\n data.a /= 100;\n onChange({\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: data.a,\n source: 'rgb'\n }, e);\n }\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.double },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex.replace('#', ''),\n onChange: handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.single },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: rgb.r,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.single },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: rgb.g,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.single },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: rgb.b,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: Math.round(rgb.a * 100),\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '100'\n })\n )\n );\n};\n\nexports.default = SketchFields;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SketchPresetColors = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SketchPresetColors = exports.SketchPresetColors = function SketchPresetColors(_ref) {\n var colors = _ref.colors,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n colors: {\n margin: '0 -10px',\n padding: '10px 0 0 10px',\n borderTop: '1px solid #eee',\n display: 'flex',\n flexWrap: 'wrap',\n position: 'relative'\n },\n swatchWrap: {\n width: '16px',\n height: '16px',\n margin: '0 10px 10px 0'\n },\n swatch: {\n borderRadius: '3px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)'\n }\n },\n 'no-presets': {\n colors: {\n display: 'none'\n }\n }\n }, {\n 'no-presets': !colors || !colors.length\n });\n\n var handleClick = function handleClick(hex, e) {\n onClick({\n hex: hex,\n source: 'hex'\n }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.colors, className: 'flexbox-fix' },\n colors.map(function (colorObjOrString) {\n var c = typeof colorObjOrString === 'string' ? { color: colorObjOrString } : colorObjOrString;\n var key = '' + c.color + (c.title || '');\n return _react2.default.createElement(\n 'div',\n { key: key, style: styles.swatchWrap },\n _react2.default.createElement(_common.Swatch, _extends({}, c, {\n style: styles.swatch,\n onClick: handleClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), 0 0 4px ' + c.color\n }\n }))\n );\n })\n );\n};\n\nSketchPresetColors.propTypes = {\n colors: _propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n color: _propTypes2.default.string,\n title: _propTypes2.default.string\n })])).isRequired\n};\n\nexports.default = SketchPresetColors;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Slider = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _SliderSwatches = require('./SliderSwatches');\n\nvar _SliderSwatches2 = _interopRequireDefault(_SliderSwatches);\n\nvar _SliderPointer = require('./SliderPointer');\n\nvar _SliderPointer2 = _interopRequireDefault(_SliderPointer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Slider = exports.Slider = function Slider(_ref) {\n var hsl = _ref.hsl,\n onChange = _ref.onChange,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n hue: {\n height: '12px',\n position: 'relative'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n return _react2.default.createElement(\n 'div',\n { style: styles.wrap || {}, className: 'slider-picker ' + className },\n _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(_common.Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: pointer,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatches },\n _react2.default.createElement(_SliderSwatches2.default, { hsl: hsl, onClick: onChange })\n )\n );\n};\n\nSlider.propTypes = {\n styles: _propTypes2.default.object\n};\nSlider.defaultProps = {\n pointer: _SliderPointer2.default,\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Slider);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SliderSwatches = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _SliderSwatch = require('./SliderSwatch');\n\nvar _SliderSwatch2 = _interopRequireDefault(_SliderSwatch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SliderSwatches = exports.SliderSwatches = function SliderSwatches(_ref) {\n var onClick = _ref.onClick,\n hsl = _ref.hsl;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatches: {\n marginTop: '20px'\n },\n swatch: {\n boxSizing: 'border-box',\n width: '20%',\n paddingRight: '1px',\n float: 'left'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n // Acceptible difference in floating point equality\n var epsilon = 0.1;\n\n return _react2.default.createElement(\n 'div',\n { style: styles.swatches },\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.80',\n active: Math.abs(hsl.l - 0.80) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n first: true\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.65',\n active: Math.abs(hsl.l - 0.65) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.50',\n active: Math.abs(hsl.l - 0.50) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.35',\n active: Math.abs(hsl.l - 0.35) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.20',\n active: Math.abs(hsl.l - 0.20) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n last: true\n })\n ),\n _react2.default.createElement('div', { style: styles.clear })\n );\n};\n\nexports.default = SliderSwatches;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SliderSwatch = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SliderSwatch = exports.SliderSwatch = function SliderSwatch(_ref) {\n var hsl = _ref.hsl,\n offset = _ref.offset,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n active = _ref.active,\n first = _ref.first,\n last = _ref.last;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatch: {\n height: '12px',\n background: 'hsl(' + hsl.h + ', 50%, ' + offset * 100 + '%)',\n cursor: 'pointer'\n }\n },\n 'first': {\n swatch: {\n borderRadius: '2px 0 0 2px'\n }\n },\n 'last': {\n swatch: {\n borderRadius: '0 2px 2px 0'\n }\n },\n 'active': {\n swatch: {\n transform: 'scaleY(1.8)',\n borderRadius: '3.6px/2px'\n }\n }\n }, { active: active, first: first, last: last });\n\n var handleClick = function handleClick(e) {\n return onClick({\n h: hsl.h,\n s: 0.5,\n l: offset,\n source: 'hsl'\n }, e);\n };\n\n return _react2.default.createElement('div', { style: styles.swatch, onClick: handleClick });\n};\n\nexports.default = SliderSwatch;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SliderPointer = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SliderPointer = exports.SliderPointer = function SliderPointer() {\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '14px',\n height: '14px',\n borderRadius: '6px',\n transform: 'translate(-7px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = SliderPointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Swatches = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _materialColors = require('material-colors');\n\nvar material = _interopRequireWildcard(_materialColors);\n\nvar _common = require('../common');\n\nvar _SwatchesGroup = require('./SwatchesGroup');\n\nvar _SwatchesGroup2 = _interopRequireDefault(_SwatchesGroup);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Swatches = exports.Swatches = function Swatches(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n picker: {\n width: width,\n height: height\n },\n overflow: {\n height: height,\n overflowY: 'scroll'\n },\n body: {\n padding: '16px 0 6px 16px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n _color2.default.isValidHex(data) && onChange({\n hex: data,\n source: 'hex'\n }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'swatches-picker ' + className },\n _react2.default.createElement(\n _common.Raised,\n null,\n _react2.default.createElement(\n 'div',\n { style: styles.overflow },\n _react2.default.createElement(\n 'div',\n { style: styles.body },\n (0, _map2.default)(colors, function (group) {\n return _react2.default.createElement(_SwatchesGroup2.default, {\n key: group.toString(),\n group: group,\n active: hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n _react2.default.createElement('div', { style: styles.clear })\n )\n )\n )\n );\n};\n\nSwatches.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n height: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n colors: _propTypes2.default.arrayOf(_propTypes2.default.arrayOf(_propTypes2.default.string)),\n styles: _propTypes2.default.object\n\n /* eslint-disable max-len */\n};Swatches.defaultProps = {\n width: 320,\n height: 240,\n colors: [[material.red['900'], material.red['700'], material.red['500'], material.red['300'], material.red['100']], [material.pink['900'], material.pink['700'], material.pink['500'], material.pink['300'], material.pink['100']], [material.purple['900'], material.purple['700'], material.purple['500'], material.purple['300'], material.purple['100']], [material.deepPurple['900'], material.deepPurple['700'], material.deepPurple['500'], material.deepPurple['300'], material.deepPurple['100']], [material.indigo['900'], material.indigo['700'], material.indigo['500'], material.indigo['300'], material.indigo['100']], [material.blue['900'], material.blue['700'], material.blue['500'], material.blue['300'], material.blue['100']], [material.lightBlue['900'], material.lightBlue['700'], material.lightBlue['500'], material.lightBlue['300'], material.lightBlue['100']], [material.cyan['900'], material.cyan['700'], material.cyan['500'], material.cyan['300'], material.cyan['100']], [material.teal['900'], material.teal['700'], material.teal['500'], material.teal['300'], material.teal['100']], ['#194D33', material.green['700'], material.green['500'], material.green['300'], material.green['100']], [material.lightGreen['900'], material.lightGreen['700'], material.lightGreen['500'], material.lightGreen['300'], material.lightGreen['100']], [material.lime['900'], material.lime['700'], material.lime['500'], material.lime['300'], material.lime['100']], [material.yellow['900'], material.yellow['700'], material.yellow['500'], material.yellow['300'], material.yellow['100']], [material.amber['900'], material.amber['700'], material.amber['500'], material.amber['300'], material.amber['100']], [material.orange['900'], material.orange['700'], material.orange['500'], material.orange['300'], material.orange['100']], [material.deepOrange['900'], material.deepOrange['700'], material.deepOrange['500'], material.deepOrange['300'], material.deepOrange['100']], [material.brown['900'], material.brown['700'], material.brown['500'], material.brown['300'], material.brown['100']], [material.blueGrey['900'], material.blueGrey['700'], material.blueGrey['500'], material.blueGrey['300'], material.blueGrey['100']], ['#000000', '#525252', '#969696', '#D9D9D9', '#FFFFFF']],\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Swatches);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SwatchesGroup = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _SwatchesColor = require('./SwatchesColor');\n\nvar _SwatchesColor2 = _interopRequireDefault(_SwatchesColor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SwatchesGroup = exports.SwatchesGroup = function SwatchesGroup(_ref) {\n var onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n group = _ref.group,\n active = _ref.active;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n group: {\n paddingBottom: '10px',\n width: '40px',\n float: 'left',\n marginRight: '10px'\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.group },\n (0, _map2.default)(group, function (color, i) {\n return _react2.default.createElement(_SwatchesColor2.default, {\n key: color,\n color: color,\n active: color.toLowerCase() === active,\n first: i === 0,\n last: i === group.length - 1,\n onClick: onClick,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nexports.default = SwatchesGroup;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SwatchesColor = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _common = require('../common');\n\nvar _CheckIcon = require('@icons/material/CheckIcon');\n\nvar _CheckIcon2 = _interopRequireDefault(_CheckIcon);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SwatchesColor = exports.SwatchesColor = function SwatchesColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n first = _ref.first,\n last = _ref.last,\n active = _ref.active;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n color: {\n width: '40px',\n height: '24px',\n cursor: 'pointer',\n background: color,\n marginBottom: '1px'\n },\n check: {\n color: _color2.default.getContrastingColor(color),\n marginLeft: '8px',\n display: 'none'\n }\n },\n 'first': {\n color: {\n overflow: 'hidden',\n borderRadius: '2px 2px 0 0'\n }\n },\n 'last': {\n color: {\n overflow: 'hidden',\n borderRadius: '0 0 2px 2px'\n }\n },\n 'active': {\n check: {\n display: 'block'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n check: {\n color: '#333'\n }\n },\n 'transparent': {\n check: {\n color: '#333'\n }\n }\n }, {\n first: first,\n last: last,\n active: active,\n 'color-#FFFFFF': color === '#FFFFFF',\n 'transparent': color === 'transparent'\n });\n\n return _react2.default.createElement(\n _common.Swatch,\n {\n color: color,\n style: styles.color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n _react2.default.createElement(\n 'div',\n { style: styles.check },\n _react2.default.createElement(_CheckIcon2.default, null)\n )\n );\n};\n\nexports.default = SwatchesColor;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z' })\n );\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Twitter = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Twitter = exports.Twitter = function Twitter(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '0 solid rgba(0,0,0,0.25)',\n boxShadow: '0 1px 4px rgba(0,0,0,0.25)',\n borderRadius: '4px',\n position: 'relative'\n },\n body: {\n padding: '15px 9px 9px 15px'\n },\n label: {\n fontSize: '18px',\n color: '#fff'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent #fff transparent',\n position: 'absolute'\n },\n triangleShadow: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent rgba(0,0,0,.1) transparent',\n position: 'absolute'\n },\n hash: {\n background: '#F0F0F0',\n height: '30px',\n width: '30px',\n borderRadius: '4px 0 0 4px',\n float: 'left',\n color: '#98A1A4',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n input: {\n width: '100px',\n fontSize: '14px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '28px',\n boxShadow: 'inset 0 0 0 1px #F0F0F0',\n boxSizing: 'content-box',\n borderRadius: '0 4px 4px 0',\n float: 'left',\n paddingLeft: '8px'\n },\n swatch: {\n width: '30px',\n height: '30px',\n float: 'left',\n borderRadius: '4px',\n margin: '0 6px 6px 0'\n },\n clear: {\n clear: 'both'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-10px',\n left: '12px'\n },\n triangleShadow: {\n top: '-11px',\n left: '12px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-10px',\n right: '12px'\n },\n triangleShadow: {\n top: '-11px',\n right: '12px'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right'\n });\n\n var handleChange = function handleChange(hexcode, e) {\n _color2.default.isValidHex(hexcode) && onChange({\n hex: hexcode,\n source: 'hex'\n }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.card, className: 'twitter-picker ' + className },\n _react2.default.createElement('div', { style: styles.triangleShadow }),\n _react2.default.createElement('div', { style: styles.triangle }),\n _react2.default.createElement(\n 'div',\n { style: styles.body },\n (0, _map2.default)(colors, function (c, i) {\n return _react2.default.createElement(_common.Swatch, {\n key: i,\n color: c,\n hex: c,\n style: styles.swatch,\n onClick: handleChange,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n _react2.default.createElement(\n 'div',\n { style: styles.hash },\n '#'\n ),\n _react2.default.createElement(_common.EditableInput, {\n label: null,\n style: { input: styles.input },\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n _react2.default.createElement('div', { style: styles.clear })\n )\n );\n};\n\nTwitter.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n triangle: _propTypes2.default.oneOf(['hide', 'top-left', 'top-right']),\n colors: _propTypes2.default.arrayOf(_propTypes2.default.string),\n styles: _propTypes2.default.object\n};\n\nTwitter.defaultProps = {\n width: 276,\n colors: ['#FF6900', '#FCB900', '#7BDCB5', '#00D084', '#8ED1FC', '#0693E3', '#ABB8C3', '#EB144C', '#F78DA7', '#9900EF'],\n triangle: 'top-left',\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Twitter);"],"sourceRoot":""} \ No newline at end of file diff --git a/dash_daq/dash_daq.min.js b/dash_daq/dash_daq.min.js index 18119c1..7c7ea57 100644 --- a/dash_daq/dash_daq.min.js +++ b/dash_daq/dash_daq.min.js @@ -1,4 +1,4 @@ -window.dash_daq=function(e){function t(t){for(var n,o,a=t[0],i=t[1],s=0,l=[];s1?r-1:0),a=1;a0?" Additional arguments: "+o.join(", "):"")));return x(i)}return y(t,e),t}(Error),A=/^[^\S\n]*?\/\* sc-component-id:\s*(\S+)\s+\*\//gm,T=function(e){var t=""+(e||""),n=[];return t.replace(A,(function(e,t,r){return n.push({componentId:t,matchIndex:r}),e})),n.map((function(e,r){var o=e.componentId,a=e.matchIndex,i=n[r+1];return{componentId:o,cssFromDOM:i?t.slice(a,i.matchIndex):t.slice(a)}}))},D=/^\s*\/\/.*$/gm,N=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!1,compress:!1,semicolon:!0}),I=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!0,compress:!1,semicolon:!1}),L=[],R=function(e){if(-2===e){var t=L;return L=[],t}},F=i()((function(e){L.push(e)})),H=void 0,z=void 0,B=void 0,U=function(e,t,n){return t>0&&-1!==n.slice(0,t).indexOf(z)&&n.slice(t-z.length,t)!==z?"."+H:e};I.use([function(e,t,n){2===e&&n.length&&n[0].lastIndexOf(z)>0&&(n[0]=n[0].replace(B,U))},F,R]),N.use([F,R]);var V=function(e){return N("",e)};function W(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"&",o=e.join("").replace(D,""),a=t&&n?n+" "+t+" { "+o+" }":o;return H=r,z=t,B=new RegExp("\\"+z+"\\b","g"),I(n||!t?"":t,a)}var G=function(){return n.nc},Y=function(e,t,n){n&&((e[t]||(e[t]=Object.create(null)))[n]=!0)},X=function(e,t){e[t]=Object.create(null)},K=function(e){return function(t,n){return void 0!==e[t]&&e[t][n]}},$=function(e){var t="";for(var n in e)t+=Object.keys(e[n]).join(" ")+" ";return t.trim()},q=function(e){if(e.sheet)return e.sheet;for(var t=e.ownerDocument.styleSheets.length,n=0;n"+e()+""}},te=function(e,t){return function(){var n,r=((n={})[j]=$(t),n["data-styled-version"]="4.4.0",n),o=G();return o&&(r.nonce=o),l.a.createElement("style",g({},r,{dangerouslySetInnerHTML:{__html:e()}}))}},ne=function(e){return function(){return Object.keys(e)}},re=function(e,t){return e.createTextNode(J(t))},oe=function e(t,n){var r=void 0===t?Object.create(null):t,o=void 0===n?Object.create(null):n,a=function(e){var t=o[e];return void 0!==t?t:o[e]=[""]},i=function(){var e="";for(var t in o){var n=o[t][0];n&&(e+=J(t)+n)}return e};return{clone:function(){var t=function(e){var t=Object.create(null);for(var n in e)t[n]=g({},e[n]);return t}(r),n=Object.create(null);for(var a in o)n[a]=[o[a][0]];return e(t,n)},css:i,getIds:ne(o),hasNameForId:K(r),insertMarker:a,insertRules:function(e,t,n){a(e)[0]+=t.join(" "),Y(r,e,n)},removeRules:function(e){var t=o[e];void 0!==t&&(t[0]="",X(r,e))},sealed:!1,styleTag:null,toElement:te(i,r),toHTML:ee(i,r)}},ae=function(e,t,n,r,o){if(C&&!n){var a=function(e,t,n){var r=document;e?r=e.ownerDocument:t&&(r=t.ownerDocument);var o=r.createElement("style");o.setAttribute(j,""),o.setAttribute("data-styled-version","4.4.0");var a=G();if(a&&o.setAttribute("nonce",a),o.appendChild(r.createTextNode("")),e&&!t)e.appendChild(o);else{if(!t||!e||!t.parentNode)throw new M(6);t.parentNode.insertBefore(o,n?t:t.nextSibling)}return o}(e,t,r);return P?function(e,t){var n=Object.create(null),r=Object.create(null),o=void 0!==t,a=!1,i=function(t){var o=r[t];return void 0!==o?o:(r[t]=re(e.ownerDocument,t),e.appendChild(r[t]),n[t]=Object.create(null),r[t])},s=function(){var e="";for(var t in r)e+=r[t].data;return e};return{clone:function(){throw new M(5)},css:s,getIds:ne(r),hasNameForId:K(n),insertMarker:i,insertRules:function(e,r,s){for(var l=i(e),c=[],u=r.length,f=0;f0&&(a=!0,t().insertRules(e+"-import",c))},removeRules:function(i){var s=r[i];if(void 0!==s){var l=re(e.ownerDocument,i);e.replaceChild(l,s),r[i]=l,X(n,i),o&&a&&t().removeRules(i+"-import")}},sealed:!1,styleTag:e,toElement:te(s,n),toHTML:ee(s,n)}}(a,o):function(e,t){var n=Object.create(null),r=Object.create(null),o=[],a=void 0!==t,i=!1,s=function(e){var t=r[e];return void 0!==t?t:(r[e]=o.length,o.push(0),X(n,e),r[e])},l=function(){var t=q(e).cssRules,n="";for(var a in r){n+=J(a);for(var i=r[a],s=Q(o,i),l=s-o[i];l0&&(i=!0,t().insertRules(r+"-import",h)),o[u]+=d,Y(n,r,c)},removeRules:function(s){var l=r[s];if(void 0!==l&&!1!==e.isConnected){var c=o[l];!function(e,t,n){for(var r=t-n,o=t;o>r;o-=1)e.deleteRule(o)}(q(e),Q(o,l)-1,c),o[l]=0,X(n,s),a&&i&&t().removeRules(s+"-import")}},sealed:!1,styleTag:e,toElement:te(l,n),toHTML:ee(l,n)}}(a,o)}return oe()},ie=/\s+/,se=void 0;se=C?P?40:1e3:-1;var le=0,ce=void 0,ue=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C?document.head:null,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];b(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var n=t.tags[0];return t.importRuleTag=ae(t.target,n?n.styleTag:null,t.forceServer,!0)},le+=1,this.id=le,this.forceServer=r,this.target=r?null:n,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!C||this.forceServer)return this;var e=[],t=[],n=!1,r=document.querySelectorAll("style["+j+'][data-styled-version="4.4.0"]'),o=r.length;if(!o)return this;for(var a=0;a0&&void 0!==arguments[0]&&arguments[0];ce=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map((function(e){for(var n=e.getIds(),r=e.clone(),o=0;o1?t-1:0),r=1;r=4;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),n-=4,++o;switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+((1540483477*(r>>>16)&65535)<<16)}return((r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16))^r>>>15)>>>0}var xe=function(e){return String.fromCharCode(e+(e>25?39:97))};function we(e){var t="",n=void 0;for(n=e;n>52;n=Math.floor(n/52))t=xe(n%52)+t;return xe(n%52)+t}function Oe(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:k,r=!!n&&e.theme===n.theme,o=e.theme&&!r?e.theme:t||n.theme;return o},je=/[[\].#*$><+~=|^:(),"'`-]+/g,Ce=/(^-|-$)/g;function Pe(e){return e.replace(je,"-").replace(Ce,"")}function Me(e){return"string"==typeof e&&!0}var Ae={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},Te={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},De=((ke={})[u.ForwardRef]={$$typeof:!0,render:!0},ke),Ne=Object.defineProperty,Ie=Object.getOwnPropertyNames,Le=Object.getOwnPropertySymbols,Re=void 0===Le?function(){return[]}:Le,Fe=Object.getOwnPropertyDescriptor,He=Object.getPrototypeOf,ze=Object.prototype,Be=Array.prototype;function Ue(e,t,n){if("string"!=typeof t){var r=He(t);r&&r!==ze&&Ue(e,r,n);for(var o=Be.concat(Ie(t),Re(t)),a=De[e.$$typeof]||Ae,i=De[t.$$typeof]||Ae,s=o.length,l=void 0,c=void 0;s--;)if(c=o[s],!(Te[c]||n&&n[c]||i&&i[c]||a&&a[c])&&(l=Fe(t,c)))try{Ne(e,c,l)}catch(e){}return e}return e}var Ve=Object(s.createContext)(),We=Ve.Consumer,Ge=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext.bind(r)),r.renderInner=r.renderInner.bind(r),r}return y(t,e),t.prototype.render=function(){return this.props.children?l.a.createElement(Ve.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return l.a.createElement(Ve.Provider,{value:t},this.props.children)},t.prototype.getTheme=function(e,t){if(E(e))return e(t);if(null===e||Array.isArray(e)||"object"!==(void 0===e?"undefined":m(e)))throw new M(8);return g({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)},t}(s.Component),Ye=(function(){function e(){b(this,e),this.masterSheet=ue.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new M(2);return l.a.createElement(Ke,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new M(3)}}(),Object(s.createContext)()),Xe=Ye.Consumer,Ke=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext),r}return y(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new ue(t);throw new M(4)},t.prototype.render=function(){var e=this.props,t=e.children,n=e.sheet,r=e.target;return l.a.createElement(Ye.Provider,{value:this.getContext(n,r)},t)},t}(s.Component),$e={};var qe=function(e){function t(){b(this,t);var n=x(this,e.call(this));return n.attrs={},n.renderOuter=n.renderOuter.bind(n),n.renderInner=n.renderInner.bind(n),n}return y(t,e),t.prototype.render=function(){return l.a.createElement(Xe,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ue.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():l.a.createElement(We,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,n=t.componentStyle,r=t.defaultProps,o=(t.displayName,t.foldedComponentIds),a=t.styledComponentId,i=t.target,l=(t.usesTheme,void 0),c=void 0;n.isStatic?l=this.generateAndInjectStyles(k,this.props):(c=_e(this.props,e,r),l=this.generateAndInjectStyles(c||k,this.props));var u=this.props.as||this.attrs.as||i,f=Me(u),d={},h=g({},this.props,this.attrs),m=void 0;for(m in h)"forwardedComponent"!==m&&"as"!==m&&("forwardedRef"===m?d.ref=h[m]:"forwardedAs"===m?d.as=h[m]:f&&!Object(p.a)(m)||(d[m]=h[m]));return this.props.style&&this.attrs.style&&(d.style=g({},this.attrs.style,this.props.style)),d.className=Array.prototype.concat(o,a,l!==a?l:null,this.props.className,this.attrs.className).filter(Boolean).join(" "),Object(s.createElement)(u,d)},t.prototype.buildExecutionContext=function(e,t,n){var r=this,o=g({},t,{theme:e});return n.length?(this.attrs={},n.forEach((function(e){var t,n=e,a=!1,i=void 0,s=void 0;for(s in E(n)&&(n=n(o),a=!0),n)i=n[s],a||!E(i)||(t=i)&&t.prototype&&t.prototype.isReactComponent||_(i)||(i=i(o)),r.attrs[s]=i,o[s]=i})),o):o},t.prototype.generateAndInjectStyles=function(e,t){var n=t.forwardedComponent,r=n.attrs,o=n.componentStyle;n.warnTooManyClasses;return o.isStatic&&!r.length?o.generateAndInjectStyles(k,this.styleSheet):o.generateAndInjectStyles(this.buildExecutionContext(e,t,r),this.styleSheet)},t}(s.Component);function Ze(e,t,n){var r=_(e),o=!Me(e),a=t.displayName,i=void 0===a?function(e){return Me(e)?"styled."+e:"Styled("+S(e)+")"}(e):a,s=t.componentId,c=void 0===s?function(e,t,n){var r="string"!=typeof t?"sc":Pe(t),o=($e[r]||0)+1;$e[r]=o;var a=r+"-"+e.generateName(r+o);return n?n+"-"+a:a}(Se,t.displayName,t.parentComponentId):s,u=t.ParentComponent,f=void 0===u?qe:u,p=t.attrs,h=void 0===p?O:p,m=t.displayName&&t.componentId?Pe(t.displayName)+"-"+t.componentId:t.componentId||c,b=r&&e.attrs?Array.prototype.concat(e.attrs,h).filter(Boolean):h,v=new Se(r?e.componentStyle.rules.concat(n):n,b,m),y=void 0,x=function(e,t){return l.a.createElement(f,g({},e,{forwardedComponent:y,forwardedRef:t}))};return x.displayName=i,(y=l.a.forwardRef(x)).displayName=i,y.attrs=b,y.componentStyle=v,y.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):O,y.styledComponentId=m,y.target=r?e.target:e,y.withComponent=function(e){var r=t.componentId,o=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(t,["componentId"]),a=r&&r+"-"+(Me(e)?e:Pe(S(e)));return Ze(e,g({},o,{attrs:b,componentId:a,ParentComponent:f}),n)},Object.defineProperty(y,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Object(d.a)(e.defaultProps,t):t}}),y.toString=function(){return"."+y.styledComponentId},o&&Ue(y,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),y}var Je=function(e){return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:k;if(!Object(u.isValidElementType)(n))throw new M(1,String(n));var o=function(){return t(n,r,ge.apply(void 0,arguments))};return o.withConfig=function(o){return e(t,n,g({},r,o))},o.attrs=function(o){return e(t,n,g({},r,{attrs:Array.prototype.concat(r.attrs,o).filter(Boolean)}))},o}(Ze,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){Je[e]=Je(e)}));!function(){function e(t,n){b(this,e),this.rules=t,this.componentId=n,this.isStatic=Oe(t,O),ue.master.hasId(n)||ue.master.deferredInject(n,[])}e.prototype.createStyles=function(e,t){var n=W(ve(this.rules,e,t),"");t.inject(this.componentId,n)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)}}();C&&(window.scCGSHMRCache={});var Qe=function(e){var t=l.a.forwardRef((function(t,n){return l.a.createElement(We,null,(function(r){var o=e.defaultProps,a=_e(t,r,o);return l.a.createElement(e,g({},t,{theme:a,ref:n}))}))}));return Ue(t,e),t.displayName="WithTheme("+S(e)+")",t};t.c=Je}).call(this,n(63))},function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a})),n.d(t,"e",(function(){return i})),n.d(t,"d",(function(){return s}));var r={PRIMARY:"#ABE2FB",SECONDARY:"#E6E6E6",DARKER_PRIMARY:"#87ceeb",OFF_WHITE:"#15181A",GREY:"#D3D3D3",RED:"#FF5E5E",DARK_GREY:"#535D63"},o=270,a=Math.PI/180,i={primary:r.PRIMARY,secondary:r.SECONDARY,detail:r.GREY,dark:!1},s={primary:r.PRIMARY,secondary:r.DARK_GREY,detail:r.DARK_GREY,dark:!0}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return a}));var r=n(30),o=function(e,t){return"daq-"+e+(t&&t.dark?"--dark":"--light")},a=function(e){return Object(r.a)(["className","id","setProps","style"],e)}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(71),a=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,a.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(95),a=(r=o)&&r.__esModule?r:{default:r};t.default=a.default||function(e){for(var t=1;t1?r-1:0),a=1;a0?" Additional arguments: "+o.join(", "):"")));return x(i)}return y(t,e),t}(Error),A=/^[^\S\n]*?\/\* sc-component-id:\s*(\S+)\s+\*\//gm,T=function(e){var t=""+(e||""),n=[];return t.replace(A,(function(e,t,r){return n.push({componentId:t,matchIndex:r}),e})),n.map((function(e,r){var o=e.componentId,a=e.matchIndex,i=n[r+1];return{componentId:o,cssFromDOM:i?t.slice(a,i.matchIndex):t.slice(a)}}))},D=/^\s*\/\/.*$/gm,N=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!1,compress:!1,semicolon:!0}),I=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!0,compress:!1,semicolon:!1}),L=[],R=function(e){if(-2===e){var t=L;return L=[],t}},F=i()((function(e){L.push(e)})),H=void 0,z=void 0,B=void 0,U=function(e,t,n){return t>0&&-1!==n.slice(0,t).indexOf(z)&&n.slice(t-z.length,t)!==z?"."+H:e};I.use([function(e,t,n){2===e&&n.length&&n[0].lastIndexOf(z)>0&&(n[0]=n[0].replace(B,U))},F,R]),N.use([F,R]);var V=function(e){return N("",e)};function W(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"&",o=e.join("").replace(D,""),a=t&&n?n+" "+t+" { "+o+" }":o;return H=r,z=t,B=new RegExp("\\"+z+"\\b","g"),I(n||!t?"":t,a)}var G=function(){return n.nc},Y=function(e,t,n){n&&((e[t]||(e[t]=Object.create(null)))[n]=!0)},X=function(e,t){e[t]=Object.create(null)},K=function(e){return function(t,n){return void 0!==e[t]&&e[t][n]}},$=function(e){var t="";for(var n in e)t+=Object.keys(e[n]).join(" ")+" ";return t.trim()},q=function(e){if(e.sheet)return e.sheet;for(var t=e.ownerDocument.styleSheets.length,n=0;n"+e()+""}},te=function(e,t){return function(){var n,r=((n={})[j]=$(t),n["data-styled-version"]="4.4.0",n),o=G();return o&&(r.nonce=o),l.a.createElement("style",g({},r,{dangerouslySetInnerHTML:{__html:e()}}))}},ne=function(e){return function(){return Object.keys(e)}},re=function(e,t){return e.createTextNode(J(t))},oe=function e(t,n){var r=void 0===t?Object.create(null):t,o=void 0===n?Object.create(null):n,a=function(e){var t=o[e];return void 0!==t?t:o[e]=[""]},i=function(){var e="";for(var t in o){var n=o[t][0];n&&(e+=J(t)+n)}return e};return{clone:function(){var t=function(e){var t=Object.create(null);for(var n in e)t[n]=g({},e[n]);return t}(r),n=Object.create(null);for(var a in o)n[a]=[o[a][0]];return e(t,n)},css:i,getIds:ne(o),hasNameForId:K(r),insertMarker:a,insertRules:function(e,t,n){a(e)[0]+=t.join(" "),Y(r,e,n)},removeRules:function(e){var t=o[e];void 0!==t&&(t[0]="",X(r,e))},sealed:!1,styleTag:null,toElement:te(i,r),toHTML:ee(i,r)}},ae=function(e,t,n,r,o){if(C&&!n){var a=function(e,t,n){var r=document;e?r=e.ownerDocument:t&&(r=t.ownerDocument);var o=r.createElement("style");o.setAttribute(j,""),o.setAttribute("data-styled-version","4.4.0");var a=G();if(a&&o.setAttribute("nonce",a),o.appendChild(r.createTextNode("")),e&&!t)e.appendChild(o);else{if(!t||!e||!t.parentNode)throw new M(6);t.parentNode.insertBefore(o,n?t:t.nextSibling)}return o}(e,t,r);return P?function(e,t){var n=Object.create(null),r=Object.create(null),o=void 0!==t,a=!1,i=function(t){var o=r[t];return void 0!==o?o:(r[t]=re(e.ownerDocument,t),e.appendChild(r[t]),n[t]=Object.create(null),r[t])},s=function(){var e="";for(var t in r)e+=r[t].data;return e};return{clone:function(){throw new M(5)},css:s,getIds:ne(r),hasNameForId:K(n),insertMarker:i,insertRules:function(e,r,s){for(var l=i(e),c=[],u=r.length,f=0;f0&&(a=!0,t().insertRules(e+"-import",c))},removeRules:function(i){var s=r[i];if(void 0!==s){var l=re(e.ownerDocument,i);e.replaceChild(l,s),r[i]=l,X(n,i),o&&a&&t().removeRules(i+"-import")}},sealed:!1,styleTag:e,toElement:te(s,n),toHTML:ee(s,n)}}(a,o):function(e,t){var n=Object.create(null),r=Object.create(null),o=[],a=void 0!==t,i=!1,s=function(e){var t=r[e];return void 0!==t?t:(r[e]=o.length,o.push(0),X(n,e),r[e])},l=function(){var t=q(e).cssRules,n="";for(var a in r){n+=J(a);for(var i=r[a],s=Q(o,i),l=s-o[i];l0&&(i=!0,t().insertRules(r+"-import",h)),o[u]+=d,Y(n,r,c)},removeRules:function(s){var l=r[s];if(void 0!==l&&!1!==e.isConnected){var c=o[l];!function(e,t,n){for(var r=t-n,o=t;o>r;o-=1)e.deleteRule(o)}(q(e),Q(o,l)-1,c),o[l]=0,X(n,s),a&&i&&t().removeRules(s+"-import")}},sealed:!1,styleTag:e,toElement:te(l,n),toHTML:ee(l,n)}}(a,o)}return oe()},ie=/\s+/,se=void 0;se=C?P?40:1e3:-1;var le=0,ce=void 0,ue=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C?document.head:null,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];b(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var n=t.tags[0];return t.importRuleTag=ae(t.target,n?n.styleTag:null,t.forceServer,!0)},le+=1,this.id=le,this.forceServer=r,this.target=r?null:n,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!C||this.forceServer)return this;var e=[],t=[],n=!1,r=document.querySelectorAll("style["+j+'][data-styled-version="4.4.0"]'),o=r.length;if(!o)return this;for(var a=0;a0&&void 0!==arguments[0]&&arguments[0];ce=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map((function(e){for(var n=e.getIds(),r=e.clone(),o=0;o1?t-1:0),r=1;r=4;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),n-=4,++o;switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+((1540483477*(r>>>16)&65535)<<16)}return((r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16))^r>>>15)>>>0}var xe=function(e){return String.fromCharCode(e+(e>25?39:97))};function we(e){var t="",n=void 0;for(n=e;n>52;n=Math.floor(n/52))t=xe(n%52)+t;return xe(n%52)+t}function Oe(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:k,r=!!n&&e.theme===n.theme,o=e.theme&&!r?e.theme:t||n.theme;return o},je=/[[\].#*$><+~=|^:(),"'`-]+/g,Ce=/(^-|-$)/g;function Pe(e){return e.replace(je,"-").replace(Ce,"")}function Me(e){return"string"==typeof e&&!0}var Ae={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},Te={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},De=((ke={})[u.ForwardRef]={$$typeof:!0,render:!0},ke),Ne=Object.defineProperty,Ie=Object.getOwnPropertyNames,Le=Object.getOwnPropertySymbols,Re=void 0===Le?function(){return[]}:Le,Fe=Object.getOwnPropertyDescriptor,He=Object.getPrototypeOf,ze=Object.prototype,Be=Array.prototype;function Ue(e,t,n){if("string"!=typeof t){var r=He(t);r&&r!==ze&&Ue(e,r,n);for(var o=Be.concat(Ie(t),Re(t)),a=De[e.$$typeof]||Ae,i=De[t.$$typeof]||Ae,s=o.length,l=void 0,c=void 0;s--;)if(c=o[s],!(Te[c]||n&&n[c]||i&&i[c]||a&&a[c])&&(l=Fe(t,c)))try{Ne(e,c,l)}catch(e){}return e}return e}var Ve=Object(s.createContext)(),We=Ve.Consumer,Ge=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext.bind(r)),r.renderInner=r.renderInner.bind(r),r}return y(t,e),t.prototype.render=function(){return this.props.children?l.a.createElement(Ve.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return l.a.createElement(Ve.Provider,{value:t},this.props.children)},t.prototype.getTheme=function(e,t){if(E(e))return e(t);if(null===e||Array.isArray(e)||"object"!==(void 0===e?"undefined":m(e)))throw new M(8);return g({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)},t}(s.Component),Ye=(function(){function e(){b(this,e),this.masterSheet=ue.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new M(2);return l.a.createElement(Ke,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new M(3)}}(),Object(s.createContext)()),Xe=Ye.Consumer,Ke=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext),r}return y(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new ue(t);throw new M(4)},t.prototype.render=function(){var e=this.props,t=e.children,n=e.sheet,r=e.target;return l.a.createElement(Ye.Provider,{value:this.getContext(n,r)},t)},t}(s.Component),$e={};var qe=function(e){function t(){b(this,t);var n=x(this,e.call(this));return n.attrs={},n.renderOuter=n.renderOuter.bind(n),n.renderInner=n.renderInner.bind(n),n}return y(t,e),t.prototype.render=function(){return l.a.createElement(Xe,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ue.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():l.a.createElement(We,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,n=t.componentStyle,r=t.defaultProps,o=(t.displayName,t.foldedComponentIds),a=t.styledComponentId,i=t.target,l=(t.usesTheme,void 0),c=void 0;n.isStatic?l=this.generateAndInjectStyles(k,this.props):(c=_e(this.props,e,r),l=this.generateAndInjectStyles(c||k,this.props));var u=this.props.as||this.attrs.as||i,f=Me(u),d={},h=g({},this.props,this.attrs),m=void 0;for(m in h)"forwardedComponent"!==m&&"as"!==m&&("forwardedRef"===m?d.ref=h[m]:"forwardedAs"===m?d.as=h[m]:f&&!Object(p.a)(m)||(d[m]=h[m]));return this.props.style&&this.attrs.style&&(d.style=g({},this.attrs.style,this.props.style)),d.className=Array.prototype.concat(o,a,l!==a?l:null,this.props.className,this.attrs.className).filter(Boolean).join(" "),Object(s.createElement)(u,d)},t.prototype.buildExecutionContext=function(e,t,n){var r=this,o=g({},t,{theme:e});return n.length?(this.attrs={},n.forEach((function(e){var t,n=e,a=!1,i=void 0,s=void 0;for(s in E(n)&&(n=n(o),a=!0),n)i=n[s],a||!E(i)||(t=i)&&t.prototype&&t.prototype.isReactComponent||_(i)||(i=i(o)),r.attrs[s]=i,o[s]=i})),o):o},t.prototype.generateAndInjectStyles=function(e,t){var n=t.forwardedComponent,r=n.attrs,o=n.componentStyle;n.warnTooManyClasses;return o.isStatic&&!r.length?o.generateAndInjectStyles(k,this.styleSheet):o.generateAndInjectStyles(this.buildExecutionContext(e,t,r),this.styleSheet)},t}(s.Component);function Ze(e,t,n){var r=_(e),o=!Me(e),a=t.displayName,i=void 0===a?function(e){return Me(e)?"styled."+e:"Styled("+S(e)+")"}(e):a,s=t.componentId,c=void 0===s?function(e,t,n){var r="string"!=typeof t?"sc":Pe(t),o=($e[r]||0)+1;$e[r]=o;var a=r+"-"+e.generateName(r+o);return n?n+"-"+a:a}(Se,t.displayName,t.parentComponentId):s,u=t.ParentComponent,f=void 0===u?qe:u,p=t.attrs,h=void 0===p?O:p,m=t.displayName&&t.componentId?Pe(t.displayName)+"-"+t.componentId:t.componentId||c,b=r&&e.attrs?Array.prototype.concat(e.attrs,h).filter(Boolean):h,v=new Se(r?e.componentStyle.rules.concat(n):n,b,m),y=void 0,x=function(e,t){return l.a.createElement(f,g({},e,{forwardedComponent:y,forwardedRef:t}))};return x.displayName=i,(y=l.a.forwardRef(x)).displayName=i,y.attrs=b,y.componentStyle=v,y.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):O,y.styledComponentId=m,y.target=r?e.target:e,y.withComponent=function(e){var r=t.componentId,o=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(t,["componentId"]),a=r&&r+"-"+(Me(e)?e:Pe(S(e)));return Ze(e,g({},o,{attrs:b,componentId:a,ParentComponent:f}),n)},Object.defineProperty(y,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Object(d.a)(e.defaultProps,t):t}}),y.toString=function(){return"."+y.styledComponentId},o&&Ue(y,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),y}var Je=function(e){return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:k;if(!Object(u.isValidElementType)(n))throw new M(1,String(n));var o=function(){return t(n,r,ge.apply(void 0,arguments))};return o.withConfig=function(o){return e(t,n,g({},r,o))},o.attrs=function(o){return e(t,n,g({},r,{attrs:Array.prototype.concat(r.attrs,o).filter(Boolean)}))},o}(Ze,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){Je[e]=Je(e)}));!function(){function e(t,n){b(this,e),this.rules=t,this.componentId=n,this.isStatic=Oe(t,O),ue.master.hasId(n)||ue.master.deferredInject(n,[])}e.prototype.createStyles=function(e,t){var n=W(ve(this.rules,e,t),"");t.inject(this.componentId,n)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)}}();C&&(window.scCGSHMRCache={});var Qe=function(e){var t=l.a.forwardRef((function(t,n){return l.a.createElement(We,null,(function(r){var o=e.defaultProps,a=_e(t,r,o);return l.a.createElement(e,g({},t,{theme:a,ref:n}))}))}));return Ue(t,e),t.displayName="WithTheme("+S(e)+")",t};t.c=Je}).call(this,n(63))},function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a})),n.d(t,"e",(function(){return i})),n.d(t,"d",(function(){return s}));var r={PRIMARY:"#ABE2FB",SECONDARY:"#E6E6E6",DARKER_PRIMARY:"#87ceeb",OFF_WHITE:"#15181A",GREY:"#D3D3D3",RED:"#FF5E5E",DARK_GREY:"#535D63"},o=270,a=Math.PI/180,i={primary:r.PRIMARY,secondary:r.SECONDARY,detail:r.GREY,dark:!1},s={primary:r.PRIMARY,secondary:r.DARK_GREY,detail:r.DARK_GREY,dark:!0}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return a}));var r=n(30),o=function(e,t){return"daq-"+e+(t&&t.dark?"--dark":"--light")},a=function(e){return Object(r.a)(["className","id","setProps","style"],e)}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(71),a=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,a.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(95),a=(r=o)&&r.__esModule?r:{default:r};t.default=a.default||function(e){for(var t=1;t= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n// \nvar isPlainObject = (function (x) {\n return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x.constructor === Object;\n});\n\n// \nvar EMPTY_ARRAY = Object.freeze([]);\nvar EMPTY_OBJECT = Object.freeze({});\n\n// \nfunction isFunction(test) {\n return typeof test === 'function';\n}\n\n// \n\nfunction getComponentName(target) {\n return (process.env.NODE_ENV !== 'production' ? typeof target === 'string' && target : false) || target.displayName || target.name || 'Component';\n}\n\n// \nfunction isStatelessFunction(test) {\n return typeof test === 'function' && !(test.prototype && test.prototype.isReactComponent);\n}\n\n// \nfunction isStyledComponent(target) {\n return target && typeof target.styledComponentId === 'string';\n}\n\n// \n\nvar SC_ATTR = typeof process !== 'undefined' && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || 'data-styled';\n\nvar SC_VERSION_ATTR = 'data-styled-version';\n\nvar SC_STREAM_ATTR = 'data-styled-streamed';\n\nvar IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\n\nvar DISABLE_SPEEDY = typeof SC_DISABLE_SPEEDY === 'boolean' && SC_DISABLE_SPEEDY || typeof process !== 'undefined' && (process.env.REACT_APP_SC_DISABLE_SPEEDY || process.env.SC_DISABLE_SPEEDY) || process.env.NODE_ENV !== 'production';\n\n// Shared empty execution context when generating static styles\nvar STATIC_EXECUTION_CONTEXT = {};\n\n// \n\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n */\nvar ERRORS = process.env.NODE_ENV !== 'production' ? {\n \"1\": \"Cannot create styled-component for component: %s.\\n\\n\",\n \"2\": \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n \"3\": \"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",\n \"4\": \"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",\n \"5\": \"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",\n \"6\": \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n \"7\": \"ThemeProvider: Please return an object from your \\\"theme\\\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n\",\n \"8\": \"ThemeProvider: Please make your \\\"theme\\\" prop an object.\\n\\n\",\n \"9\": \"Missing document ``\\n\\n\",\n \"10\": \"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",\n \"11\": \"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",\n \"12\": \"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",\n \"13\": \"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\"\n} : {};\n\n/**\n * super basic version of sprintf\n */\nfunction format() {\n var a = arguments.length <= 0 ? undefined : arguments[0];\n var b = [];\n\n for (var c = 1, len = arguments.length; c < len; c += 1) {\n b.push(arguments.length <= c ? undefined : arguments[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n\n return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n */\n\nvar StyledComponentsError = function (_Error) {\n inherits(StyledComponentsError, _Error);\n\n function StyledComponentsError(code) {\n classCallCheck(this, StyledComponentsError);\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV === 'production') {\n var _this = possibleConstructorReturn(this, _Error.call(this, 'An error occurred. See https://github.com/styled-components/styled-components/blob/master/packages/styled-components/src/utils/errors.md#' + code + ' for more information.' + (interpolations.length > 0 ? ' Additional arguments: ' + interpolations.join(', ') : '')));\n } else {\n var _this = possibleConstructorReturn(this, _Error.call(this, format.apply(undefined, [ERRORS[code]].concat(interpolations)).trim()));\n }\n return possibleConstructorReturn(_this);\n }\n\n return StyledComponentsError;\n}(Error);\n\n// \nvar SC_COMPONENT_ID = /^[^\\S\\n]*?\\/\\* sc-component-id:\\s*(\\S+)\\s+\\*\\//gm;\n\nvar extractComps = (function (maybeCSS) {\n var css = '' + (maybeCSS || ''); // Definitely a string, and a clone\n var existingComponents = [];\n css.replace(SC_COMPONENT_ID, function (match, componentId, matchIndex) {\n existingComponents.push({ componentId: componentId, matchIndex: matchIndex });\n return match;\n });\n return existingComponents.map(function (_ref, i) {\n var componentId = _ref.componentId,\n matchIndex = _ref.matchIndex;\n\n var nextComp = existingComponents[i + 1];\n var cssFromDOM = nextComp ? css.slice(matchIndex, nextComp.matchIndex) : css.slice(matchIndex);\n return { componentId: componentId, cssFromDOM: cssFromDOM };\n });\n});\n\n// \n\nvar COMMENT_REGEX = /^\\s*\\/\\/.*$/gm;\n\n// NOTE: This stylis instance is only used to split rules from SSR'd style tags\nvar stylisSplitter = new Stylis({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: false,\n compress: false,\n semicolon: true\n});\n\nvar stylis = new Stylis({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: true,\n compress: false,\n semicolon: false // NOTE: This means \"autocomplete missing semicolons\"\n});\n\n// Wrap `insertRulePlugin to build a list of rules,\n// and then make our own plugin to return the rules. This\n// makes it easier to hook into the existing SSR architecture\n\nvar parsingRules = [];\n\n// eslint-disable-next-line consistent-return\nvar returnRulesPlugin = function returnRulesPlugin(context) {\n if (context === -2) {\n var parsedRules = parsingRules;\n parsingRules = [];\n return parsedRules;\n }\n};\n\nvar parseRulesPlugin = _insertRulePlugin(function (rule) {\n parsingRules.push(rule);\n});\n\nvar _componentId = void 0;\nvar _selector = void 0;\nvar _selectorRegexp = void 0;\n\nvar selfReferenceReplacer = function selfReferenceReplacer(match, offset, string) {\n if (\n // the first self-ref is always untouched\n offset > 0 &&\n // there should be at least two self-refs to do a replacement (.b > .b)\n string.slice(0, offset).indexOf(_selector) !== -1 &&\n // no consecutive self refs (.b.b); that is a precedence boost and treated differently\n string.slice(offset - _selector.length, offset) !== _selector) {\n return '.' + _componentId;\n }\n\n return match;\n};\n\n/**\n * When writing a style like\n *\n * & + & {\n * color: red;\n * }\n *\n * The second ampersand should be a reference to the static component class. stylis\n * has no knowledge of static class so we have to intelligently replace the base selector.\n */\nvar selfReferenceReplacementPlugin = function selfReferenceReplacementPlugin(context, _, selectors) {\n if (context === 2 && selectors.length && selectors[0].lastIndexOf(_selector) > 0) {\n // eslint-disable-next-line no-param-reassign\n selectors[0] = selectors[0].replace(_selectorRegexp, selfReferenceReplacer);\n }\n};\n\nstylis.use([selfReferenceReplacementPlugin, parseRulesPlugin, returnRulesPlugin]);\nstylisSplitter.use([parseRulesPlugin, returnRulesPlugin]);\n\nvar splitByRules = function splitByRules(css) {\n return stylisSplitter('', css);\n};\n\nfunction stringifyRules(rules, selector, prefix) {\n var componentId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '&';\n\n var flatCSS = rules.join('').replace(COMMENT_REGEX, ''); // replace JS comments\n\n var cssStr = selector && prefix ? prefix + ' ' + selector + ' { ' + flatCSS + ' }' : flatCSS;\n\n // stylis has no concept of state to be passed to plugins\n // but since JS is single=threaded, we can rely on that to ensure\n // these properties stay in sync with the current stylis run\n _componentId = componentId;\n _selector = selector;\n _selectorRegexp = new RegExp('\\\\' + _selector + '\\\\b', 'g');\n\n return stylis(prefix || !selector ? '' : selector, cssStr);\n}\n\n// \n/* eslint-disable camelcase, no-undef */\n\nvar getNonce = (function () {\n return typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n});\n\n// \n/* These are helpers for the StyleTags to keep track of the injected\n * rule names for each (component) ID that they're keeping track of.\n * They're crucial for detecting whether a name has already been\n * injected.\n * (This excludes rehydrated names) */\n\n/* adds a new ID:name pairing to a names dictionary */\nvar addNameForId = function addNameForId(names, id, name) {\n if (name) {\n // eslint-disable-next-line no-param-reassign\n var namesForId = names[id] || (names[id] = Object.create(null));\n namesForId[name] = true;\n }\n};\n\n/* resets an ID entirely by overwriting it in the dictionary */\nvar resetIdNames = function resetIdNames(names, id) {\n // eslint-disable-next-line no-param-reassign\n names[id] = Object.create(null);\n};\n\n/* factory for a names dictionary checking the existance of an ID:name pairing */\nvar hasNameForId = function hasNameForId(names) {\n return function (id, name) {\n return names[id] !== undefined && names[id][name];\n };\n};\n\n/* stringifies names for the html/element output */\nvar stringifyNames = function stringifyNames(names) {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in names) {\n str += Object.keys(names[id]).join(' ') + ' ';\n }\n return str.trim();\n};\n\n/* clones the nested names dictionary */\nvar cloneNames = function cloneNames(names) {\n var clone = Object.create(null);\n // eslint-disable-next-line guard-for-in\n for (var id in names) {\n clone[id] = _extends({}, names[id]);\n }\n return clone;\n};\n\n// \n\n/* These are helpers that deal with the insertRule (aka speedy) API\n * They are used in the StyleTags and specifically the speedy tag\n */\n\n/* retrieve a sheet for a given style tag */\nvar sheetForTag = function sheetForTag(tag) {\n // $FlowFixMe\n if (tag.sheet) return tag.sheet;\n\n /* Firefox quirk requires us to step through all stylesheets to find one owned by the given tag */\n var size = tag.ownerDocument.styleSheets.length;\n for (var i = 0; i < size; i += 1) {\n var sheet = tag.ownerDocument.styleSheets[i];\n // $FlowFixMe\n if (sheet.ownerNode === tag) return sheet;\n }\n\n /* we should always be able to find a tag */\n throw new StyledComponentsError(10);\n};\n\n/* insert a rule safely and return whether it was actually injected */\nvar safeInsertRule = function safeInsertRule(sheet, cssRule, index) {\n /* abort early if cssRule string is falsy */\n if (!cssRule) return false;\n\n var maxIndex = sheet.cssRules.length;\n\n try {\n /* use insertRule and cap passed index with maxIndex (no of cssRules) */\n sheet.insertRule(cssRule, index <= maxIndex ? index : maxIndex);\n } catch (err) {\n /* any error indicates an invalid rule */\n return false;\n }\n\n return true;\n};\n\n/* deletes `size` rules starting from `removalIndex` */\nvar deleteRules = function deleteRules(sheet, removalIndex, size) {\n var lowerBound = removalIndex - size;\n for (var i = removalIndex; i > lowerBound; i -= 1) {\n sheet.deleteRule(i);\n }\n};\n\n// \n\n/* this marker separates component styles and is important for rehydration */\nvar makeTextMarker = function makeTextMarker(id) {\n return '\\n/* sc-component-id: ' + id + ' */\\n';\n};\n\n/* add up all numbers in array up until and including the index */\nvar addUpUntilIndex = function addUpUntilIndex(sizes, index) {\n var totalUpToIndex = 0;\n for (var i = 0; i <= index; i += 1) {\n totalUpToIndex += sizes[i];\n }\n\n return totalUpToIndex;\n};\n\n/* create a new style tag after lastEl */\nvar makeStyleTag = function makeStyleTag(target, tagEl, insertBefore) {\n var targetDocument = document;\n if (target) targetDocument = target.ownerDocument;else if (tagEl) targetDocument = tagEl.ownerDocument;\n\n var el = targetDocument.createElement('style');\n el.setAttribute(SC_ATTR, '');\n el.setAttribute(SC_VERSION_ATTR, \"4.4.0\");\n\n var nonce = getNonce();\n if (nonce) {\n el.setAttribute('nonce', nonce);\n }\n\n /* Work around insertRule quirk in EdgeHTML */\n el.appendChild(targetDocument.createTextNode(''));\n\n if (target && !tagEl) {\n /* Append to target when no previous element was passed */\n target.appendChild(el);\n } else {\n if (!tagEl || !target || !tagEl.parentNode) {\n throw new StyledComponentsError(6);\n }\n\n /* Insert new style tag after the previous one */\n tagEl.parentNode.insertBefore(el, insertBefore ? tagEl : tagEl.nextSibling);\n }\n\n return el;\n};\n\n/* takes a css factory function and outputs an html styled tag factory */\nvar wrapAsHtmlTag = function wrapAsHtmlTag(css, names) {\n return function (additionalAttrs) {\n var nonce = getNonce();\n var attrs = [nonce && 'nonce=\"' + nonce + '\"', SC_ATTR + '=\"' + stringifyNames(names) + '\"', SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"', additionalAttrs];\n\n var htmlAttr = attrs.filter(Boolean).join(' ');\n return '';\n };\n};\n\n/* takes a css factory function and outputs an element factory */\nvar wrapAsElement = function wrapAsElement(css, names) {\n return function () {\n var _props;\n\n var props = (_props = {}, _props[SC_ATTR] = stringifyNames(names), _props[SC_VERSION_ATTR] = \"4.4.0\", _props);\n\n var nonce = getNonce();\n if (nonce) {\n // $FlowFixMe\n props.nonce = nonce;\n }\n\n // eslint-disable-next-line react/no-danger\n return React.createElement('style', _extends({}, props, { dangerouslySetInnerHTML: { __html: css() } }));\n };\n};\n\nvar getIdsFromMarkersFactory = function getIdsFromMarkersFactory(markers) {\n return function () {\n return Object.keys(markers);\n };\n};\n\n/* speedy tags utilise insertRule */\nvar makeSpeedyTag = function makeSpeedyTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var sizes = [];\n\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = sizes.length;\n sizes.push(0);\n resetIdNames(names, id);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var sheet = sheetForTag(el);\n var insertIndex = addUpUntilIndex(sizes, marker);\n\n var injectedRules = 0;\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = cssRules[i];\n var mayHaveImport = extractImport; /* @import rules are reordered to appear first */\n if (mayHaveImport && cssRule.indexOf('@import') !== -1) {\n importRules.push(cssRule);\n } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n mayHaveImport = false;\n injectedRules += 1;\n }\n }\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n\n sizes[marker] += injectedRules; /* add up no of injected rules */\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n // $FlowFixMe\n if (el.isConnected === false) return;\n\n var size = sizes[marker];\n var sheet = sheetForTag(el);\n var removalIndex = addUpUntilIndex(sizes, marker) - 1;\n deleteRules(sheet, removalIndex, size);\n sizes[marker] = 0;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var _sheetForTag = sheetForTag(el),\n cssRules = _sheetForTag.cssRules;\n\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += makeTextMarker(id);\n var marker = markers[id];\n var end = addUpUntilIndex(sizes, marker);\n var size = sizes[marker];\n for (var i = end - size; i < end; i += 1) {\n var rule = cssRules[i];\n if (rule !== undefined) {\n str += rule.cssText;\n }\n }\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeTextNode = function makeTextNode(targetDocument, id) {\n return targetDocument.createTextNode(makeTextMarker(id));\n};\n\nvar makeBrowserTag = function makeBrowserTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n\n var extractImport = getImportRuleTag !== undefined;\n\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = makeTextNode(el.ownerDocument, id);\n el.appendChild(markers[id]);\n names[id] = Object.create(null);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var rule = cssRules[i];\n var mayHaveImport = extractImport;\n if (mayHaveImport && rule.indexOf('@import') !== -1) {\n importRules.push(rule);\n } else {\n mayHaveImport = false;\n var separator = i === cssRulesSize - 1 ? '' : ' ';\n marker.appendData('' + rule + separator);\n }\n }\n\n addNameForId(names, id, name);\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n\n /* create new empty text node and replace the current one */\n var newMarker = makeTextNode(el.ownerDocument, id);\n el.replaceChild(newMarker, marker);\n markers[id] = newMarker;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += markers[id].data;\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeServerTag = function makeServerTag(namesArg, markersArg) {\n var names = namesArg === undefined ? Object.create(null) : namesArg;\n var markers = markersArg === undefined ? Object.create(null) : markersArg;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n return markers[id] = [''];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n marker[0] += cssRules.join(' ');\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n marker[0] = '';\n resetIdNames(names, id);\n };\n\n var css = function css() {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n var cssForId = markers[id][0];\n if (cssForId) {\n str += makeTextMarker(id) + cssForId;\n }\n }\n return str;\n };\n\n var clone = function clone() {\n var namesClone = cloneNames(names);\n var markersClone = Object.create(null);\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n markersClone[id] = [markers[id][0]];\n }\n\n return makeServerTag(namesClone, markersClone);\n };\n\n var tag = {\n clone: clone,\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: null,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n\n return tag;\n};\n\nvar makeTag = function makeTag(target, tagEl, forceServer, insertBefore, getImportRuleTag) {\n if (IS_BROWSER && !forceServer) {\n var el = makeStyleTag(target, tagEl, insertBefore);\n\n if (DISABLE_SPEEDY) {\n return makeBrowserTag(el, getImportRuleTag);\n } else {\n return makeSpeedyTag(el, getImportRuleTag);\n }\n }\n\n return makeServerTag();\n};\n\nvar rehydrate = function rehydrate(tag, els, extracted) {\n /* add all extracted components to the new tag */\n for (var i = 0, len = extracted.length; i < len; i += 1) {\n var _extracted$i = extracted[i],\n componentId = _extracted$i.componentId,\n cssFromDOM = _extracted$i.cssFromDOM;\n\n var cssRules = splitByRules(cssFromDOM);\n tag.insertRules(componentId, cssRules);\n }\n\n /* remove old HTMLStyleElements, since they have been rehydrated */\n for (var _i = 0, _len = els.length; _i < _len; _i += 1) {\n var el = els[_i];\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n};\n\n// \n\nvar SPLIT_REGEX = /\\s+/;\n\n/* determine the maximum number of components before tags are sharded */\nvar MAX_SIZE = void 0;\nif (IS_BROWSER) {\n /* in speedy mode we can keep a lot more rules in a sheet before a slowdown can be expected */\n MAX_SIZE = DISABLE_SPEEDY ? 40 : 1000;\n} else {\n /* for servers we do not need to shard at all */\n MAX_SIZE = -1;\n}\n\nvar sheetRunningId = 0;\nvar master = void 0;\n\nvar StyleSheet = function () {\n\n /* a map from ids to tags */\n\n /* deferred rules for a given id */\n\n /* this is used for not reinjecting rules via hasNameForId() */\n\n /* when rules for an id are removed using remove() we have to ignore rehydratedNames for it */\n\n /* a list of tags belonging to this StyleSheet */\n\n /* a tag for import rules */\n\n /* current capacity until a new tag must be created */\n\n /* children (aka clones) of this StyleSheet inheriting all and future injections */\n\n function StyleSheet() {\n var _this = this;\n\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : IS_BROWSER ? document.head : null;\n var forceServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n classCallCheck(this, StyleSheet);\n\n this.getImportRuleTag = function () {\n var importRuleTag = _this.importRuleTag;\n\n if (importRuleTag !== undefined) {\n return importRuleTag;\n }\n\n var firstTag = _this.tags[0];\n var insertBefore = true;\n\n return _this.importRuleTag = makeTag(_this.target, firstTag ? firstTag.styleTag : null, _this.forceServer, insertBefore);\n };\n\n sheetRunningId += 1;\n this.id = sheetRunningId;\n this.forceServer = forceServer;\n this.target = forceServer ? null : target;\n this.tagMap = {};\n this.deferred = {};\n this.rehydratedNames = {};\n this.ignoreRehydratedNames = {};\n this.tags = [];\n this.capacity = 1;\n this.clones = [];\n }\n\n /* rehydrate all SSR'd style tags */\n\n\n StyleSheet.prototype.rehydrate = function rehydrate$$1() {\n if (!IS_BROWSER || this.forceServer) return this;\n\n var els = [];\n var extracted = [];\n var isStreamed = false;\n\n /* retrieve all of our SSR style elements from the DOM */\n var nodes = document.querySelectorAll('style[' + SC_ATTR + '][' + SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"]');\n\n var nodesSize = nodes.length;\n\n /* abort rehydration if no previous style tags were found */\n if (!nodesSize) return this;\n\n for (var i = 0; i < nodesSize; i += 1) {\n var el = nodes[i];\n\n /* check if style tag is a streamed tag */\n if (!isStreamed) isStreamed = !!el.getAttribute(SC_STREAM_ATTR);\n\n /* retrieve all component names */\n var elNames = (el.getAttribute(SC_ATTR) || '').trim().split(SPLIT_REGEX);\n var elNamesSize = elNames.length;\n for (var j = 0, name; j < elNamesSize; j += 1) {\n name = elNames[j];\n /* add rehydrated name to sheet to avoid re-adding styles */\n this.rehydratedNames[name] = true;\n }\n\n /* extract all components and their CSS */\n extracted.push.apply(extracted, extractComps(el.textContent));\n\n /* store original HTMLStyleElement */\n els.push(el);\n }\n\n /* abort rehydration if nothing was extracted */\n var extractedSize = extracted.length;\n if (!extractedSize) return this;\n\n /* create a tag to be used for rehydration */\n var tag = this.makeTag(null);\n\n rehydrate(tag, els, extracted);\n\n /* reset capacity and adjust MAX_SIZE by the initial size of the rehydration */\n this.capacity = Math.max(1, MAX_SIZE - extractedSize);\n this.tags.push(tag);\n\n /* retrieve all component ids */\n for (var _j = 0; _j < extractedSize; _j += 1) {\n this.tagMap[extracted[_j].componentId] = tag;\n }\n\n return this;\n };\n\n /* retrieve a \"master\" instance of StyleSheet which is typically used when no other is available\n * The master StyleSheet is targeted by createGlobalStyle, keyframes, and components outside of any\n * StyleSheetManager's context */\n\n\n /* reset the internal \"master\" instance */\n StyleSheet.reset = function reset() {\n var forceServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n master = new StyleSheet(undefined, forceServer).rehydrate();\n };\n\n /* adds \"children\" to the StyleSheet that inherit all of the parents' rules\n * while their own rules do not affect the parent */\n\n\n StyleSheet.prototype.clone = function clone() {\n var sheet = new StyleSheet(this.target, this.forceServer);\n\n /* add to clone array */\n this.clones.push(sheet);\n\n /* clone all tags */\n sheet.tags = this.tags.map(function (tag) {\n var ids = tag.getIds();\n var newTag = tag.clone();\n\n /* reconstruct tagMap */\n for (var i = 0; i < ids.length; i += 1) {\n sheet.tagMap[ids[i]] = newTag;\n }\n\n return newTag;\n });\n\n /* clone other maps */\n sheet.rehydratedNames = _extends({}, this.rehydratedNames);\n sheet.deferred = _extends({}, this.deferred);\n\n return sheet;\n };\n\n /* force StyleSheet to create a new tag on the next injection */\n\n\n StyleSheet.prototype.sealAllTags = function sealAllTags() {\n this.capacity = 1;\n\n this.tags.forEach(function (tag) {\n // eslint-disable-next-line no-param-reassign\n tag.sealed = true;\n });\n };\n\n StyleSheet.prototype.makeTag = function makeTag$$1(tag) {\n var lastEl = tag ? tag.styleTag : null;\n var insertBefore = false;\n\n return makeTag(this.target, lastEl, this.forceServer, insertBefore, this.getImportRuleTag);\n };\n\n /* get a tag for a given componentId, assign the componentId to one, or shard */\n StyleSheet.prototype.getTagForId = function getTagForId(id) {\n /* simply return a tag, when the componentId was already assigned one */\n var prev = this.tagMap[id];\n if (prev !== undefined && !prev.sealed) {\n return prev;\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n /* shard (create a new tag) if the tag is exhausted (See MAX_SIZE) */\n this.capacity -= 1;\n\n if (this.capacity === 0) {\n this.capacity = MAX_SIZE;\n tag = this.makeTag(tag);\n this.tags.push(tag);\n }\n\n return this.tagMap[id] = tag;\n };\n\n /* mainly for createGlobalStyle to check for its id */\n\n\n StyleSheet.prototype.hasId = function hasId(id) {\n return this.tagMap[id] !== undefined;\n };\n\n /* caching layer checking id+name to already have a corresponding tag and injected rules */\n\n\n StyleSheet.prototype.hasNameForId = function hasNameForId(id, name) {\n /* exception for rehydrated names which are checked separately */\n if (this.ignoreRehydratedNames[id] === undefined && this.rehydratedNames[name]) {\n return true;\n }\n\n var tag = this.tagMap[id];\n return tag !== undefined && tag.hasNameForId(id, name);\n };\n\n /* registers a componentId and registers it on its tag */\n\n\n StyleSheet.prototype.deferredInject = function deferredInject(id, cssRules) {\n /* don't inject when the id is already registered */\n if (this.tagMap[id] !== undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].deferredInject(id, cssRules);\n }\n\n this.getTagForId(id).insertMarker(id);\n this.deferred[id] = cssRules;\n };\n\n /* injects rules for a given id with a name that will need to be cached */\n\n\n StyleSheet.prototype.inject = function inject(id, cssRules, name) {\n var clones = this.clones;\n\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].inject(id, cssRules, name);\n }\n\n var tag = this.getTagForId(id);\n\n /* add deferred rules for component */\n if (this.deferred[id] !== undefined) {\n // Combine passed cssRules with previously deferred CSS rules\n // NOTE: We cannot mutate the deferred array itself as all clones\n // do the same (see clones[i].inject)\n var rules = this.deferred[id].concat(cssRules);\n tag.insertRules(id, rules, name);\n\n this.deferred[id] = undefined;\n } else {\n tag.insertRules(id, cssRules, name);\n }\n };\n\n /* removes all rules for a given id, which doesn't remove its marker but resets it */\n\n\n StyleSheet.prototype.remove = function remove(id) {\n var tag = this.tagMap[id];\n if (tag === undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].remove(id);\n }\n\n /* remove all rules from the tag */\n tag.removeRules(id);\n\n /* ignore possible rehydrated names */\n this.ignoreRehydratedNames[id] = true;\n\n /* delete possible deferred rules */\n this.deferred[id] = undefined;\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n var id = this.id;\n\n\n return this.tags.map(function (tag, i) {\n var key = 'sc-' + id + '-' + i;\n return cloneElement(tag.toElement(), { key: key });\n });\n };\n\n createClass(StyleSheet, null, [{\n key: 'master',\n get: function get$$1() {\n return master || (master = new StyleSheet().rehydrate());\n }\n\n /* NOTE: This is just for backwards-compatibility with jest-styled-components */\n\n }, {\n key: 'instance',\n get: function get$$1() {\n return StyleSheet.master;\n }\n }]);\n return StyleSheet;\n}();\n\n// \n\nvar Keyframes = function () {\n function Keyframes(name, rules) {\n var _this = this;\n\n classCallCheck(this, Keyframes);\n\n this.inject = function (styleSheet) {\n if (!styleSheet.hasNameForId(_this.id, _this.name)) {\n styleSheet.inject(_this.id, _this.rules, _this.name);\n }\n };\n\n this.toString = function () {\n throw new StyledComponentsError(12, String(_this.name));\n };\n\n this.name = name;\n this.rules = rules;\n\n this.id = 'sc-keyframes-' + name;\n }\n\n Keyframes.prototype.getName = function getName() {\n return this.name;\n };\n\n return Keyframes;\n}();\n\n// \n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\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 * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return string.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\n// \n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nfunction addUnitIfNeeded(name, value) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n}\n\n// \n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nvar isFalsish = function isFalsish(chunk) {\n return chunk === undefined || chunk === null || chunk === false || chunk === '';\n};\n\nvar objToCssArray = function objToCssArray(obj, prevKey) {\n var rules = [];\n var keys = Object.keys(obj);\n\n keys.forEach(function (key) {\n if (!isFalsish(obj[key])) {\n if (isPlainObject(obj[key])) {\n rules.push.apply(rules, objToCssArray(obj[key], key));\n\n return rules;\n } else if (isFunction(obj[key])) {\n rules.push(hyphenateStyleName(key) + ':', obj[key], ';');\n\n return rules;\n }\n rules.push(hyphenateStyleName(key) + ': ' + addUnitIfNeeded(key, obj[key]) + ';');\n }\n return rules;\n });\n\n return prevKey ? [prevKey + ' {'].concat(rules, ['}']) : rules;\n};\n\nfunction flatten(chunk, executionContext, styleSheet) {\n if (Array.isArray(chunk)) {\n var ruleSet = [];\n\n for (var i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet);\n\n if (result === null) continue;else if (Array.isArray(result)) ruleSet.push.apply(ruleSet, result);else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return null;\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return '.' + chunk.styledComponentId;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n var _result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(_result)) {\n // eslint-disable-next-line no-console\n console.warn(getComponentName(chunk) + ' is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.');\n }\n\n return flatten(_result, executionContext, styleSheet);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet);\n return chunk.getName();\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n}\n\n// \n\nfunction css(styles) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return flatten(interleave(EMPTY_ARRAY, [styles].concat(interpolations)));\n }\n\n // $FlowFixMe\n return flatten(interleave(styles, interpolations));\n}\n\n// \n\nfunction constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n if (!isValidElementType(tag)) {\n throw new StyledComponentsError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n var templateFunction = function templateFunction() {\n return componentConstructor(tag, options, css.apply(undefined, arguments));\n };\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean)\n }));\n };\n\n return templateFunction;\n}\n\n// \n// Source: https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash(c) {\n for (var e = c.length | 0, a = e | 0, d = 0, b; e >= 4;) {\n b = c.charCodeAt(d) & 255 | (c.charCodeAt(++d) & 255) << 8 | (c.charCodeAt(++d) & 255) << 16 | (c.charCodeAt(++d) & 255) << 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), b ^= b >>> 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16) ^ b, e -= 4, ++d;\n }\n switch (e) {\n case 3:\n a ^= (c.charCodeAt(d + 2) & 255) << 16;\n case 2:\n a ^= (c.charCodeAt(d + 1) & 255) << 8;\n case 1:\n a ^= c.charCodeAt(d) & 255, a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n }\n a ^= a >>> 13;\n a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n return (a ^ a >>> 15) >>> 0;\n}\n\n// \n/* eslint-disable no-bitwise */\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nvar charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nvar getAlphabeticChar = function getAlphabeticChar(code) {\n return String.fromCharCode(code + (code > 25 ? 39 : 97));\n};\n\n/* input a number, usually a hash and convert it to base-52 */\nfunction generateAlphabeticName(code) {\n var name = '';\n var x = void 0;\n\n /* get a char and divide by alphabet-length */\n for (x = code; x > charsLength; x = Math.floor(x / charsLength)) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return getAlphabeticChar(x % charsLength) + name;\n}\n\n// \n\nfunction hasFunctionObjectKey(obj) {\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in obj) {\n if (isFunction(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isStaticRules(rules, attrs) {\n for (var i = 0; i < rules.length; i += 1) {\n var rule = rules[i];\n\n // recursive case\n if (Array.isArray(rule) && !isStaticRules(rule, attrs)) {\n return false;\n } else if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n if (attrs.some(function (x) {\n return isFunction(x) || hasFunctionObjectKey(x);\n })) return false;\n\n return true;\n}\n\n// \n\n/* combines hashStr (murmurhash) and nameGenerator for convenience */\nvar hasher = function hasher(str) {\n return generateAlphabeticName(murmurhash(str));\n};\n\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\n\nvar ComponentStyle = function () {\n function ComponentStyle(rules, attrs, componentId) {\n classCallCheck(this, ComponentStyle);\n\n this.rules = rules;\n this.isStatic = process.env.NODE_ENV === 'production' && isStaticRules(rules, attrs);\n this.componentId = componentId;\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n\n\n ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) {\n var isStatic = this.isStatic,\n componentId = this.componentId,\n lastClassName = this.lastClassName;\n\n if (IS_BROWSER && isStatic && typeof lastClassName === 'string' && styleSheet.hasNameForId(componentId, lastClassName)) {\n return lastClassName;\n }\n\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var name = hasher(this.componentId + flatCSS.join(''));\n if (!styleSheet.hasNameForId(componentId, name)) {\n styleSheet.inject(this.componentId, stringifyRules(flatCSS, '.' + name, undefined, componentId), name);\n }\n\n this.lastClassName = name;\n return name;\n };\n\n ComponentStyle.generateName = function generateName(str) {\n return hasher(str);\n };\n\n return ComponentStyle;\n}();\n\n// \n\nvar LIMIT = 200;\n\nvar createWarnTooManyClasses = (function (displayName) {\n var generatedClasses = {};\n var warningSeen = false;\n\n return function (className) {\n if (!warningSeen) {\n generatedClasses[className] = true;\n if (Object.keys(generatedClasses).length >= LIMIT) {\n // Unable to find latestRule in test environment.\n /* eslint-disable no-console, prefer-template */\n console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \\n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\\n' + 'Example:\\n' + ' const Component = styled.div.attrs(props => ({\\n' + ' style: {\\n' + ' background: props.background,\\n' + ' },\\n' + ' }))`width: 100%;`\\n\\n' + ' ');\n warningSeen = true;\n generatedClasses = {};\n }\n }\n };\n});\n\n// \n\nvar determineTheme = (function (props, fallbackTheme) {\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types, flowtype-errors/show-errors */\n var isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;\n /* eslint-enable */\n\n return theme;\n});\n\n// \nvar escapeRegex = /[[\\].#*$><+~=|^:(),\"'`-]+/g;\nvar dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nfunction escape(str) {\n return str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n\n// \n\nfunction isTag(target) {\n return typeof target === 'string' && (process.env.NODE_ENV !== 'production' ? target.charAt(0) === target.charAt(0).toLowerCase() : true);\n}\n\n// \n\nfunction generateDisplayName(target) {\n // $FlowFixMe\n return isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')';\n}\n\nvar _TYPE_STATICS;\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDerivedStateFromProps: true,\n propTypes: true,\n type: true\n};\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};\n\nvar TYPE_STATICS = (_TYPE_STATICS = {}, _TYPE_STATICS[ForwardRef] = {\n $$typeof: true,\n render: true\n}, _TYPE_STATICS);\n\nvar defineProperty$1 = Object.defineProperty,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n _Object$getOwnPropert = Object.getOwnPropertySymbols,\n getOwnPropertySymbols = _Object$getOwnPropert === undefined ? function () {\n return [];\n} : _Object$getOwnPropert,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getPrototypeOf = Object.getPrototypeOf,\n objectPrototype = Object.prototype;\nvar arrayPrototype = Array.prototype;\n\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n\n var keys = arrayPrototype.concat(getOwnPropertyNames(sourceComponent),\n // $FlowFixMe\n getOwnPropertySymbols(sourceComponent));\n\n var targetStatics = TYPE_STATICS[targetComponent.$$typeof] || REACT_STATICS;\n\n var sourceStatics = TYPE_STATICS[sourceComponent.$$typeof] || REACT_STATICS;\n\n var i = keys.length;\n var descriptor = void 0;\n var key = void 0;\n\n // eslint-disable-next-line no-plusplus\n while (i--) {\n key = keys[i];\n\n if (\n // $FlowFixMe\n !KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) &&\n // $FlowFixMe\n !(targetStatics && targetStatics[key])) {\n descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n if (descriptor) {\n try {\n // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {\n /* fail silently */\n }\n }\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\n// \nfunction isDerivedReactComponent(fn) {\n return !!(fn && fn.prototype && fn.prototype.isReactComponent);\n}\n\n// \n// Helper to call a given function, only once\nvar once = (function (cb) {\n var called = false;\n\n return function () {\n if (!called) {\n called = true;\n cb.apply(undefined, arguments);\n }\n };\n});\n\n// \n\nvar ThemeContext = createContext();\n\nvar ThemeConsumer = ThemeContext.Consumer;\n\n/**\n * Provide a theme to an entire react component tree via context\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider(props) {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext.bind(_this));\n _this.renderInner = _this.renderInner.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) return null;\n\n return React.createElement(\n ThemeContext.Consumer,\n null,\n this.renderInner\n );\n };\n\n ThemeProvider.prototype.renderInner = function renderInner(outerTheme) {\n var context = this.getContext(this.props.theme, outerTheme);\n\n return React.createElement(\n ThemeContext.Provider,\n { value: context },\n this.props.children\n );\n };\n\n /**\n * Get the theme from the props, supporting both (outerTheme) => {}\n * as well as object notation\n */\n\n\n ThemeProvider.prototype.getTheme = function getTheme(theme, outerTheme) {\n if (isFunction(theme)) {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme === null || Array.isArray(mergedTheme) || (typeof mergedTheme === 'undefined' ? 'undefined' : _typeof(mergedTheme)) !== 'object')) {\n throw new StyledComponentsError(7);\n }\n\n return mergedTheme;\n }\n\n if (theme === null || Array.isArray(theme) || (typeof theme === 'undefined' ? 'undefined' : _typeof(theme)) !== 'object') {\n throw new StyledComponentsError(8);\n }\n\n return _extends({}, outerTheme, theme);\n };\n\n ThemeProvider.prototype.getContext = function getContext(theme, outerTheme) {\n return this.getTheme(theme, outerTheme);\n };\n\n return ThemeProvider;\n}(Component);\n\n// \n\nvar CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nvar ServerStyleSheet = function () {\n function ServerStyleSheet() {\n classCallCheck(this, ServerStyleSheet);\n\n /* The master sheet might be reset, so keep a reference here */\n this.masterSheet = StyleSheet.master;\n this.instance = this.masterSheet.clone();\n this.sealed = false;\n }\n\n /**\n * Mark the ServerStyleSheet as being fully emitted and manually GC it from the\n * StyleSheet singleton.\n */\n\n\n ServerStyleSheet.prototype.seal = function seal() {\n if (!this.sealed) {\n /* Remove sealed StyleSheets from the master sheet */\n var index = this.masterSheet.clones.indexOf(this.instance);\n this.masterSheet.clones.splice(index, 1);\n this.sealed = true;\n }\n };\n\n ServerStyleSheet.prototype.collectStyles = function collectStyles(children) {\n if (this.sealed) {\n throw new StyledComponentsError(2);\n }\n\n return React.createElement(\n StyleSheetManager,\n { sheet: this.instance },\n children\n );\n };\n\n ServerStyleSheet.prototype.getStyleTags = function getStyleTags() {\n this.seal();\n return this.instance.toHTML();\n };\n\n ServerStyleSheet.prototype.getStyleElement = function getStyleElement() {\n this.seal();\n return this.instance.toReactElements();\n };\n\n ServerStyleSheet.prototype.interleaveWithNodeStream = function interleaveWithNodeStream(readableStream) {\n var _this = this;\n\n {\n throw new StyledComponentsError(3);\n }\n\n /* the tag index keeps track of which tags have already been emitted */\n var instance = this.instance;\n\n var instanceTagIndex = 0;\n\n var streamAttr = SC_STREAM_ATTR + '=\"true\"';\n\n var transformer = new stream.Transform({\n transform: function appendStyleChunks(chunk, /* encoding */_, callback) {\n var tags = instance.tags;\n\n var html = '';\n\n /* retrieve html for each new style tag */\n for (; instanceTagIndex < tags.length; instanceTagIndex += 1) {\n var tag = tags[instanceTagIndex];\n html += tag.toHTML(streamAttr);\n }\n\n /* force our StyleSheets to emit entirely new tags */\n instance.sealAllTags();\n\n var renderedHtml = chunk.toString();\n\n /* prepend style html to chunk, unless the start of the chunk is a closing tag in which case append right after that */\n if (CLOSING_TAG_R.test(renderedHtml)) {\n var endOfClosingTag = renderedHtml.indexOf('>');\n\n this.push(renderedHtml.slice(0, endOfClosingTag + 1) + html + renderedHtml.slice(endOfClosingTag + 1));\n } else this.push(html + renderedHtml);\n\n callback();\n }\n });\n\n readableStream.on('end', function () {\n return _this.seal();\n });\n\n readableStream.on('error', function (err) {\n _this.seal();\n\n // forward the error to the transform stream\n transformer.emit('error', err);\n });\n\n return readableStream.pipe(transformer);\n };\n\n return ServerStyleSheet;\n}();\n\n// \n\nvar StyleSheetContext = createContext();\nvar StyleSheetConsumer = StyleSheetContext.Consumer;\n\nvar StyleSheetManager = function (_Component) {\n inherits(StyleSheetManager, _Component);\n\n function StyleSheetManager(props) {\n classCallCheck(this, StyleSheetManager);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext);\n return _this;\n }\n\n StyleSheetManager.prototype.getContext = function getContext(sheet, target) {\n if (sheet) {\n return sheet;\n } else if (target) {\n return new StyleSheet(target);\n } else {\n throw new StyledComponentsError(4);\n }\n };\n\n StyleSheetManager.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n sheet = _props.sheet,\n target = _props.target;\n\n\n return React.createElement(\n StyleSheetContext.Provider,\n { value: this.getContext(sheet, target) },\n process.env.NODE_ENV !== 'production' ? React.Children.only(children) : children\n );\n };\n\n return StyleSheetManager;\n}(Component);\nprocess.env.NODE_ENV !== \"production\" ? StyleSheetManager.propTypes = {\n sheet: PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]),\n\n target: PropTypes.shape({\n appendChild: PropTypes.func.isRequired\n })\n} : void 0;\n\n// \n\nvar THEME_PROP_REGEX = /\\.theme[.[]/;\nvar identifiers = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(_ComponentStyle, _displayName, parentComponentId) {\n var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName);\n\n /**\n * This ensures uniqueness if two components happen to share\n * the same displayName.\n */\n var nr = (identifiers[displayName] || 0) + 1;\n identifiers[displayName] = nr;\n\n var componentId = displayName + '-' + _ComponentStyle.generateName(displayName + nr);\n\n return parentComponentId ? parentComponentId + '-' + componentId : componentId;\n}\n\n// $FlowFixMe\n\nvar StyledComponent = function (_Component) {\n inherits(StyledComponent, _Component);\n\n function StyledComponent() {\n classCallCheck(this, StyledComponent);\n\n var _this = possibleConstructorReturn(this, _Component.call(this));\n\n _this.attrs = {};\n\n _this.renderOuter = _this.renderOuter.bind(_this);\n _this.renderInner = _this.renderInner.bind(_this);\n\n if (process.env.NODE_ENV !== 'production') {\n _this.warnInnerRef = once(function (displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('The \"innerRef\" API has been removed in styled-components v4 in favor of React 16 ref forwarding, use \"ref\" instead like a typical component. \"innerRef\" was detected on component \"' + displayName + '\".')\n );\n });\n\n _this.warnAttrsFnObjectKeyDeprecated = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('Functions as object-form attrs({}) keys are now deprecated and will be removed in a future version of styled-components. Switch to the new attrs(props => ({})) syntax instead for easier and more powerful composition. The attrs key in question is \"' + key + '\" on component \"' + displayName + '\".', '\\n ' + new Error().stack)\n );\n });\n\n _this.warnNonStyledComponentAttrsObjectKey = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('It looks like you\\'ve used a non styled-component as the value for the \"' + key + '\" prop in an object-form attrs constructor of \"' + displayName + '\".\\n' + 'You should use the new function-form attrs constructor which avoids this issue: attrs(props => ({ yourStuff }))\\n' + \"To continue using the deprecated object syntax, you'll need to wrap your component prop in a function to make it available inside the styled component (you'll still get the deprecation warning though.)\\n\" + ('For example, { ' + key + ': () => InnerComponent } instead of { ' + key + ': InnerComponent }'))\n );\n });\n }\n return _this;\n }\n\n StyledComponent.prototype.render = function render() {\n return React.createElement(\n StyleSheetConsumer,\n null,\n this.renderOuter\n );\n };\n\n StyledComponent.prototype.renderOuter = function renderOuter() {\n var styleSheet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : StyleSheet.master;\n\n this.styleSheet = styleSheet;\n\n // No need to subscribe a static component to theme changes, it won't change anything\n if (this.props.forwardedComponent.componentStyle.isStatic) return this.renderInner();\n\n return React.createElement(\n ThemeConsumer,\n null,\n this.renderInner\n );\n };\n\n StyledComponent.prototype.renderInner = function renderInner(theme) {\n var _props$forwardedCompo = this.props.forwardedComponent,\n componentStyle = _props$forwardedCompo.componentStyle,\n defaultProps = _props$forwardedCompo.defaultProps,\n displayName = _props$forwardedCompo.displayName,\n foldedComponentIds = _props$forwardedCompo.foldedComponentIds,\n styledComponentId = _props$forwardedCompo.styledComponentId,\n target = _props$forwardedCompo.target,\n usesTheme = _props$forwardedCompo.usesTheme;\n\n\n var generatedClassName = void 0;\n var rawTheme = void 0;\n\n if (componentStyle.isStatic) {\n generatedClassName = this.generateAndInjectStyles(EMPTY_OBJECT, this.props);\n } else {\n rawTheme = determineTheme(this.props, theme, defaultProps);\n generatedClassName = this.generateAndInjectStyles(rawTheme || EMPTY_OBJECT, this.props);\n\n if (process.env.NODE_ENV !== 'production' && usesTheme && !rawTheme) {\n console.error('Component \\'' +\n // $FlowFixMe\n displayName + '\\' (.' + styledComponentId + ') references the \\'theme\\' prop in its styles but no theme was provided via prop or .');\n }\n }\n\n var elementToBeCreated = this.props.as || this.attrs.as || target;\n var isTargetTag = isTag(elementToBeCreated);\n\n var propsForElement = {};\n var computedProps = _extends({}, this.props, this.attrs);\n\n var key = void 0;\n // eslint-disable-next-line guard-for-in\n for (key in computedProps) {\n if (process.env.NODE_ENV !== 'production' && key === 'innerRef' && isTargetTag) {\n this.warnInnerRef(displayName);\n }\n\n if (key === 'forwardedComponent' || key === 'as') {\n continue;\n } else if (key === 'forwardedRef') propsForElement.ref = computedProps[key];else if (key === 'forwardedAs') propsForElement.as = computedProps[key];else if (!isTargetTag || validAttr(key)) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (this.props.style && this.attrs.style) {\n propsForElement.style = _extends({}, this.attrs.style, this.props.style);\n }\n\n propsForElement.className = Array.prototype.concat(foldedComponentIds, styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : null, this.props.className, this.attrs.className).filter(Boolean).join(' ');\n\n return createElement(elementToBeCreated, propsForElement);\n };\n\n StyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props, attrs) {\n var _this2 = this;\n\n var context = _extends({}, props, { theme: theme });\n\n if (!attrs.length) return context;\n\n this.attrs = {};\n\n attrs.forEach(function (attrDef) {\n var resolvedAttrDef = attrDef;\n var attrDefWasFn = false;\n var attr = void 0;\n var key = void 0;\n\n if (isFunction(resolvedAttrDef)) {\n // $FlowFixMe\n resolvedAttrDef = resolvedAttrDef(context);\n attrDefWasFn = true;\n }\n\n /* eslint-disable guard-for-in */\n // $FlowFixMe\n for (key in resolvedAttrDef) {\n attr = resolvedAttrDef[key];\n\n if (!attrDefWasFn) {\n if (isFunction(attr) && !isDerivedReactComponent(attr) && !isStyledComponent(attr)) {\n if (process.env.NODE_ENV !== 'production') {\n _this2.warnAttrsFnObjectKeyDeprecated(key, props.forwardedComponent.displayName);\n }\n\n attr = attr(context);\n\n if (process.env.NODE_ENV !== 'production' && React.isValidElement(attr)) {\n _this2.warnNonStyledComponentAttrsObjectKey(key, props.forwardedComponent.displayName);\n }\n }\n }\n\n _this2.attrs[key] = attr;\n context[key] = attr;\n }\n /* eslint-enable */\n });\n\n return context;\n };\n\n StyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var _props$forwardedCompo2 = props.forwardedComponent,\n attrs = _props$forwardedCompo2.attrs,\n componentStyle = _props$forwardedCompo2.componentStyle,\n warnTooManyClasses = _props$forwardedCompo2.warnTooManyClasses;\n\n // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n\n if (componentStyle.isStatic && !attrs.length) {\n return componentStyle.generateAndInjectStyles(EMPTY_OBJECT, this.styleSheet);\n }\n\n var className = componentStyle.generateAndInjectStyles(this.buildExecutionContext(theme, props, attrs), this.styleSheet);\n\n if (process.env.NODE_ENV !== 'production' && warnTooManyClasses) warnTooManyClasses(className);\n\n return className;\n };\n\n return StyledComponent;\n}(Component);\n\nfunction createStyledComponent(target, options, rules) {\n var isTargetStyledComp = isStyledComponent(target);\n var isClass = !isTag(target);\n\n var _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? generateDisplayName(target) : _options$displayName,\n _options$componentId = options.componentId,\n componentId = _options$componentId === undefined ? generateId(ComponentStyle, options.displayName, options.parentComponentId) : _options$componentId,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? StyledComponent : _options$ParentCompon,\n _options$attrs = options.attrs,\n attrs = _options$attrs === undefined ? EMPTY_ARRAY : _options$attrs;\n\n\n var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n var finalAttrs =\n // $FlowFixMe\n isTargetStyledComp && target.attrs ? Array.prototype.concat(target.attrs, attrs).filter(Boolean) : attrs;\n\n var componentStyle = new ComponentStyle(isTargetStyledComp ? // fold the underlying StyledComponent rules up (implicit extend)\n // $FlowFixMe\n target.componentStyle.rules.concat(rules) : rules, finalAttrs, styledComponentId);\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n var WrappedStyledComponent = void 0;\n var forwardRef = function forwardRef(props, ref) {\n return React.createElement(ParentComponent, _extends({}, props, { forwardedComponent: WrappedStyledComponent, forwardedRef: ref }));\n };\n forwardRef.displayName = displayName;\n WrappedStyledComponent = React.forwardRef(forwardRef);\n WrappedStyledComponent.displayName = displayName;\n\n // $FlowFixMe\n WrappedStyledComponent.attrs = finalAttrs;\n // $FlowFixMe\n WrappedStyledComponent.componentStyle = componentStyle;\n\n // $FlowFixMe\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp ? // $FlowFixMe\n Array.prototype.concat(target.foldedComponentIds, target.styledComponentId) : EMPTY_ARRAY;\n\n // $FlowFixMe\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n // $FlowFixMe\n WrappedStyledComponent.target = isTargetStyledComp ? target.target : target;\n\n // $FlowFixMe\n WrappedStyledComponent.withComponent = function withComponent(tag) {\n var previousComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['componentId']);\n\n\n var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag)));\n\n var newOptions = _extends({}, optionsToCopy, {\n attrs: finalAttrs,\n componentId: newComponentId,\n ParentComponent: ParentComponent\n });\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n // $FlowFixMe\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get: function get$$1() {\n return this._foldedDefaultProps;\n },\n set: function set$$1(obj) {\n // $FlowFixMe\n this._foldedDefaultProps = isTargetStyledComp ? merge(target.defaultProps, obj) : obj;\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n WrappedStyledComponent.usesTheme = componentStyle.rules.some(function (x) {\n return isFunction(x) && THEME_PROP_REGEX.test(x.toString());\n });\n\n // $FlowFixMe\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName);\n }\n\n // $FlowFixMe\n WrappedStyledComponent.toString = function () {\n return '.' + WrappedStyledComponent.styledComponentId;\n };\n\n if (isClass) {\n hoistNonReactStatics(WrappedStyledComponent, target, {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n styledComponentId: true,\n target: true,\n withComponent: true\n });\n }\n\n return WrappedStyledComponent;\n}\n\n// \n// Thanks to ReactDOMFactories for this handy list!\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr',\n\n// SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'marker', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// \n\nvar styled = function styled(tag) {\n return constructWithOptions(createStyledComponent, tag);\n};\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(function (domElement) {\n styled[domElement] = styled(domElement);\n});\n\n// \n\nvar GlobalStyle = function () {\n function GlobalStyle(rules, componentId) {\n classCallCheck(this, GlobalStyle);\n\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules, EMPTY_ARRAY);\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n GlobalStyle.prototype.createStyles = function createStyles(executionContext, styleSheet) {\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var css = stringifyRules(flatCSS, '');\n\n styleSheet.inject(this.componentId, css);\n };\n\n GlobalStyle.prototype.removeStyles = function removeStyles(styleSheet) {\n var componentId = this.componentId;\n\n if (styleSheet.hasId(componentId)) {\n styleSheet.remove(componentId);\n }\n };\n\n // TODO: overwrite in-place instead of remove+create?\n\n\n GlobalStyle.prototype.renderStyles = function renderStyles(executionContext, styleSheet) {\n this.removeStyles(styleSheet);\n this.createStyles(executionContext, styleSheet);\n };\n\n return GlobalStyle;\n}();\n\n// \n\n// place our cache into shared context so it'll persist between HMRs\nif (IS_BROWSER) {\n window.scCGSHMRCache = {};\n}\n\nfunction createGlobalStyle(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var id = 'sc-global-' + murmurhash(JSON.stringify(rules));\n var style = new GlobalStyle(rules, id);\n\n var GlobalStyleComponent = function (_React$Component) {\n inherits(GlobalStyleComponent, _React$Component);\n\n function GlobalStyleComponent(props) {\n classCallCheck(this, GlobalStyleComponent);\n\n var _this = possibleConstructorReturn(this, _React$Component.call(this, props));\n\n var _this$constructor = _this.constructor,\n globalStyle = _this$constructor.globalStyle,\n styledComponentId = _this$constructor.styledComponentId;\n\n\n if (IS_BROWSER) {\n window.scCGSHMRCache[styledComponentId] = (window.scCGSHMRCache[styledComponentId] || 0) + 1;\n }\n\n /**\n * This fixes HMR compatibility. Don't ask me why, but this combination of\n * caching the closure variables via statics and then persisting the statics in\n * state works across HMR where no other combination did. ¯\\_(ツ)_/¯\n */\n _this.state = {\n globalStyle: globalStyle,\n styledComponentId: styledComponentId\n };\n return _this;\n }\n\n GlobalStyleComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n if (window.scCGSHMRCache[this.state.styledComponentId]) {\n window.scCGSHMRCache[this.state.styledComponentId] -= 1;\n }\n /**\n * Depending on the order \"render\" is called this can cause the styles to be lost\n * until the next render pass of the remaining instance, which may\n * not be immediate.\n */\n if (window.scCGSHMRCache[this.state.styledComponentId] === 0) {\n this.state.globalStyle.removeStyles(this.styleSheet);\n }\n };\n\n GlobalStyleComponent.prototype.render = function render() {\n var _this2 = this;\n\n if (process.env.NODE_ENV !== 'production' && React.Children.count(this.props.children)) {\n // eslint-disable-next-line no-console\n console.warn('The global style component ' + this.state.styledComponentId + ' was given child JSX. createGlobalStyle does not render children.');\n }\n\n return React.createElement(\n StyleSheetConsumer,\n null,\n function (styleSheet) {\n _this2.styleSheet = styleSheet || StyleSheet.master;\n\n var globalStyle = _this2.state.globalStyle;\n\n\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(STATIC_EXECUTION_CONTEXT, _this2.styleSheet);\n\n return null;\n } else {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = _this2.constructor.defaultProps;\n\n\n var context = _extends({}, _this2.props);\n\n if (typeof theme !== 'undefined') {\n context.theme = determineTheme(_this2.props, theme, defaultProps);\n }\n\n globalStyle.renderStyles(context, _this2.styleSheet);\n\n return null;\n }\n );\n }\n }\n );\n };\n\n return GlobalStyleComponent;\n }(React.Component);\n\n GlobalStyleComponent.globalStyle = style;\n GlobalStyleComponent.styledComponentId = id;\n\n\n return GlobalStyleComponent;\n}\n\n// \n\nvar replaceWhitespace = function replaceWhitespace(str) {\n return str.replace(/\\s|\\\\n/g, '');\n};\n\nfunction keyframes(strings) {\n /* Warning if you've used keyframes on React Native */\n if (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn('`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.');\n }\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n\n var name = generateAlphabeticName(murmurhash(replaceWhitespace(JSON.stringify(rules))));\n\n return new Keyframes(name, stringifyRules(rules, name, '@keyframes'));\n}\n\n// \n\nvar withTheme = (function (Component$$1) {\n var WithTheme = React.forwardRef(function (props, ref) {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = Component$$1.defaultProps;\n\n var themeProp = determineTheme(props, theme, defaultProps);\n\n if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + getComponentName(Component$$1) + '\"');\n }\n\n return React.createElement(Component$$1, _extends({}, props, { theme: themeProp, ref: ref }));\n }\n );\n });\n\n hoistNonReactStatics(WithTheme, Component$$1);\n\n WithTheme.displayName = 'WithTheme(' + getComponentName(Component$$1) + ')';\n\n return WithTheme;\n});\n\n// \n\n/* eslint-disable */\nvar __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS = {\n StyleSheet: StyleSheet\n};\n\n// \n\n/* Warning if you've imported this file on React Native */\nif (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like you've imported 'styled-components' on React Native.\\n\" + \"Perhaps you're looking to import 'styled-components/native'?\\n\" + 'Read more about this at https://www.styled-components.com/docs/basics#react-native');\n}\n\n/* Warning if there are several instances of styled-components */\nif (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test' && typeof window !== 'undefined' && typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Node.js') === -1 && navigator.userAgent.indexOf('jsdom') === -1) {\n window['__styled-components-init__'] = window['__styled-components-init__'] || 0;\n\n if (window['__styled-components-init__'] === 1) {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. \" + 'This may cause dynamic styles not rendering properly, errors happening during rehydration process ' + 'and makes your application bigger without a good reason.\\n\\n' + 'See https://s-c.sh/2BAXzed for more info.');\n }\n\n window['__styled-components-init__'] += 1;\n}\n\n//\n\nexport default styled;\nexport { createGlobalStyle, css, isStyledComponent, keyframes, ServerStyleSheet, StyleSheetConsumer, StyleSheetContext, StyleSheetManager, ThemeConsumer, ThemeContext, ThemeProvider, withTheme, __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS };\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","export const colors = {\n PRIMARY: '#ABE2FB',\n SECONDARY: '#E6E6E6',\n DARKER_PRIMARY: '#87ceeb',\n OFF_WHITE: '#15181A',\n GREY: '#D3D3D3',\n RED: '#FF5E5E',\n DARK_GREY: '#535D63'\n};\n\nexport const TRACK_TOTAL_DEG = 270.0;\n\nexport const RADIAN = Math.PI / 180.0;\n\nexport const light = {\n primary: colors.PRIMARY,\n secondary: colors.SECONDARY,\n detail: colors.GREY,\n dark: false\n};\n\nexport const dark = {\n primary: colors.PRIMARY,\n secondary: colors.DARK_GREY,\n detail: colors.DARK_GREY,\n dark: true\n};\n\nexport default {\n dark,\n light,\n colors\n};\n","import { omit } from 'ramda';\n\nexport const getClassName = (componentName, theme) => {\n return 'daq-' + componentName + (theme && theme.dark ? '--dark' : '--light');\n};\n\nexport const getFilteredProps = props => omit(['className', 'id', 'setProps', 'style'], props);\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(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};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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};","import React from 'react';\nimport styled from 'styled-components';\n\nimport Label from './Label.styled';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-around;\n flex-direction: column;\n ${({ fullSize }) => {\n if (fullSize) return 'width: 100%;';\n return '';\n }}\n`;\n\nfunction LabelContainer(props) {\n let labelText = props.label;\n let customLabelStyle = {};\n if (typeof props.label === 'object') {\n labelText = props.label.label;\n customLabelStyle = props.label.style;\n }\n const labelElement = \n // if (labelText && labelText.length) {\n return (\n \n {props.labelPosition == 'top' && labelElement}\n {props.children}\n {props.labelPosition != 'top' && labelElement}\n \n );\n // }\n // return
{props.children}
;\n}\n\nLabelContainer.defaultProps = {\n labelPosition: 'bottom'\n};\n\nexport default LabelContainer;\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = 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 (0, _defineProperty2.default)(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}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","(function() { module.exports = window[\"ReactDOM\"]; }());","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n\tvar _react = __webpack_require__(1);\n\n\tvar _react2 = _interopRequireDefault(_react);\n\n\tvar _propTypes = __webpack_require__(2);\n\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\tvar KEYCODE_UP = 38;\n\tvar KEYCODE_DOWN = 40;\n\tvar IS_BROWSER = typeof document != 'undefined';\n\tvar RE_NUMBER = /^[+-]?((\\.\\d+)|(\\d+(\\.\\d+)?))$/;\n\tvar RE_INCOMPLETE_NUMBER = /^([+-]|\\.0*|[+-]\\.0*|[+-]?\\d+\\.)?$/;\n\n\tfunction addClass(element, className) {\n\t if (element.classList) {\n\t return element.classList.add(className);\n\t }\n\t if (!element.className.search(new RegExp(\"\\\\b\" + className + \"\\\\b\"))) {\n\t element.className = \" \" + className;\n\t }\n\t}\n\n\tfunction removeClass(element, className) {\n\t if (element.className) {\n\t if (element.classList) {\n\t return element.classList.remove(className);\n\t }\n\n\t element.className = element.className.replace(new RegExp(\"\\\\b\" + className + \"\\\\b\", \"g\"), \"\");\n\t }\n\t}\n\n\tfunction access(object, prop, defaultValue) {\n\t var result = object[prop];\n\t if (typeof result == \"function\") {\n\t for (var _len = arguments.length, args = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n\t args[_key - 3] = arguments[_key];\n\t }\n\n\t result = result.apply(undefined, args);\n\t }\n\t return result === undefined ? defaultValue : result;\n\t}\n\n\tvar NumericInput = function (_Component) {\n\t _inherits(NumericInput, _Component);\n\n\t function NumericInput() {\n\t var _ref;\n\n\t _classCallCheck(this, NumericInput);\n\n\t for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t args[_key2] = arguments[_key2];\n\t }\n\n\t var _this = _possibleConstructorReturn(this, (_ref = NumericInput.__proto__ || Object.getPrototypeOf(NumericInput)).call.apply(_ref, [this].concat(args)));\n\n\t _this._isStrict = !!_this.props.strict;\n\n\t _this.state = _extends({\n\t btnDownHover: false,\n\t btnDownActive: false,\n\t btnUpHover: false,\n\t btnUpActive: false,\n\t stringValue: \"\"\n\t }, _this._propsToState(_this.props));\n\t _this.stop = _this.stop.bind(_this);\n\t _this.onTouchEnd = _this.onTouchEnd.bind(_this);\n\t _this.refsInput = {};\n\t _this.refsWrapper = {};\n\t return _this;\n\t }\n\n\t _createClass(NumericInput, [{\n\t key: '_propsToState',\n\t value: function _propsToState(props) {\n\t var out = {};\n\n\t if (props.hasOwnProperty(\"value\")) {\n\t out.stringValue = String(props.value || props.value === 0 ? props.value : '').trim();\n\n\t out.value = out.stringValue !== '' ? this._parse(props.value) : null;\n\t } else if (!this._isMounted && props.hasOwnProperty(\"defaultValue\")) {\n\t out.stringValue = String(props.defaultValue || props.defaultValue === 0 ? props.defaultValue : '').trim();\n\n\t out.value = props.defaultValue !== '' ? this._parse(props.defaultValue) : null;\n\t }\n\n\t return out;\n\t }\n\t }, {\n\t key: 'componentWillReceiveProps',\n\t value: function componentWillReceiveProps(props) {\n\t var _this2 = this;\n\n\t this._isStrict = !!props.strict;\n\t var nextState = this._propsToState(props);\n\t if (Object.keys(nextState).length) {\n\t this._ignoreValueChange = true;\n\t this.setState(nextState, function () {\n\t _this2._ignoreValueChange = false;\n\t });\n\t }\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate() {\n\t this.saveSelection();\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate(prevProps, prevState) {\n\t if (!this._ignoreValueChange && prevState.value !== this.state.value && (!isNaN(this.state.value) || this.state.value === null)) {\n\t this._invokeEventCallback(\"onChange\", this.state.value, this.refsInput.value, this.refsInput);\n\t }\n\n\t if (this._inputFocus) {\n\t this.refsInput.focus();\n\n\t if (this.state.selectionStart || this.state.selectionStart === 0) {\n\t this.refsInput.selectionStart = this.state.selectionStart;\n\t }\n\n\t if (this.state.selectionEnd || this.state.selectionEnd === 0) {\n\t this.refsInput.selectionEnd = this.state.selectionEnd;\n\t }\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t this._isMounted = false;\n\t this.stop();\n\t }\n\t }, {\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var _this3 = this;\n\n\t this._isMounted = true;\n\t this.refsInput.getValueAsNumber = function () {\n\t return _this3.state.value || 0;\n\t };\n\n\t this.refsInput.setValue = function (value) {\n\t _this3.setState({\n\t value: _this3._parse(value),\n\t stringValue: value\n\t });\n\t };\n\n\t if (!this._inputFocus && IS_BROWSER && document.activeElement === this.refsInput) {\n\t this._inputFocus = true;\n\t this.refsInput.focus();\n\t this._invokeEventCallback(\"onFocus\", {\n\t target: this.refsInput,\n\t type: \"focus\"\n\t });\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'saveSelection',\n\t value: function saveSelection() {\n\t this.state.selectionStart = this.refsInput.selectionStart;\n\t this.state.selectionEnd = this.refsInput.selectionEnd;\n\t }\n\t }, {\n\t key: 'checkValidity',\n\t value: function checkValidity() {\n\t var valid = void 0,\n\t validationError = \"\";\n\n\t var supportsValidation = !!this.refsInput.checkValidity;\n\n\t var noValidate = !!(this.props.noValidate && this.props.noValidate != \"false\");\n\n\t this.refsInput.noValidate = noValidate;\n\n\t valid = noValidate || !supportsValidation;\n\n\t if (valid) {\n\t validationError = \"\";\n\t } else {\n\t if (this.refsInput.pattern === \"\") {\n\t this.refsInput.pattern = this.props.required ? \".+\" : \".*\";\n\t }\n\n\t if (supportsValidation) {\n\t this.refsInput.checkValidity();\n\t valid = this.refsInput.validity.valid;\n\n\t if (!valid) {\n\t validationError = this.refsInput.validationMessage;\n\t }\n\t }\n\n\t if (valid && supportsValidation && this.props.maxLength) {\n\t if (this.refsInput.value.length > this.props.maxLength) {\n\t validationError = \"This value is too long\";\n\t }\n\t }\n\t }\n\n\t validationError = validationError || (valid ? \"\" : this.refsInput.validationMessage || \"Unknown Error\");\n\n\t var validStateChanged = this._valid !== validationError;\n\t this._valid = validationError;\n\t if (validationError) {\n\t addClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onInvalid\", validationError, this.state.value, this.refsInput.value);\n\t }\n\t } else {\n\t removeClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onValid\", this.state.value, this.refsInput.value);\n\t }\n\t }\n\t }\n\t }, {\n\t key: '_toNumber',\n\t value: function _toNumber(x) {\n\t var n = parseFloat(x);\n\t if (isNaN(n) || !isFinite(n)) {\n\t n = 0;\n\t }\n\n\t if (this._isStrict) {\n\t var precision = access(this.props, \"precision\", null, this);\n\t var q = Math.pow(10, precision === null ? 10 : precision);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t n = Math.min(Math.max(n, _min), _max);\n\t n = Math.round(n * q) / q;\n\t }\n\n\t return n;\n\t }\n\t }, {\n\t key: '_parse',\n\t value: function _parse(x) {\n\t x = String(x);\n\t if (typeof this.props.parse == 'function') {\n\t return parseFloat(this.props.parse(x));\n\t }\n\t return parseFloat(x);\n\t }\n\t }, {\n\t key: '_format',\n\t value: function _format(n) {\n\t var _n = this._toNumber(n);\n\t var precision = access(this.props, \"precision\", null, this);\n\t if (precision !== null) {\n\t _n = n.toFixed(precision);\n\t }\n\n\t _n += \"\";\n\n\t if (this.props.format) {\n\t return this.props.format(_n);\n\t }\n\n\t return _n;\n\t }\n\t }, {\n\t key: '_step',\n\t value: function _step(n, callback) {\n\t var _isStrict = this._isStrict;\n\t this._isStrict = true;\n\n\t var _step = +access(this.props, \"step\", NumericInput.defaultProps.step, this, n > 0 ? NumericInput.DIRECTION_UP : NumericInput.DIRECTION_DOWN);\n\n\t var _n = this._toNumber((this.state.value || 0) + _step * n);\n\n\t if (this.props.snap) {\n\t _n = Math.round(_n / _step) * _step;\n\t }\n\n\t this._isStrict = _isStrict;\n\n\t if (_n !== this.state.value) {\n\t this.setState({ value: _n, stringValue: _n + \"\" }, callback);\n\t return true;\n\t }\n\n\t return false;\n\t }\n\t }, {\n\t key: '_onKeyDown',\n\t value: function _onKeyDown() {\n\t for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n\t args[_key3] = arguments[_key3];\n\t }\n\n\t args[0].persist();\n\t this._invokeEventCallback.apply(this, [\"onKeyDown\"].concat(args));\n\t var e = args[0];\n\t if (!e.isDefaultPrevented()) {\n\t if (e.keyCode === KEYCODE_UP) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? 0.1 : e.shiftKey ? 10 : 1);\n\t } else if (e.keyCode === KEYCODE_DOWN) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? -0.1 : e.shiftKey ? -10 : -1);\n\t } else {\n\t var _value = this.refsInput.value,\n\t length = _value.length;\n\t if (e.keyCode === 8) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd > 0 && _value.length && _value.charAt(this.refsInput.selectionEnd - 1) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd - 1;\n\t }\n\t } else if (e.keyCode === 46) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd < length + 1 && _value.length && _value.charAt(this.refsInput.selectionEnd) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd + 1;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'stop',\n\t value: function stop() {\n\t if (this._timer) {\n\t clearTimeout(this._timer);\n\t }\n\t }\n\t }, {\n\t key: 'increase',\n\t value: function increase() {\n\t var _this4 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(1, callback);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t if (isNaN(this.state.value) || +this.state.value < _max) {\n\t this._timer = setTimeout(function () {\n\t _this4.increase(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'decrease',\n\t value: function decrease() {\n\t var _this5 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(-1, callback);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t if (isNaN(this.state.value) || +this.state.value > _min) {\n\t this._timer = setTimeout(function () {\n\t _this5.decrease(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'onMouseDown',\n\t value: function onMouseDown(dir, callback) {\n\t if (dir == 'down') {\n\t this.decrease(false, callback);\n\t } else if (dir == 'up') {\n\t this.increase(false, callback);\n\t }\n\t }\n\t }, {\n\t key: 'onTouchStart',\n\t value: function onTouchStart(dir, e) {\n\t e.preventDefault();\n\t if (dir == 'down') {\n\t this.decrease();\n\t } else if (dir == 'up') {\n\t this.increase();\n\t }\n\t }\n\t }, {\n\t key: 'onTouchEnd',\n\t value: function onTouchEnd(e) {\n\t e.preventDefault();\n\t this.stop();\n\t }\n\t }, {\n\t key: '_invokeEventCallback',\n\t value: function _invokeEventCallback(callbackName) {\n\t if (typeof this.props[callbackName] == \"function\") {\n\t var _props$callbackName;\n\n\t for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n\t args[_key4 - 1] = arguments[_key4];\n\t }\n\n\t (_props$callbackName = this.props[callbackName]).call.apply(_props$callbackName, [null].concat(args));\n\t }\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _this6 = this;\n\n\t var props = this.props;\n\t var state = this.state;\n\t var css = {};\n\n\t var _props = this.props,\n\t step = _props.step,\n\t min = _props.min,\n\t max = _props.max,\n\t precision = _props.precision,\n\t parse = _props.parse,\n\t format = _props.format,\n\t mobile = _props.mobile,\n\t snap = _props.snap,\n\t componentClass = _props.componentClass,\n\t value = _props.value,\n\t type = _props.type,\n\t style = _props.style,\n\t defaultValue = _props.defaultValue,\n\t onInvalid = _props.onInvalid,\n\t onValid = _props.onValid,\n\t strict = _props.strict,\n\t noStyle = _props.noStyle,\n\t rest = _objectWithoutProperties(_props, ['step', 'min', 'max', 'precision', 'parse', 'format', 'mobile', 'snap', 'componentClass', 'value', 'type', 'style', 'defaultValue', 'onInvalid', 'onValid', 'strict', 'noStyle']);\n\n\t noStyle = noStyle || style === false;\n\n\t for (var x in NumericInput.style) {\n\t css[x] = _extends({}, NumericInput.style[x], style ? style[x] || {} : {});\n\t }\n\n\t var hasFormControl = props.className && /\\bform-control\\b/.test(props.className);\n\n\t if (mobile == 'auto') {\n\t mobile = IS_BROWSER && 'ontouchstart' in document;\n\t }\n\n\t if (typeof mobile == \"function\") {\n\t mobile = mobile.call(this);\n\t }\n\t mobile = !!mobile;\n\n\t var attrs = {\n\t wrap: {\n\t style: noStyle ? null : css.wrap,\n\t className: 'react-numeric-input',\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsWrapper = e;\n\t }\n\t },\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined\n\t },\n\t input: _extends({\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsInput = e;\n\t }\n\t },\n\t type: 'text',\n\t style: noStyle ? null : _extends({}, css.input, !hasFormControl ? css['input:not(.form-control)'] : {}, this._inputFocus ? css['input:focus'] : {})\n\t }, rest),\n\t btnUp: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnUp, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnUpActive ? css['btn:active'] : state.btnUpHover ? css['btn:hover'] : {})\n\t },\n\t btnDown: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnDown, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnDownActive ? css['btn:active'] : state.btnDownHover ? css['btn:hover'] : {})\n\t }\n\t };\n\n\t var stringValue = String(state.stringValue || (state.value || state.value === 0 ? state.value : \"\") || \"\");\n\n\t var loose = !this._isStrict && (this._inputFocus || !this._isMounted);\n\n\t if (loose && RE_INCOMPLETE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (loose && stringValue && !RE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (state.value || state.value === 0) {\n\t attrs.input.value = this._format(state.value);\n\t } else {\n\t attrs.input.value = \"\";\n\t }\n\n\t if (hasFormControl && !noStyle) {\n\t _extends(attrs.wrap.style, css['wrap.hasFormControl']);\n\t }\n\n\t if (mobile && !noStyle) {\n\t _extends(attrs.input.style, css['input.mobile']);\n\t _extends(attrs.btnUp.style, css['btnUp.mobile']);\n\t _extends(attrs.btnDown.style, css['btnDown.mobile']);\n\t }\n\n\t if (!props.disabled && !props.readOnly) {\n\t _extends(attrs.wrap, {\n\t onMouseUp: this.stop,\n\t onMouseLeave: this.stop\n\t });\n\n\t _extends(attrs.btnUp, {\n\t onTouchStart: this.onTouchStart.bind(this, 'up'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnUpHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnUpHover: false,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n\t args[_key5] = arguments[_key5];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('up');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.btnDown, {\n\t onTouchStart: this.onTouchStart.bind(this, 'down'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnDownHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnDownHover: false,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n\t args[_key6] = arguments[_key6];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('down');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.input, {\n\t onChange: function onChange(e) {\n\t var original = e.target.value;\n\t var val = _this6._parse(original);\n\t if (isNaN(val)) {\n\t val = null;\n\t }\n\t _this6.setState({\n\t value: _this6._isStrict ? _this6._toNumber(val) : val,\n\t stringValue: original\n\t });\n\t },\n\t onKeyDown: this._onKeyDown.bind(this),\n\t onInput: function onInput() {\n\t for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n\t args[_key7] = arguments[_key7];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onInput\"].concat(args));\n\t },\n\t onSelect: function onSelect() {\n\t for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n\t args[_key8] = arguments[_key8];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onSelect\"].concat(args));\n\t },\n\t onFocus: function onFocus() {\n\t for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n\t args[_key9] = arguments[_key9];\n\t }\n\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val,\n\t stringValue: val || val === 0 ? val + \"\" : \"\"\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t });\n\t },\n\t onBlur: function onBlur() {\n\t for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n\t args[_key10] = arguments[_key10];\n\t }\n\n\t var _isStrict = _this6._isStrict;\n\t _this6._isStrict = true;\n\t args[0].persist();\n\t _this6._inputFocus = false;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onBlur\"].concat(args));\n\t _this6._isStrict = _isStrict;\n\t });\n\t }\n\t });\n\t } else {\n\t if (!noStyle && props.disabled) {\n\t _extends(attrs.input.style, css['input:disabled']);\n\t }\n\t }\n\n\t var InputTag = componentClass || 'input';\n\n\t if (mobile) {\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus }),\n\t _react2.default.createElement('i', { style: noStyle ? null : css.plus })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus })\n\t )\n\t );\n\t }\n\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowUp })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowDown })\n\t )\n\t );\n\t }\n\t }]);\n\n\t return NumericInput;\n\t}(_react.Component);\n\n\tNumericInput.propTypes = {\n\t step: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t min: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t max: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t precision: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t maxLength: _propTypes2.default.number,\n\t parse: _propTypes2.default.func,\n\t format: _propTypes2.default.func,\n\t className: _propTypes2.default.string,\n\t disabled: _propTypes2.default.bool,\n\t readOnly: _propTypes2.default.bool,\n\t required: _propTypes2.default.bool,\n\t snap: _propTypes2.default.bool,\n\t noValidate: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n\t style: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),\n\t noStyle: _propTypes2.default.bool,\n\t type: _propTypes2.default.string,\n\t pattern: _propTypes2.default.string,\n\t onFocus: _propTypes2.default.func,\n\t onBlur: _propTypes2.default.func,\n\t onKeyDown: _propTypes2.default.func,\n\t onChange: _propTypes2.default.func,\n\t onInvalid: _propTypes2.default.func,\n\t onValid: _propTypes2.default.func,\n\t onInput: _propTypes2.default.func,\n\t onSelect: _propTypes2.default.func,\n\t size: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t strict: _propTypes2.default.bool,\n\t componentClass: _propTypes2.default.string,\n\t mobile: function mobile(props, propName) {\n\t var prop = props[propName];\n\t if (prop !== true && prop !== false && prop !== 'auto' && typeof prop != 'function') {\n\t return new Error('The \"mobile\" prop must be true, false, \"auto\" or a function');\n\t }\n\t }\n\t};\n\tNumericInput.defaultProps = {\n\t step: 1,\n\t min: Number.MIN_SAFE_INTEGER || -9007199254740991,\n\t max: Number.MAX_SAFE_INTEGER || 9007199254740991,\n\t precision: null,\n\t parse: null,\n\t format: null,\n\t mobile: 'auto',\n\t strict: false,\n\t componentClass: \"input\",\n\t style: {}\n\t};\n\tNumericInput.style = {\n\t wrap: {\n\t position: 'relative',\n\t display: 'inline-block'\n\t },\n\n\t 'wrap.hasFormControl': {\n\t display: 'block'\n\t },\n\n\t arrowUp: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0 0.6ex 0.6ex 0.6ex',\n\t borderColor: 'transparent transparent rgba(0, 0, 0, 0.7)',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t arrowDown: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0.6ex 0.6ex 0 0.6ex',\n\t borderColor: 'rgba(0, 0, 0, 0.7) transparent transparent',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t plus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 2,\n\t height: 10,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-5px 0 0 -1px'\n\t },\n\n\t minus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 10,\n\t height: 2,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-1px 0 0 -5px'\n\t },\n\n\t btn: {\n\t position: 'absolute',\n\t right: 2,\n\t width: '2.26ex',\n\t borderColor: 'rgba(0,0,0,.1)',\n\t borderStyle: 'solid',\n\t textAlign: 'center',\n\t cursor: 'default',\n\t transition: 'all 0.1s',\n\t background: 'rgba(0,0,0,.1)',\n\t boxShadow: '-1px -1px 3px rgba(0,0,0,.1) inset,' + '1px 1px 3px rgba(255,255,255,.7) inset'\n\t },\n\n\t btnUp: {\n\t top: 2,\n\t bottom: '50%',\n\t borderRadius: '2px 2px 0 0',\n\t borderWidth: '1px 1px 0 1px'\n\t },\n\n\t 'btnUp.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t btnDown: {\n\t top: '50%',\n\t bottom: 2,\n\t borderRadius: '0 0 2px 2px',\n\t borderWidth: '0 1px 1px 1px'\n\t },\n\n\t 'btnDown.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t left: 2,\n\t top: 2,\n\t right: 'auto',\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t 'btn:hover': {\n\t background: 'rgba(0,0,0,.2)'\n\t },\n\n\t 'btn:active': {\n\t background: 'rgba(0,0,0,.3)',\n\t boxShadow: '0 1px 3px rgba(0,0,0,.2) inset,' + '-1px -1px 4px rgba(255,255,255,.5) inset'\n\t },\n\n\t 'btn:disabled': {\n\t opacity: 0.5,\n\t boxShadow: 'none',\n\t cursor: 'not-allowed'\n\t },\n\n\t input: {\n\t paddingRight: '3ex',\n\t boxSizing: 'border-box',\n\t fontSize: 'inherit'\n\t },\n\n\t 'input:not(.form-control)': {\n\t border: '1px solid #ccc',\n\t borderRadius: 2,\n\t paddingLeft: 4,\n\t display: 'block',\n\t WebkitAppearance: 'none',\n\t lineHeight: 'normal'\n\t },\n\n\t 'input.mobile': {\n\t paddingLeft: ' 3.4ex',\n\t paddingRight: '3.4ex',\n\t textAlign: 'center'\n\t },\n\n\t 'input:focus': {},\n\n\t 'input:disabled': {\n\t color: 'rgba(0, 0, 0, 0.3)',\n\t textShadow: '0 1px 0 rgba(255, 255, 255, 0.8)'\n\t }\n\t};\n\tNumericInput.SPEED = 50;\n\tNumericInput.DELAY = 500;\n\tNumericInput.DIRECTION_UP = \"up\";\n\tNumericInput.DIRECTION_DOWN = \"down\";\n\n\n\tmodule.exports = NumericInput;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"react\");\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"prop-types\");\n\n/***/ })\n/******/ ]);","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","/**\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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (typeof obj === 'undefined') {\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from './_curry1';\nimport _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _isArrayLike from './_isArrayLike';\nimport _xwrap from './_xwrap';\nimport bind from '../bind';\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from './_has';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n};\n\nexport default _isArguments;","import _curry1 from './internal/_curry1';\nimport _has from './internal/_has';\nimport _isArguments from './internal/_isArguments';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar _keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n} : function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n};\nvar keys = /*#__PURE__*/_curry1(_keys);\nexport default keys;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","import _objectAssign from './_objectAssign';\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _curry1 from './internal/_curry1';\nimport _of from './internal/_of';\n\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\nvar of = /*#__PURE__*/_curry1(_of);\nexport default of;","import _curry2 from './internal/_curry2';\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\nvar omit = /*#__PURE__*/_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nexport default omit;","import _cloneRegExp from './internal/_cloneRegExp';\nimport _curry2 from './internal/_curry2';\nimport _isRegExp from './internal/_isRegExp';\nimport toString from './toString';\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\nvar test = /*#__PURE__*/_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n return _cloneRegExp(pattern).test(str);\n});\nexport default test;","import _curry1 from './internal/_curry1';\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\nvar _trim = !hasProtoTrim || /*#__PURE__*/ws.trim() || ! /*#__PURE__*/zeroWidth.trim() ? function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n} : function trim(str) {\n return str.trim();\n};\nvar trim = /*#__PURE__*/_curry1(_trim);\nexport default trim;","export { default as F } from './F';\nexport { default as T } from './T';\nexport { default as __ } from './__';\nexport { default as add } from './add';\nexport { default as addIndex } from './addIndex';\nexport { default as adjust } from './adjust';\nexport { default as all } from './all';\nexport { default as allPass } from './allPass';\nexport { default as always } from './always';\nexport { default as and } from './and';\nexport { default as any } from './any';\nexport { default as anyPass } from './anyPass';\nexport { default as ap } from './ap';\nexport { default as aperture } from './aperture';\nexport { default as append } from './append';\nexport { default as apply } from './apply';\nexport { default as applySpec } from './applySpec';\nexport { default as applyTo } from './applyTo';\nexport { default as ascend } from './ascend';\nexport { default as assoc } from './assoc';\nexport { default as assocPath } from './assocPath';\nexport { default as binary } from './binary';\nexport { default as bind } from './bind';\nexport { default as both } from './both';\nexport { default as call } from './call';\nexport { default as chain } from './chain';\nexport { default as clamp } from './clamp';\nexport { default as clone } from './clone';\nexport { default as comparator } from './comparator';\nexport { default as complement } from './complement';\nexport { default as compose } from './compose';\nexport { default as composeK } from './composeK';\nexport { default as composeP } from './composeP';\nexport { default as concat } from './concat';\nexport { default as cond } from './cond';\nexport { default as construct } from './construct';\nexport { default as constructN } from './constructN';\nexport { default as contains } from './contains';\nexport { default as converge } from './converge';\nexport { default as countBy } from './countBy';\nexport { default as curry } from './curry';\nexport { default as curryN } from './curryN';\nexport { default as dec } from './dec';\nexport { default as defaultTo } from './defaultTo';\nexport { default as descend } from './descend';\nexport { default as difference } from './difference';\nexport { default as differenceWith } from './differenceWith';\nexport { default as dissoc } from './dissoc';\nexport { default as dissocPath } from './dissocPath';\nexport { default as divide } from './divide';\nexport { default as drop } from './drop';\nexport { default as dropLast } from './dropLast';\nexport { default as dropLastWhile } from './dropLastWhile';\nexport { default as dropRepeats } from './dropRepeats';\nexport { default as dropRepeatsWith } from './dropRepeatsWith';\nexport { default as dropWhile } from './dropWhile';\nexport { default as either } from './either';\nexport { default as empty } from './empty';\nexport { default as endsWith } from './endsWith';\nexport { default as eqBy } from './eqBy';\nexport { default as eqProps } from './eqProps';\nexport { default as equals } from './equals';\nexport { default as evolve } from './evolve';\nexport { default as filter } from './filter';\nexport { default as find } from './find';\nexport { default as findIndex } from './findIndex';\nexport { default as findLast } from './findLast';\nexport { default as findLastIndex } from './findLastIndex';\nexport { default as flatten } from './flatten';\nexport { default as flip } from './flip';\nexport { default as forEach } from './forEach';\nexport { default as forEachObjIndexed } from './forEachObjIndexed';\nexport { default as fromPairs } from './fromPairs';\nexport { default as groupBy } from './groupBy';\nexport { default as groupWith } from './groupWith';\nexport { default as gt } from './gt';\nexport { default as gte } from './gte';\nexport { default as has } from './has';\nexport { default as hasIn } from './hasIn';\nexport { default as head } from './head';\nexport { default as identical } from './identical';\nexport { default as identity } from './identity';\nexport { default as ifElse } from './ifElse';\nexport { default as inc } from './inc';\nexport { default as indexBy } from './indexBy';\nexport { default as indexOf } from './indexOf';\nexport { default as init } from './init';\nexport { default as innerJoin } from './innerJoin';\nexport { default as insert } from './insert';\nexport { default as insertAll } from './insertAll';\nexport { default as intersection } from './intersection';\nexport { default as intersperse } from './intersperse';\nexport { default as into } from './into';\nexport { default as invert } from './invert';\nexport { default as invertObj } from './invertObj';\nexport { default as invoker } from './invoker';\nexport { default as is } from './is';\nexport { default as isEmpty } from './isEmpty';\nexport { default as isNil } from './isNil';\nexport { default as join } from './join';\nexport { default as juxt } from './juxt';\nexport { default as keys } from './keys';\nexport { default as keysIn } from './keysIn';\nexport { default as last } from './last';\nexport { default as lastIndexOf } from './lastIndexOf';\nexport { default as length } from './length';\nexport { default as lens } from './lens';\nexport { default as lensIndex } from './lensIndex';\nexport { default as lensPath } from './lensPath';\nexport { default as lensProp } from './lensProp';\nexport { default as lift } from './lift';\nexport { default as liftN } from './liftN';\nexport { default as lt } from './lt';\nexport { default as lte } from './lte';\nexport { default as map } from './map';\nexport { default as mapAccum } from './mapAccum';\nexport { default as mapAccumRight } from './mapAccumRight';\nexport { default as mapObjIndexed } from './mapObjIndexed';\nexport { default as match } from './match';\nexport { default as mathMod } from './mathMod';\nexport { default as max } from './max';\nexport { default as maxBy } from './maxBy';\nexport { default as mean } from './mean';\nexport { default as median } from './median';\nexport { default as memoize } from './memoize';\nexport { default as memoizeWith } from './memoizeWith';\nexport { default as merge } from './merge';\nexport { default as mergeAll } from './mergeAll';\nexport { default as mergeDeepLeft } from './mergeDeepLeft';\nexport { default as mergeDeepRight } from './mergeDeepRight';\nexport { default as mergeDeepWith } from './mergeDeepWith';\nexport { default as mergeDeepWithKey } from './mergeDeepWithKey';\nexport { default as mergeWith } from './mergeWith';\nexport { default as mergeWithKey } from './mergeWithKey';\nexport { default as min } from './min';\nexport { default as minBy } from './minBy';\nexport { default as modulo } from './modulo';\nexport { default as multiply } from './multiply';\nexport { default as nAry } from './nAry';\nexport { default as negate } from './negate';\nexport { default as none } from './none';\nexport { default as not } from './not';\nexport { default as nth } from './nth';\nexport { default as nthArg } from './nthArg';\nexport { default as o } from './o';\nexport { default as objOf } from './objOf';\nexport { default as of } from './of';\nexport { default as omit } from './omit';\nexport { default as once } from './once';\nexport { default as or } from './or';\nexport { default as over } from './over';\nexport { default as pair } from './pair';\nexport { default as partial } from './partial';\nexport { default as partialRight } from './partialRight';\nexport { default as partition } from './partition';\nexport { default as path } from './path';\nexport { default as pathEq } from './pathEq';\nexport { default as pathOr } from './pathOr';\nexport { default as pathSatisfies } from './pathSatisfies';\nexport { default as pick } from './pick';\nexport { default as pickAll } from './pickAll';\nexport { default as pickBy } from './pickBy';\nexport { default as pipe } from './pipe';\nexport { default as pipeK } from './pipeK';\nexport { default as pipeP } from './pipeP';\nexport { default as pluck } from './pluck';\nexport { default as prepend } from './prepend';\nexport { default as product } from './product';\nexport { default as project } from './project';\nexport { default as prop } from './prop';\nexport { default as propEq } from './propEq';\nexport { default as propIs } from './propIs';\nexport { default as propOr } from './propOr';\nexport { default as propSatisfies } from './propSatisfies';\nexport { default as props } from './props';\nexport { default as range } from './range';\nexport { default as reduce } from './reduce';\nexport { default as reduceBy } from './reduceBy';\nexport { default as reduceRight } from './reduceRight';\nexport { default as reduceWhile } from './reduceWhile';\nexport { default as reduced } from './reduced';\nexport { default as reject } from './reject';\nexport { default as remove } from './remove';\nexport { default as repeat } from './repeat';\nexport { default as replace } from './replace';\nexport { default as reverse } from './reverse';\nexport { default as scan } from './scan';\nexport { default as sequence } from './sequence';\nexport { default as set } from './set';\nexport { default as slice } from './slice';\nexport { default as sort } from './sort';\nexport { default as sortBy } from './sortBy';\nexport { default as sortWith } from './sortWith';\nexport { default as split } from './split';\nexport { default as splitAt } from './splitAt';\nexport { default as splitEvery } from './splitEvery';\nexport { default as splitWhen } from './splitWhen';\nexport { default as startsWith } from './startsWith';\nexport { default as subtract } from './subtract';\nexport { default as sum } from './sum';\nexport { default as symmetricDifference } from './symmetricDifference';\nexport { default as symmetricDifferenceWith } from './symmetricDifferenceWith';\nexport { default as tail } from './tail';\nexport { default as take } from './take';\nexport { default as takeLast } from './takeLast';\nexport { default as takeLastWhile } from './takeLastWhile';\nexport { default as takeWhile } from './takeWhile';\nexport { default as tap } from './tap';\nexport { default as test } from './test';\nexport { default as times } from './times';\nexport { default as toLower } from './toLower';\nexport { default as toPairs } from './toPairs';\nexport { default as toPairsIn } from './toPairsIn';\nexport { default as toString } from './toString';\nexport { default as toUpper } from './toUpper';\nexport { default as transduce } from './transduce';\nexport { default as transpose } from './transpose';\nexport { default as traverse } from './traverse';\nexport { default as trim } from './trim';\nexport { default as tryCatch } from './tryCatch';\nexport { default as type } from './type';\nexport { default as unapply } from './unapply';\nexport { default as unary } from './unary';\nexport { default as uncurryN } from './uncurryN';\nexport { default as unfold } from './unfold';\nexport { default as union } from './union';\nexport { default as unionWith } from './unionWith';\nexport { default as uniq } from './uniq';\nexport { default as uniqBy } from './uniqBy';\nexport { default as uniqWith } from './uniqWith';\nexport { default as unless } from './unless';\nexport { default as unnest } from './unnest';\nexport { default as until } from './until';\nexport { default as update } from './update';\nexport { default as useWith } from './useWith';\nexport { default as values } from './values';\nexport { default as valuesIn } from './valuesIn';\nexport { default as view } from './view';\nexport { default as when } from './when';\nexport { default as where } from './where';\nexport { default as whereEq } from './whereEq';\nexport { default as without } from './without';\nexport { default as xprod } from './xprod';\nexport { default as zip } from './zip';\nexport { default as zipObj } from './zipObj';\nexport { default as zipWith } from './zipWith';","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","module.exports = {};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","module.exports = true;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","exports.f = {}.propertyIsEnumerable;\n","import styled, { css } from 'styled-components';\n\nexport default styled.label`\n display: block;\n font-size: 14px;\n ${({ position }) =>\n position === 'top'\n ? css`\n margin-bottom: 8px;\n `\n : css`\n margin-top: 8px;\n `}\n ${props =>\n css`\n ${props.css}\n `}\n`;\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _getPrototypeOf = require(\"../core-js/object/get-prototype-of\");\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _getOwnPropertyDescriptor = require(\"../core-js/object/get-own-property-descriptor\");\n\nvar _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = (0, _getOwnPropertyDescriptor2.default)(object, property);\n\n if (desc === undefined) {\n var parent = (0, _getPrototypeOf2.default)(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};","/**\n * CSS conic-gradient() polyfill\n * By Lea Verou — http://lea.verou.me\n * MIT license\n */\n\n(function(){\n\nvar π = Math.PI;\nvar τ = 2 * π;\nvar ε = .00001;\nvar deg = π/180;\n\nvar dummy = document.createElement(\"div\");\ndocument.head.appendChild(dummy);\n\nvar _ = self.ConicGradient = function(o) {\n\tvar me = this;\n\t_.all.push(this);\n\n\to = o || {};\n\n\tthis.canvas = document.createElement(\"canvas\");\n\tthis.context = this.canvas.getContext(\"2d\");\n\n\tthis.repeating = !!o.repeating;\n\n\tthis.size = o.size || Math.max(innerWidth, innerHeight);\n\n\tthis.canvas.width = this.canvas.height = this.size;\n\n\tvar stops = o.stops;\n\n\tthis.stops = (stops || \"\").split(/\\s*,(?![^(]*\\))\\s*/); // commas that are not followed by a ) without a ( first\n\n\tthis.from = 0;\n\n\tfor (var i=0; i 0) {\n\t\tvar first = this.stops[0].clone();\n\t\tfirst.pos = 0;\n\t\tthis.stops.unshift(first);\n\t}\n\n\t// Add dummy last stop or set first stop’s position to 100% if it doesn’t have one\n\tif (this.stops[this.stops.length - 1].pos === undefined) {\n\t\tthis.stops[this.stops.length - 1].pos = 1;\n\t}\n\telse if (!this.repeating && this.stops[this.stops.length - 1].pos < 1) {\n\t\tvar last = this.stops[this.stops.length - 1].clone();\n\t\tlast.pos = 1;\n\t\tthis.stops.push(last);\n\t}\n\n\tthis.stops.forEach(function(stop, i){\n\t\tif (stop.pos === undefined) {\n\t\t\t// Evenly space color stops with no position\n\t\t\tfor (var j=i+1; this[j]; j++) {\n\t\t\t\tif (this[j].pos !== undefined) {\n\t\t\t\t\tstop.pos = this[i-1].pos + (this[j].pos - this[i-1].pos)/(j-i+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (i > 0) {\n\t\t\t// Normalize color stops whose position is smaller than the position of the stop before them\n\t\t\tstop.pos = Math.max(stop.pos, this[i-1].pos);\n\t\t}\n\t}, this.stops);\n\n\tif (this.repeating) {\n\t\t// Repeat color stops until >= 1\n\t\tvar stops = this.stops.slice();\n\t\tvar lastStop = stops[stops.length-1];\n\t\tvar difference = lastStop.pos - stops[0].pos;\n\n\t\tfor (var i=0; this.stops[this.stops.length-1].pos < 1 && i<10000; i++) {\n\t\t\tfor (var j=0; j' +\n\t\t\t'' +\n\t\t\t'';\n\t},\n\n\tget png() {\n\t\treturn this.canvas.toDataURL();\n\t},\n\n\tget r() {\n\t\treturn Math.sqrt(2) * this.size / 2;\n\t},\n\n\t// Paint the conical gradient on the canvas\n\t// Algorithm inspired from http://jsdo.it/akm2/yr9B\n\tpaint: function() {\n\t\tvar c = this.context;\n\n\t\tvar radius = this.r;\n\t\tvar x = this.size / 2;\n\n\t\tvar stopIndex = 0; // The index of the current color\n\t\tvar stop = this.stops[stopIndex], prevStop;\n\n\t\tvar diff, t;\n\n\t\t// Transform coordinate system so that angles start from the top left, like in CSS\n\t\tc.translate(this.size/2, this.size/2);\n\t\tc.rotate(-90*deg);\n\t\tc.rotate(this.from*deg);\n\t\tc.translate(-this.size/2, -this.size/2);\n\n\t\tfor (var i = 0; i < 360;) {\n\t\t\tif (i/360 + ε >= stop.pos) {\n\t\t\t\t// Switch color stop\n\t\t\t\tdo {\n\t\t\t\t\tprevStop = stop;\n\n\t\t\t\t\tstopIndex++;\n\t\t\t\t\tstop = this.stops[stopIndex];\n\t\t\t\t} while(stop && stop != prevStop && stop.pos === prevStop.pos);\n\n\t\t\t\tif (!stop) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tvar sameColor = prevStop.color + \"\" === stop.color + \"\" && prevStop != stop;\n\n\t\t\t\tdiff = prevStop.color.map(function(c, i){\n\t\t\t\t\treturn stop.color[i] - c;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tt = (i/360 - prevStop.pos) / (stop.pos - prevStop.pos);\n\n\t\t\tvar interpolated = sameColor? stop.color : diff.map(function(d,i){\n\t\t\t\tvar ret = d * t + prevStop.color[i];\n\n\t\t\t\treturn i < 3? ret & 255 : ret;\n\t\t\t});\n\n\t\t\t// Draw a series of arcs, 1deg each\n\t\t\tc.fillStyle = 'rgba(' + interpolated.join(\",\") + ')';\n\t\t\tc.beginPath();\n\t\t\tc.moveTo(x, x);\n\n\t\t\tif (sameColor) {\n\t\t\t\tvar θ = 360 * (stop.pos - prevStop.pos);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar θ = .5;\n\t\t\t}\n\n\t\t\tvar beginArg = i*deg;\n\t\t\tbeginArg = Math.min(360*deg, beginArg);\n\n\t\t\t// .02: To prevent empty blank line and corresponding moire\n\t\t\t// only non-alpha colors are cared now\n\t\t\tvar endArg = beginArg + θ*deg;\n\t\t\tendArg = Math.min(360*deg, endArg + .02);\n\n\t\t\tc.arc(x, x, radius, beginArg, endArg);\n\n\t\t\tc.closePath();\n\t\t\tc.fill();\n\n\t\t\ti += θ;\n\t\t}\n\t}\n};\n\n_.ColorStop = function(gradient, stop) {\n\tthis.gradient = gradient;\n\n\tif (stop) {\n\t\tvar parts = stop.match(/^(.+?)(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?\\s*$/);\n\n\t\tthis.color = _.ColorStop.colorToRGBA(parts[1]);\n\n\t\tif (parts[2]) {\n\t\t\tvar unit = parts[3];\n\n\t\t\tif (unit == \"%\" || parts[2] === \"0\" && !unit) {\n\t\t\t\tthis.pos = parts[2]/100;\n\t\t\t}\n\t\t\telse if (unit == \"turn\") {\n\t\t\t\tthis.pos = +parts[2];\n\t\t\t}\n\t\t\telse if (unit == \"deg\") {\n\t\t\t\tthis.pos = parts[2] / 360;\n\t\t\t}\n\t\t\telse if (unit == \"grad\") {\n\t\t\t\tthis.pos = parts[2] / 400;\n\t\t\t}\n\t\t\telse if (unit == \"rad\") {\n\t\t\t\tthis.pos = parts[2] / τ;\n\t\t\t}\n\t\t}\n\n\t\tif (parts[4]) {\n\t\t\tthis.next = new _.ColorStop(gradient, parts[1] + \" \" + parts[4] + parts[5]);\n\t\t}\n\t}\n}\n\n_.ColorStop.prototype = {\n\tclone: function() {\n\t\tvar ret = new _.ColorStop(this.gradient);\n\t\tret.color = this.color;\n\t\tret.pos = this.pos;\n\n\t\treturn ret;\n\t},\n\n\ttoString: function() {\n\t\treturn \"rgba(\" + this.color.join(\", \") + \") \" + this.pos * 100 + \"%\";\n\t}\n};\n\n_.ColorStop.colorToRGBA = function(color) {\n\tif (!Array.isArray(color) && color.indexOf(\"from\") == -1) {\n\t\tdummy.style.color = color;\n\n\t\tvar rgba = getComputedStyle(dummy).color.match(/rgba?\\(([\\d.]+), ([\\d.]+), ([\\d.]+)(?:, ([\\d.]+))?\\)/);\n\n\t\tif (rgba) {\n\t\t\trgba.shift();\n\t\t\trgba = rgba.map(function(a) { return +a });\n\t\t\trgba[3] = isNaN(rgba[3])? 1 : rgba[3];\n\t\t}\n\n\t\treturn rgba || [0,0,0,0];\n\t}\n\n\treturn color;\n};\n\n})();\n\nif (self.StyleFix) {\n\t// Test if conic gradients are supported first:\n\t(function(){\n\t\tvar dummy = document.createElement(\"p\");\n\t\tdummy.style.backgroundImage = \"conic-gradient(white, black)\";\n\t\tdummy.style.backgroundImage = PrefixFree.prefix + \"conic-gradient(white, black)\";\n\n\t\tif (!dummy.style.backgroundImage) {\n\t\t\t// Not supported, use polyfill\n\t\t\tStyleFix.register(function(css, raw) {\n\t\t\t\tif (css.indexOf(\"conic-gradient\") > -1) {\n\t\t\t\t\tcss = css.replace(/(?:repeating-)?conic-gradient\\(\\s*((?:\\([^()]+\\)|[^;()}])+?)\\)/g, function(gradient, stops) {\n\t\t\t\t\t\treturn new ConicGradient({\n\t\t\t\t\t\t\tstops: stops,\n\t\t\t\t\t\t\trepeating: gradient.indexOf(\"repeating-\") > -1\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn css;\n\t\t\t});\n\t\t}\n\t})();\n}\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","!function(e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(null):\"function\"==typeof define&&define.amd?define(e(null)):window.stylis=e(null)}(function e(a){\"use strict\";var r=/^\\0+/g,c=/[\\0\\r\\f]/g,s=/: */g,t=/zoo|gra/,i=/([,: ])(transform)/g,f=/,+\\s*(?![^(]*[)])/g,n=/ +\\s*(?![^(]*[)])/g,l=/ *[\\0] */g,o=/,\\r+?/g,h=/([\\t\\r\\n ])*\\f?&/g,u=/:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g,d=/\\W+/g,b=/@(k\\w+)\\s*(\\S*)\\s*/,p=/::(place)/g,k=/:(read-only)/g,g=/\\s+(?=[{\\];=:>])/g,A=/([[}=:>])\\s+/g,C=/(\\{[^{]+?);(?=\\})/g,w=/\\s{2,}/g,v=/([^\\(])(:+) */g,m=/[svh]\\w+-[tblr]{2}/,x=/\\(\\s*(.*)\\s*\\)/g,$=/([\\s\\S]*?);/g,y=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\\w-]+)[^]*/,j=/stretch|:\\s*\\w+\\-(?:conte|avail)/,z=/([^-])(image-set\\()/,N=\"-webkit-\",S=\"-moz-\",F=\"-ms-\",W=59,q=125,B=123,D=40,E=41,G=91,H=93,I=10,J=13,K=9,L=64,M=32,P=38,Q=45,R=95,T=42,U=44,V=58,X=39,Y=34,Z=47,_=62,ee=43,ae=126,re=0,ce=12,se=11,te=107,ie=109,fe=115,ne=112,le=111,oe=105,he=99,ue=100,de=112,be=1,pe=1,ke=0,ge=1,Ae=1,Ce=1,we=0,ve=0,me=0,xe=[],$e=[],ye=0,Oe=null,je=-2,ze=-1,Ne=0,Se=1,Fe=2,We=3,qe=0,Be=1,De=\"\",Ee=\"\",Ge=\"\";function He(e,a,s,t,i){for(var f,n,o=0,h=0,u=0,d=0,g=0,A=0,C=0,w=0,m=0,$=0,y=0,O=0,j=0,z=0,R=0,we=0,$e=0,Oe=0,je=0,ze=s.length,Je=ze-1,Re=\"\",Te=\"\",Ue=\"\",Ve=\"\",Xe=\"\",Ye=\"\";R0)Te=Te.replace(c,\"\");if(Te.trim().length>0){switch(C){case M:case K:case W:case J:case I:break;default:Te+=s.charAt(R)}C=W}}if(1===$e)switch(C){case B:case q:case W:case Y:case X:case D:case E:case U:$e=0;case K:case J:case I:case M:break;default:for($e=0,je=R,g=C,R--,C=W;je0)++R,C=g;case B:je=ze}}switch(C){case B:for(g=(Te=Te.trim()).charCodeAt(0),y=1,je=++R;R0)Te=Te.replace(c,\"\");switch(A=Te.charCodeAt(1)){case ue:case ie:case fe:case Q:f=a;break;default:f=xe}if(je=(Ue=He(a,f,Ue,A,i+1)).length,me>0&&0===je)je=Te.length;if(ye>0)if(f=Ie(xe,Te,Oe),n=Pe(We,Ue,f,a,pe,be,je,A,i,t),Te=f.join(\"\"),void 0!==n)if(0===(je=(Ue=n.trim()).length))A=0,Ue=\"\";if(je>0)switch(A){case fe:Te=Te.replace(x,Me);case ue:case ie:case Q:Ue=Te+\"{\"+Ue+\"}\";break;case te:if(Ue=(Te=Te.replace(b,\"$1 $2\"+(Be>0?De:\"\")))+\"{\"+Ue+\"}\",1===Ae||2===Ae&&Le(\"@\"+Ue,3))Ue=\"@\"+N+Ue+\"@\"+Ue;else Ue=\"@\"+Ue;break;default:if(Ue=Te+Ue,t===de)Ve+=Ue,Ue=\"\"}else Ue=\"\";break;default:Ue=He(a,Ie(a,Te,Oe),Ue,t,i+1)}Xe+=Ue,O=0,$e=0,z=0,we=0,Oe=0,j=0,Te=\"\",Ue=\"\",C=s.charCodeAt(++R);break;case q:case W:if((je=(Te=(we>0?Te.replace(c,\"\"):Te).trim()).length)>1){if(0===z)if((g=Te.charCodeAt(0))===Q||g>96&&g<123)je=(Te=Te.replace(\" \",\":\")).length;if(ye>0)if(void 0!==(n=Pe(Se,Te,a,e,pe,be,Ve.length,t,i,t)))if(0===(je=(Te=n.trim()).length))Te=\"\\0\\0\";switch(g=Te.charCodeAt(0),A=Te.charCodeAt(1),g){case re:break;case L:if(A===oe||A===he){Ye+=Te+s.charAt(R);break}default:if(Te.charCodeAt(je-1)===V)break;Ve+=Ke(Te,g,A,Te.charCodeAt(2))}}O=0,$e=0,z=0,we=0,Oe=0,Te=\"\",C=s.charCodeAt(++R)}}switch(C){case J:case I:if(h+d+u+o+ve===0)switch($){case E:case X:case Y:case L:case ae:case _:case T:case ee:case Z:case Q:case V:case U:case W:case B:case q:break;default:if(z>0)$e=1}if(h===Z)h=0;else if(ge+O===0&&t!==te&&Te.length>0)we=1,Te+=\"\\0\";if(ye*qe>0)Pe(Ne,Te,a,e,pe,be,Ve.length,t,i,t);be=1,pe++;break;case W:case q:if(h+d+u+o===0){be++;break}default:switch(be++,Re=s.charAt(R),C){case K:case M:if(d+o+h===0)switch(w){case U:case V:case K:case M:Re=\"\";break;default:if(C!==M)Re=\" \"}break;case re:Re=\"\\\\0\";break;case ce:Re=\"\\\\f\";break;case se:Re=\"\\\\v\";break;case P:if(d+h+o===0&&ge>0)Oe=1,we=1,Re=\"\\f\"+Re;break;case 108:if(d+h+o+ke===0&&z>0)switch(R-z){case 2:if(w===ne&&s.charCodeAt(R-3)===V)ke=w;case 8:if(m===le)ke=m}break;case V:if(d+h+o===0)z=R;break;case U:if(h+u+d+o===0)we=1,Re+=\"\\r\";break;case Y:case X:if(0===h)d=d===C?0:0===d?C:d;break;case G:if(d+h+u===0)o++;break;case H:if(d+h+u===0)o--;break;case E:if(d+h+o===0)u--;break;case D:if(d+h+o===0){if(0===O)switch(2*w+3*m){case 533:break;default:y=0,O=1}u++}break;case L:if(h+u+d+o+z+j===0)j=1;break;case T:case Z:if(d+o+u>0)break;switch(h){case 0:switch(2*C+3*s.charCodeAt(R+1)){case 235:h=Z;break;case 220:je=R,h=T}break;case T:if(C===Z&&w===T&&je+2!==R){if(33===s.charCodeAt(je+2))Ve+=s.substring(je,R+1);Re=\"\",h=0}}}if(0===h){if(ge+d+o+j===0&&t!==te&&C!==W)switch(C){case U:case ae:case _:case ee:case E:case D:if(0===O){switch(w){case K:case M:case I:case J:Re+=\"\\0\";break;default:Re=\"\\0\"+Re+(C===U?\"\":\"\\0\")}we=1}else switch(C){case D:if(z+7===R&&108===w)z=0;O=++y;break;case E:if(0==(O=--y))we=1,Re+=\"\\0\"}break;case K:case M:switch(w){case re:case B:case q:case W:case U:case ce:case K:case M:case I:case J:break;default:if(0===O)we=1,Re+=\"\\0\"}}if(Te+=Re,C!==M&&C!==K)$=C}}m=w,w=C,R++}if(je=Ve.length,me>0)if(0===je&&0===Xe.length&&0===a[0].length==false)if(t!==ie||1===a.length&&(ge>0?Ee:Ge)===a[0])je=a.join(\",\").length+2;if(je>0){if(f=0===ge&&t!==te?function(e){for(var a,r,s=0,t=e.length,i=Array(t);s1)continue;if(u=n.charCodeAt(n.length-1),d=r.charCodeAt(0),a=\"\",0!==o)switch(u){case T:case ae:case _:case ee:case M:case D:break;default:a=\" \"}switch(d){case P:r=a+Ee;case ae:case _:case ee:case M:case E:case D:break;case G:r=a+r+Ee;break;case V:switch(2*r.charCodeAt(1)+3*r.charCodeAt(2)){case 530:if(Ce>0){r=a+r.substring(8,h-1);break}default:if(o<1||f[o-1].length<1)r=a+Ee+r}break;case U:a=\"\";default:if(h>1&&r.indexOf(\":\")>0)r=a+r.replace(v,\"$1\"+Ee+\"$2\");else r=a+r+Ee}n+=r}i[s]=n.replace(c,\"\").trim()}return i}(a):a,ye>0)if(void 0!==(n=Pe(Fe,Ve,f,e,pe,be,je,t,i,t))&&0===(Ve=n).length)return Ye+Ve+Xe;if(Ve=f.join(\",\")+\"{\"+Ve+\"}\",Ae*ke!=0){if(2===Ae&&!Le(Ve,2))ke=0;switch(ke){case le:Ve=Ve.replace(k,\":\"+S+\"$1\")+Ve;break;case ne:Ve=Ve.replace(p,\"::\"+N+\"input-$1\")+Ve.replace(p,\"::\"+S+\"$1\")+Ve.replace(p,\":\"+F+\"input-$1\")+Ve}ke=0}}return Ye+Ve+Xe}function Ie(e,a,r){var c=a.trim().split(o),s=c,t=c.length,i=e.length;switch(i){case 0:case 1:for(var f=0,n=0===i?\"\":e[0]+\" \";f0&&ge>0)return s.replace(u,\"$1\").replace(h,\"$1\"+Ge);break;default:return e.trim()+s.replace(h,\"$1\"+e.trim())}default:if(r*ge>0&&s.indexOf(\"\\f\")>0)return s.replace(h,(e.charCodeAt(0)===V?\"\":\"$1\")+e.trim())}return e+s}function Ke(e,a,r,c){var l,o=0,h=e+\";\",u=2*a+3*r+4*c;if(944===u)return function(e){var a=e.length,r=e.indexOf(\":\",9)+1,c=e.substring(0,r).trim(),s=e.substring(r,a-1).trim();switch(e.charCodeAt(9)*Be){case 0:break;case Q:if(110!==e.charCodeAt(10))break;default:for(var t=s.split((s=\"\",f)),i=0,r=0,a=t.length;iL&&h<90||h>96&&h<123||h===R||h===Q&&l.charCodeAt(1)!==Q))switch(isNaN(parseFloat(l))+(-1!==l.indexOf(\"(\"))){case 1:switch(l){case\"infinite\":case\"alternate\":case\"backwards\":case\"running\":case\"normal\":case\"forwards\":case\"both\":case\"none\":case\"linear\":case\"ease\":case\"ease-in\":case\"ease-out\":case\"ease-in-out\":case\"paused\":case\"reverse\":case\"alternate-reverse\":case\"inherit\":case\"initial\":case\"unset\":case\"step-start\":case\"step-end\":break;default:l+=De}}o[r++]=l}s+=(0===i?\"\":\",\")+o.join(\" \")}}if(s=c+s+\";\",1===Ae||2===Ae&&Le(s,1))return N+s+s;return s}(h);else if(0===Ae||2===Ae&&!Le(h,1))return h;switch(u){case 1015:return 97===h.charCodeAt(10)?N+h+h:h;case 951:return 116===h.charCodeAt(3)?N+h+h:h;case 963:return 110===h.charCodeAt(5)?N+h+h:h;case 1009:if(100!==h.charCodeAt(4))break;case 969:case 942:return N+h+h;case 978:return N+h+S+h+h;case 1019:case 983:return N+h+S+h+F+h+h;case 883:if(h.charCodeAt(8)===Q)return N+h+h;if(h.indexOf(\"image-set(\",11)>0)return h.replace(z,\"$1\"+N+\"$2\")+h;return h;case 932:if(h.charCodeAt(4)===Q)switch(h.charCodeAt(5)){case 103:return N+\"box-\"+h.replace(\"-grow\",\"\")+N+h+F+h.replace(\"grow\",\"positive\")+h;case 115:return N+h+F+h.replace(\"shrink\",\"negative\")+h;case 98:return N+h+F+h.replace(\"basis\",\"preferred-size\")+h}return N+h+F+h+h;case 964:return N+h+F+\"flex-\"+h+h;case 1023:if(99!==h.charCodeAt(8))break;return l=h.substring(h.indexOf(\":\",15)).replace(\"flex-\",\"\").replace(\"space-between\",\"justify\"),N+\"box-pack\"+l+N+h+F+\"flex-pack\"+l+h;case 1005:return t.test(h)?h.replace(s,\":\"+N)+h.replace(s,\":\"+S)+h:h;case 1e3:switch(o=(l=h.substring(13).trim()).indexOf(\"-\")+1,l.charCodeAt(0)+l.charCodeAt(o)){case 226:l=h.replace(m,\"tb\");break;case 232:l=h.replace(m,\"tb-rl\");break;case 220:l=h.replace(m,\"lr\");break;default:return h}return N+h+F+l+h;case 1017:if(-1===h.indexOf(\"sticky\",9))return h;case 975:switch(o=(h=e).length-10,u=(l=(33===h.charCodeAt(o)?h.substring(0,o):h).substring(e.indexOf(\":\",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(l.charCodeAt(8)<111)break;case 115:h=h.replace(l,N+l)+\";\"+h;break;case 207:case 102:h=h.replace(l,N+(u>102?\"inline-\":\"\")+\"box\")+\";\"+h.replace(l,N+l)+\";\"+h.replace(l,F+l+\"box\")+\";\"+h}return h+\";\";case 938:if(h.charCodeAt(5)===Q)switch(h.charCodeAt(6)){case 105:return l=h.replace(\"-items\",\"\"),N+h+N+\"box-\"+l+F+\"flex-\"+l+h;case 115:return N+h+F+\"flex-item-\"+h.replace(y,\"\")+h;default:return N+h+F+\"flex-line-pack\"+h.replace(\"align-content\",\"\").replace(y,\"\")+h}break;case 973:case 989:if(h.charCodeAt(3)!==Q||122===h.charCodeAt(4))break;case 931:case 953:if(true===j.test(e))if(115===(l=e.substring(e.indexOf(\":\")+1)).charCodeAt(0))return Ke(e.replace(\"stretch\",\"fill-available\"),a,r,c).replace(\":fill-available\",\":stretch\");else return h.replace(l,N+l)+h.replace(l,S+l.replace(\"fill-\",\"\"))+h;break;case 962:if(h=N+h+(102===h.charCodeAt(5)?F+h:\"\")+h,r+c===211&&105===h.charCodeAt(13)&&h.indexOf(\"transform\",10)>0)return h.substring(0,h.indexOf(\";\",27)+1).replace(i,\"$1\"+N+\"$2\")+h}return h}function Le(e,a){var r=e.indexOf(1===a?\":\":\"{\"),c=e.substring(0,3!==a?r:10),s=e.substring(r+1,e.length-1);return Oe(2!==a?c:c.replace(O,\"$1\"),s,a)}function Me(e,a){var r=Ke(a,a.charCodeAt(0),a.charCodeAt(1),a.charCodeAt(2));return r!==a+\";\"?r.replace($,\" or ($1)\").substring(4):\"(\"+a+\")\"}function Pe(e,a,r,c,s,t,i,f,n,l){for(var o,h=0,u=a;h0)De=s.replace(d,t===G?\"\":\"-\");if(t=1,1===ge)Ge=s;else Ee=s;var i,f=[Ge];if(ye>0)if(void 0!==(i=Pe(ze,r,f,f,pe,be,0,0,0,0))&&\"string\"==typeof i)r=i;var n=He(xe,f,r,0,0);if(ye>0)if(void 0!==(i=Pe(je,n,f,f,pe,be,n.length,0,0,0))&&\"string\"!=typeof(n=i))t=0;return De=\"\",Ge=\"\",Ee=\"\",ke=0,pe=1,be=1,we*t==0?n:n.replace(c,\"\").replace(g,\"\").replace(A,\"$1\").replace(C,\"$1\").replace(w,\" \")}if(Te.use=function e(a){switch(a){case void 0:case null:ye=$e.length=0;break;default:if(\"function\"==typeof a)$e[ye++]=a;else if(\"object\"==typeof a)for(var r=0,c=a.length;r\n import(/* webpackChunkName: \"colorpicker\" */ '../fragments/ColorPicker.react')\n);\n/**\n * A color picker.\n */\nexport default class ColorPicker extends Component {\n render() {\n return (\n \n \n \n );\n }\n}\n\nColorPicker.defaultProps = {\n size: 225,\n theme: light,\n labelPosition: 'top',\n persisted_props: ['value'],\n persistence_type: 'local'\n};\n\nColorPicker.propTypes = {\n /**\n * The ID used to identify the color picker in Dash callbacks\n */\n id: PropTypes.string,\n\n /**\n * Color value of the picker\n */\n value: PropTypes.shape({\n /**\n * Hex string\n */\n hex: PropTypes.string,\n\n /**\n * RGB/RGBA object\n */\n rbg: PropTypes.shape({\n r: PropTypes.number,\n g: PropTypes.number,\n b: PropTypes.number,\n a: PropTypes.number\n })\n }),\n\n /**\n * If true, color cannot be picked.\n */\n disabled: PropTypes.bool,\n\n /**\n * Size (width) of the component in pixels\n */\n size: PropTypes.number,\n\n /**\n * Theme configuration to be set by a ThemeProvider\n */\n theme: PropTypes.object,\n\n /**\n * Description to be displayed alongside the control. To control styling,\n * pass an object with label and style properties\n */\n label: PropTypes.oneOfType([\n /**\n * Label to be displayed\n */\n PropTypes.string,\n\n /**\n * The style and label\n */\n PropTypes.shape({\n style: PropTypes.object,\n label: PropTypes.string\n })\n ]),\n\n /**\n * Where the indicator label is positioned\n */\n labelPosition: PropTypes.oneOf(['top', 'bottom']),\n\n /**\n * Class to apply to the root component element\n */\n className: PropTypes.string,\n\n /**\n * Dash-assigned callback that gets fired when\n * the color picker's value changes\n */\n setProps: PropTypes.func,\n\n /**\n * Style to apply to the root component element\n */\n style: PropTypes.object,\n\n /**\n * Used to allow user interactions in this component to be persisted when\n * the component - or the page - is refreshed. If `persisted` is truthy and\n * hasn't changed from its previous value, a `value` that the user has\n * changed while using the app will keep that change, as long as\n * the new `value` also matches what was given originally.\n * Used in conjunction with `persistence_type`.\n */\n persistence: PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.number]),\n\n /**\n * Properties whose user interactions will persist after refreshing the\n * component or the page. Since only `value` is allowed this prop can\n * normally be ignored.\n */\n persisted_props: PropTypes.arrayOf(PropTypes.oneOf(['value'])),\n\n /**\n * Where persisted user changes will be stored:\n * memory: only kept in memory, reset on page refresh.\n * local: window.localStorage, data is kept after the browser quit.\n * session: window.sessionStorage, data is cleared once the browser quit.\n */\n persistence_type: PropTypes.oneOf(['local', 'session', 'memory'])\n};\n\nexport const defaultProps = ColorPicker.defaultProps;\nexport const propTypes = ColorPicker.propTypes;\n","// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","// 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","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = require('./_hide');\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","(function (factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory()) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory()) :\n\t\t\t(window['stylisRuleSheet'] = factory())\n}(function () {\n\n\t'use strict'\n\n\treturn function (insertRule) {\n\t\tvar delimiter = '/*|*/'\n\t\tvar needle = delimiter+'}'\n\n\t\tfunction toSheet (block) {\n\t\t\tif (block)\n\t\t\t\ttry {\n\t\t\t\t\tinsertRule(block + '}')\n\t\t\t\t} catch (e) {}\n\t\t}\n\n\t\treturn function ruleSheet (context, content, selectors, parents, line, column, length, ns, depth, at) {\n\t\t\tswitch (context) {\n\t\t\t\t// property\n\t\t\t\tcase 1:\n\t\t\t\t\t// @import\n\t\t\t\t\tif (depth === 0 && content.charCodeAt(0) === 64)\n\t\t\t\t\t\treturn insertRule(content+';'), ''\n\t\t\t\t\tbreak\n\t\t\t\t// selector\n\t\t\t\tcase 2:\n\t\t\t\t\tif (ns === 0)\n\t\t\t\t\t\treturn content + delimiter\n\t\t\t\t\tbreak\n\t\t\t\t// at-rule\n\t\t\t\tcase 3:\n\t\t\t\t\tswitch (ns) {\n\t\t\t\t\t\t// @font-face, @page\n\t\t\t\t\t\tcase 102:\n\t\t\t\t\t\tcase 112:\n\t\t\t\t\t\t\treturn insertRule(selectors[0]+content), ''\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn content + (at === 0 ? delimiter : '')\n\t\t\t\t\t}\n\t\t\t\tcase -2:\n\t\t\t\t\tcontent.split(needle).forEach(toSheet)\n\t\t\t}\n\t\t}\n\t}\n}))\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","/*!\n * TinyGradient 0.4.3\n * Copyright 2014-2018 Damien \"Mistic\" Sorel (http://www.strangeplanet.fr)\n * Licensed under MIT (http://opensource.org/licenses/MIT)\n */\n\n(function (root, factory) {\n if (typeof module !== \"undefined\" && module.exports) {\n module.exports = factory(require('tinycolor2'));\n }\n else if (typeof define === 'function' && define.amd) {\n define(['tinycolor2'], factory);\n }\n else {\n root.tinygradient = factory(root.tinycolor);\n }\n}(this, function (tinycolor) {\n \"use strict\";\n\n var RGBA_MAX = {r: 256, g: 256, b: 256, a: 1};\n var HSVA_MAX = {h: 360, s: 1, v: 1, a: 1};\n\n /**\n * Linearly compute the step size between start and end (not normalized)\n * @param {Object} start - rgba or hsva\n * @param {Object} end - rgba or hsva\n * @param {int} steps - number of desired steps\n * @return {Object} rgba or hsva\n */\n function stepize(start, end, steps) {\n var step = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n step[k] = steps === 0 ? 0 : (end[k] - start[k]) / steps;\n }\n }\n\n return step;\n }\n\n /**\n * Compute the final step color\n * @param {Object} step - rgba or hsva from `stepize`\n * @param {Object} start - rgba or hsva\n * @param {int} i - color index\n * @param {Object} max - rgba or hsva of maximum values for each channel\n * @return {Object} rgba or hsva\n */\n function interpolate(step, start, i, max) {\n var color = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n color[k] = step[k] * i + start[k];\n color[k] = color[k] < 0 ? color[k] + max[k] : ( max[k] !== 1 ? color[k] % max[k] : color[k] );\n }\n }\n\n return color;\n }\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateRgb(stop1, stop2, steps) {\n var start = stop1.color.toRgb(),\n end = stop2.color.toRgb(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n color;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, RGBA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @param {Boolean} trigonometric - true to step in trigonometric order\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateHsv(stop1, stop2, steps, trigonometric) {\n var start = stop1.color.toHsv(),\n end = stop2.color.toHsv(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n diff, color;\n\n // recompute hue\n if ((start.h <= end.h && !trigonometric) || (start.h >= end.h && trigonometric)) {\n diff = end.h - start.h;\n }\n else if (trigonometric) {\n diff = 360 - end.h + start.h;\n }\n else {\n diff = 360 - start.h + end.h;\n }\n step.h = Math.pow(-1, trigonometric ? 1 : 0) * Math.abs(diff) / steps;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, HSVA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Compute substeps between each stops\n * @param {Object[]} stops\n * @param {int} steps\n * @return {int[]}\n */\n function computeSubsteps(stops, steps) {\n var l = stops.length;\n\n // validation\n steps = parseInt(steps);\n\n if (isNaN(steps) || steps < 2) {\n throw new Error('Invalid number of steps (< 2)');\n }\n if (steps < l) {\n throw new Error('Number of steps cannot be inferior to number of stops');\n }\n\n // compute substeps from stop positions\n var substeps = [];\n\n for (var i = 1; i < l; i++) {\n var step = (steps - 1) * (stops[i].pos - stops[i - 1].pos);\n substeps.push(Math.max(1, Math.round(step)));\n }\n\n // adjust number of steps\n var totalSubsteps = 1;\n for (var n = l - 1; n--;) totalSubsteps += substeps[n];\n\n while (totalSubsteps !== steps) {\n if (totalSubsteps < steps) {\n var min = Math.min.apply(null, substeps);\n substeps[substeps.indexOf(min)]++;\n totalSubsteps++;\n }\n else {\n var max = Math.max.apply(null, substeps);\n substeps[substeps.indexOf(max)]--;\n totalSubsteps--;\n }\n }\n\n return substeps;\n }\n\n /**\n * Compute the color at a specific position\n * @param {Object[]} stops\n * @param {float} pos\n * @param {string} method\n * @param {Object} max\n * @returns {tinycolor}\n */\n function computeAt(stops, pos, method, max) {\n if (pos < 0 || pos > 1) {\n throw new Error('Position must be between 0 and 1');\n }\n\n var start, end;\n for (var i = 0, l = stops.length; i < l - 1; i++) {\n if (pos >= stops[i].pos && pos < stops[i + 1].pos) {\n start = stops[i];\n end = stops[i + 1];\n break;\n }\n }\n\n if (!start) {\n start = end = stops[stops.length - 1];\n }\n\n var step = stepize(start.color[method](), end.color[method](), (end.pos - start.pos) * 100);\n var color = interpolate(step, start.color[method](), Math.round((pos - start.pos) * 100), max);\n return tinycolor(color);\n }\n\n /**\n * @class tinygradient\n * @param {*} stops\n */\n var TinyGradient = function (stops) {\n // varargs\n if (arguments.length === 1) {\n if (!(arguments[0] instanceof Array)) {\n throw new Error('\"stops\" is not an array');\n }\n stops = arguments[0];\n }\n else {\n stops = Array.prototype.slice.call(arguments);\n }\n\n // if we are called as a function, call using new instead\n if (!(this instanceof TinyGradient)) {\n return new TinyGradient(stops);\n }\n\n // validation\n if (stops.length < 2) {\n throw new Error('Invalid number of stops (< 2)');\n }\n\n var havingPositions = stops[0].pos !== undefined,\n l = stops.length,\n p = -1;\n // create tinycolor objects and clean positions\n this.stops = stops.map(function (stop, i) {\n var hasPosition = stop.pos !== undefined;\n if (havingPositions ^ hasPosition) {\n throw new Error('Cannot mix positionned and not posionned color stops');\n }\n\n if (hasPosition) {\n stop = {\n color: tinycolor(stop.color),\n pos : stop.pos\n };\n\n if (stop.pos < 0 || stop.pos > 1) {\n throw new Error('Color stops positions must be between 0 and 1');\n }\n else if (stop.pos <= p) {\n throw new Error('Color stops positions are not ordered');\n }\n p = stop.pos;\n }\n else {\n stop = {\n color: tinycolor(stop),\n pos : i / (l - 1)\n };\n }\n\n return stop;\n });\n\n if (this.stops[0].pos !== 0) {\n this.stops.unshift({\n color: this.stops[0].color,\n pos : 0\n });\n }\n if (this.stops[this.stops.length - 1].pos !== 1) {\n this.stops.push({\n color: this.stops[this.stops.length - 1].color,\n pos : 1\n });\n }\n };\n\n /**\n * Return new instance with reversed stops\n * @return {tinygradient}\n */\n TinyGradient.prototype.reverse = function () {\n var stops = [];\n\n this.stops.forEach(function (stop) {\n stops.push({\n color: stop.color,\n pos : 1 - stop.pos\n });\n });\n\n return new TinyGradient(stops.reverse());\n };\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {int} steps\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.rgb = function (steps) {\n var substeps = computeSubsteps(this.stops, steps),\n gradient = [];\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {int} steps\n * @param {Boolean|String} [mode=false]\n * - false to step in clockwise\n * - true to step in trigonometric order\n * - 'short' to use the shortest way\n * - 'long' to use the longest way\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.hsv = function (steps, mode) {\n var substeps = computeSubsteps(this.stops, steps),\n trigonometric = mode === true,\n parametrized = typeof mode === 'string',\n gradient = [],\n start, end, trig;\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n start = this.stops[i].color.toHsv();\n end = this.stops[i + 1].color.toHsv();\n\n if (parametrized) {\n trig = (start.h < end.h && end.h - start.h < 180) || (start.h > end.h && start.h - end.h > 180);\n }\n\n // rgb interpolation if one of the steps in grayscale\n if (start.s === 0 || end.s === 0) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n else {\n gradient = gradient.concat(interpolateHsv(this.stops[i], this.stops[i + 1], substeps[i],\n (mode === 'long' && trig) || (mode === 'short' && !trig) || (!parametrized && trigonometric)\n ));\n }\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate CSS3 command (no prefix) for this gradient\n * @param {String} [mode=linear] - 'linear' or 'radial'\n * @param {String} [direction] - default is 'to right' or 'ellipse at center'\n * @return {String}\n */\n TinyGradient.prototype.css = function (mode, direction) {\n mode = mode || 'linear';\n direction = direction || (mode === 'linear' ? 'to right' : 'ellipse at center');\n\n var css = mode + '-gradient(' + direction;\n this.stops.forEach(function (stop) {\n css += ', ' + stop.color.toRgbString() + ' ' + (stop.pos * 100) + '%';\n });\n css += ')';\n return css;\n };\n\n /**\n * Returns the color at specific position with RGBa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.rgbAt = function (pos) {\n return computeAt(this.stops, pos, 'toRgb', RGBA_MAX);\n };\n\n /**\n * Returns the color at specific position with HSVa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.hsvAt = function (pos) {\n return computeAt(this.stops, pos, 'toHsv', HSVA_MAX);\n };\n\n var STATIC_FNS = {\n 'rgb' : 1,\n 'hsv' : 2,\n 'css' : 2,\n 'rgbAt': 1,\n 'hsvAt': 1\n };\n\n Object.keys(STATIC_FNS).forEach(function (fn) {\n TinyGradient[fn] = function () {\n var colors = Array.prototype.slice.call(arguments);\n var args = colors.splice(-STATIC_FNS[fn]);\n var gradient = new TinyGradient(colors);\n return gradient[fn].apply(gradient, args);\n };\n });\n\n // export\n return TinyGradient;\n}));","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = addEventListener;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventObject = require('./EventObject');\n\nvar _EventObject2 = _interopRequireDefault(_EventObject);\n\nfunction addEventListener(target, eventType, callback, option) {\n function wrapCallback(e) {\n var ne = new _EventObject2['default'](e);\n callback.call(target, ne);\n }\n\n if (target.addEventListener) {\n var _ret = (function () {\n var useCapture = false;\n if (typeof option === 'object') {\n useCapture = option.capture || false;\n } else if (typeof option === 'boolean') {\n useCapture = option;\n }\n\n target.addEventListener(eventType, wrapCallback, option || false);\n\n return {\n v: {\n remove: function remove() {\n target.removeEventListener(eventType, wrapCallback, useCapture);\n }\n }\n };\n })();\n\n if (typeof _ret === 'object') return _ret.v;\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, wrapCallback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, wrapCallback);\n }\n };\n }\n}\n\nmodule.exports = exports['default'];","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\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 }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.nipplejs = f()}})(function(){var define,module,exports;\n'use strict';\n\n// Constants\nvar isTouch = !!('ontouchstart' in window);\nvar isPointer = window.PointerEvent ? true : false;\nvar isMSPointer = window.MSPointerEvent ? true : false;\nvar events = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend, touchcancel'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n },\n pointer: {\n start: 'pointerdown',\n move: 'pointermove',\n end: 'pointerup, pointercancel'\n },\n MSPointer: {\n start: 'MSPointerDown',\n move: 'MSPointerMove',\n end: 'MSPointerUp'\n }\n};\nvar toBind;\nvar secondBind = {};\nif (isPointer) {\n toBind = events.pointer;\n} else if (isMSPointer) {\n toBind = events.MSPointer;\n} else if (isTouch) {\n toBind = events.touch;\n secondBind = events.mouse;\n} else {\n toBind = events.mouse;\n}\n\n///////////////////////\n/// UTILS ///\n///////////////////////\n\nvar u = {};\nu.distance = function (p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return Math.sqrt((dx * dx) + (dy * dy));\n};\n\nu.angle = function(p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return u.degrees(Math.atan2(dy, dx));\n};\n\nu.findCoord = function(p, d, a) {\n var b = {x: 0, y: 0};\n a = u.radians(a);\n b.x = p.x - d * Math.cos(a);\n b.y = p.y - d * Math.sin(a);\n return b;\n};\n\nu.radians = function(a) {\n return a * (Math.PI / 180);\n};\n\nu.degrees = function(a) {\n return a * (180 / Math.PI);\n};\n\nu.bindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.addEventListener) {\n el.addEventListener(type, handler, false);\n } else if (el.attachEvent) {\n el.attachEvent(type, handler);\n }\n }\n};\n\nu.unbindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.removeEventListener) {\n el.removeEventListener(type, handler);\n } else if (el.detachEvent) {\n el.detachEvent(type, handler);\n }\n }\n};\n\nu.trigger = function (el, type, data) {\n var evt = new CustomEvent(type, data);\n el.dispatchEvent(evt);\n};\n\nu.prepareEvent = function (evt) {\n evt.preventDefault();\n return evt.type.match(/^touch/) ? evt.changedTouches : evt;\n};\n\nu.getScroll = function () {\n var x = (window.pageXOffset !== undefined) ?\n window.pageXOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollLeft;\n\n var y = (window.pageYOffset !== undefined) ?\n window.pageYOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollTop;\n return {\n x: x,\n y: y\n };\n};\n\nu.applyPosition = function (el, pos) {\n if (pos.top || pos.right || pos.bottom || pos.left) {\n el.style.top = pos.top;\n el.style.right = pos.right;\n el.style.bottom = pos.bottom;\n el.style.left = pos.left;\n } else {\n el.style.left = pos.x + 'px';\n el.style.top = pos.y + 'px';\n }\n};\n\nu.getTransitionStyle = function (property, values, time) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (typeof values === 'string') {\n obj[i] = values + ' ' + time;\n } else {\n var st = '';\n for (var j = 0, max = values.length; j < max; j += 1) {\n st += values[j] + ' ' + time + ', ';\n }\n obj[i] = st.slice(0, -2);\n }\n }\n }\n return obj;\n};\n\nu.getVendorStyle = function (property, value) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n obj[i] = value;\n }\n }\n return obj;\n};\n\nu.configStylePropertyObject = function (prop) {\n var obj = {};\n obj[prop] = '';\n var vendors = ['webkit', 'Moz', 'o'];\n vendors.forEach(function (vendor) {\n obj[vendor + prop.charAt(0).toUpperCase() + prop.slice(1)] = '';\n });\n return obj;\n};\n\nu.extend = function (objA, objB) {\n for (var i in objB) {\n if (objB.hasOwnProperty(i)) {\n objA[i] = objB[i];\n }\n }\n return objA;\n};\n\n// Overwrite only what's already present\nu.safeExtend = function (objA, objB) {\n var obj = {};\n for (var i in objA) {\n if (objA.hasOwnProperty(i) && objB.hasOwnProperty(i)) {\n obj[i] = objB[i];\n } else if (objA.hasOwnProperty(i)) {\n obj[i] = objA[i];\n }\n }\n return obj;\n};\n\n// Map for array or unique item.\nu.map = function (ar, fn) {\n if (ar.length) {\n for (var i = 0, max = ar.length; i < max; i += 1) {\n fn(ar[i]);\n }\n } else {\n fn(ar);\n }\n};\n\n///////////////////////\n/// SUPER CLASS ///\n///////////////////////\n\nfunction Super () {};\n\n// Basic event system.\nSuper.prototype.on = function (arg, cb) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n self._handlers_[type] = self._handlers_[type] || [];\n self._handlers_[type].push(cb);\n }\n return self;\n};\n\nSuper.prototype.off = function (type, cb) {\n var self = this;\n self._handlers_ = self._handlers_ || {};\n\n if (type === undefined) {\n self._handlers_ = {};\n } else if (cb === undefined) {\n self._handlers_[type] = null;\n } else if (self._handlers_[type] &&\n self._handlers_[type].indexOf(cb) >= 0) {\n self._handlers_[type].splice(self._handlers_[type].indexOf(cb), 1);\n }\n\n return self;\n};\n\nSuper.prototype.trigger = function (arg, data) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (self._handlers_[type] && self._handlers_[type].length) {\n self._handlers_[type].forEach(function (handler) {\n handler.call(self, {\n type: type,\n target: self\n }, data);\n });\n }\n }\n};\n\n// Configuration\nSuper.prototype.config = function (options) {\n var self = this;\n self.options = self.defaults || {};\n if (options) {\n self.options = u.safeExtend(self.options, options);\n }\n};\n\n// Bind internal events.\nSuper.prototype.bindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n self._domHandlers_[type] = function () {\n if (typeof self['on' + type] === 'function') {\n self['on' + type].apply(self, arguments);\n } else {\n console.warn('[WARNING] : Missing \"on' + type + '\" handler.');\n }\n };\n\n u.bindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.bindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n return self;\n};\n\n// Unbind dom events.\nSuper.prototype.unbindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n u.unbindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.unbindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n delete self._domHandlers_[type];\n\n return this;\n};\n\n///////////////////////\n/// THE NIPPLE ///\n///////////////////////\n\nfunction Nipple (collection, options) {\n this.identifier = options.identifier;\n this.position = options.position;\n this.frontPosition = options.frontPosition;\n this.collection = collection;\n\n // Defaults\n this.defaults = {\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n mode: 'dynamic',\n zone: document.body,\n lockX: false,\n lockY: false\n };\n\n this.config(options);\n\n // Overwrites\n if (this.options.mode === 'dynamic') {\n this.options.restOpacity = 0;\n }\n\n this.id = Nipple.id;\n Nipple.id += 1;\n this.buildEl()\n .stylize();\n\n // Nipple's API.\n this.instance = {\n el: this.ui.el,\n on: this.on.bind(this),\n off: this.off.bind(this),\n show: this.show.bind(this),\n hide: this.hide.bind(this),\n add: this.addToDom.bind(this),\n remove: this.removeFromDom.bind(this),\n destroy: this.destroy.bind(this),\n resetDirection: this.resetDirection.bind(this),\n computeDirection: this.computeDirection.bind(this),\n trigger: this.trigger.bind(this),\n position: this.position,\n frontPosition: this.frontPosition,\n ui: this.ui,\n identifier: this.identifier,\n id: this.id,\n options: this.options\n };\n\n return this.instance;\n};\n\nNipple.prototype = new Super();\nNipple.constructor = Nipple;\nNipple.id = 0;\n\n// Build the dom element of the Nipple instance.\nNipple.prototype.buildEl = function (options) {\n this.ui = {};\n\n if (this.options.dataOnly) {\n return this;\n }\n\n this.ui.el = document.createElement('div');\n this.ui.back = document.createElement('div');\n this.ui.front = document.createElement('div');\n\n this.ui.el.className = 'nipple collection_' + this.collection.id;\n this.ui.back.className = 'back';\n this.ui.front.className = 'front';\n\n this.ui.el.setAttribute('id', 'nipple_' + this.collection.id +\n '_' + this.id);\n\n this.ui.el.appendChild(this.ui.back);\n this.ui.el.appendChild(this.ui.front);\n\n return this;\n};\n\n// Apply CSS to the Nipple instance.\nNipple.prototype.stylize = function () {\n if (this.options.dataOnly) {\n return this;\n }\n var animTime = this.options.fadeTime + 'ms';\n var borderStyle = u.getVendorStyle('borderRadius', '50%');\n var transitStyle = u.getTransitionStyle('transition', 'opacity', animTime);\n var styles = {};\n styles.el = {\n position: 'absolute',\n opacity: this.options.restOpacity,\n display: 'block',\n 'zIndex': 999\n };\n\n styles.back = {\n position: 'absolute',\n display: 'block',\n width: this.options.size + 'px',\n height: this.options.size + 'px',\n marginLeft: -this.options.size / 2 + 'px',\n marginTop: -this.options.size / 2 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n styles.front = {\n width: this.options.size / 2 + 'px',\n height: this.options.size / 2 + 'px',\n position: 'absolute',\n display: 'block',\n marginLeft: -this.options.size / 4 + 'px',\n marginTop: -this.options.size / 4 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n u.extend(styles.el, transitStyle);\n u.extend(styles.back, borderStyle);\n u.extend(styles.front, borderStyle);\n\n this.applyStyles(styles);\n\n return this;\n};\n\nNipple.prototype.applyStyles = function (styles) {\n // Apply styles\n for (var i in this.ui) {\n if (this.ui.hasOwnProperty(i)) {\n for (var j in styles[i]) {\n this.ui[i].style[j] = styles[i][j];\n }\n }\n }\n\n return this;\n};\n\n// Inject the Nipple instance into DOM.\nNipple.prototype.addToDom = function () {\n // We're not adding it if we're dataOnly or already in dom.\n if (this.options.dataOnly || document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.appendChild(this.ui.el);\n return this;\n};\n\n// Remove the Nipple instance from DOM.\nNipple.prototype.removeFromDom = function () {\n if (this.options.dataOnly || !document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.removeChild(this.ui.el);\n return this;\n};\n\n// Entirely destroy this nipple\nNipple.prototype.destroy = function () {\n clearTimeout(this.removeTimeout);\n clearTimeout(this.showTimeout);\n clearTimeout(this.restTimeout);\n this.trigger('destroyed', this.instance);\n this.removeFromDom();\n this.off();\n};\n\n// Fade in the Nipple instance.\nNipple.prototype.show = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.addToDom();\n\n self.restCallback();\n\n setTimeout(function () {\n self.ui.el.style.opacity = 1;\n }, 0);\n\n self.showTimeout = setTimeout(function () {\n self.trigger('shown', self.instance);\n if (typeof cb === 'function') {\n cb.call(this);\n }\n }, self.options.fadeTime);\n\n return self;\n};\n\n// Fade out the Nipple instance.\nNipple.prototype.hide = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n self.ui.el.style.opacity = self.options.restOpacity;\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.removeTimeout = setTimeout(\n function () {\n var display = self.options.mode === 'dynamic' ? 'none' : 'block';\n self.ui.el.style.display = display;\n if (typeof cb === 'function') {\n cb.call(self);\n }\n\n self.trigger('hidden', self.instance);\n },\n self.options.fadeTime\n );\n if (self.options.restJoystick) {\n self.restPosition();\n }\n\n return self;\n};\n\nNipple.prototype.restPosition = function (cb) {\n var self = this;\n self.frontPosition = {\n x: 0,\n y: 0\n };\n var animTime = self.options.fadeTime + 'ms';\n\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition',\n ['top', 'left'], animTime);\n\n var styles = {front: {}};\n styles.front = {\n left: self.frontPosition.x + 'px',\n top: self.frontPosition.y + 'px'\n };\n\n self.applyStyles(transitStyle);\n self.applyStyles(styles);\n\n self.restTimeout = setTimeout(\n function () {\n if (typeof cb === 'function') {\n cb.call(self);\n }\n self.restCallback();\n },\n self.options.fadeTime\n );\n};\n\nNipple.prototype.restCallback = function () {\n var self = this;\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition', 'none', '');\n self.applyStyles(transitStyle);\n self.trigger('rested', self.instance);\n};\n\nNipple.prototype.resetDirection = function () {\n // Fully rebuild the object to let the iteration possible.\n this.direction = {\n x: false,\n y: false,\n angle: false\n };\n};\n\nNipple.prototype.computeDirection = function (obj) {\n var rAngle = obj.angle.radian;\n var angle45 = Math.PI / 4;\n var angle90 = Math.PI / 2;\n var direction, directionX, directionY;\n\n // Angular direction\n // \\ UP /\n // \\ /\n // LEFT RIGHT\n // / \\\n // /DOWN \\\n //\n if (\n rAngle > angle45 &&\n rAngle < (angle45 * 3) &&\n !obj.lockX\n ) {\n direction = 'up';\n } else if (\n rAngle > -angle45 &&\n rAngle <= angle45 &&\n !obj.lockY\n ) {\n direction = 'left';\n } else if (\n rAngle > (-angle45 * 3) &&\n rAngle <= -angle45 &&\n !obj.lockX\n ) {\n direction = 'down';\n } else if (!obj.lockY) {\n direction = 'right';\n }\n\n // Plain direction\n // UP |\n // _______ | RIGHT\n // LEFT |\n // DOWN |\n if (!obj.lockY) {\n if (rAngle > -angle90 && rAngle < angle90) {\n directionX = 'left';\n } else {\n directionX = 'right';\n }\n }\n\n if (!obj.lockX) {\n if (rAngle > 0) {\n directionY = 'up';\n } else {\n directionY = 'down';\n }\n }\n\n if (obj.force > this.options.threshold) {\n var oldDirection = {};\n for (var i in this.direction) {\n if (this.direction.hasOwnProperty(i)) {\n oldDirection[i] = this.direction[i];\n }\n }\n\n var same = {};\n\n this.direction = {\n x: directionX,\n y: directionY,\n angle: direction\n };\n\n obj.direction = this.direction;\n\n for (var i in oldDirection) {\n if (oldDirection[i] === this.direction[i]) {\n same[i] = true;\n }\n }\n\n // If all 3 directions are the same, we don't trigger anything.\n if (same.x && same.y && same.angle) {\n return obj;\n }\n\n if (!same.x || !same.y) {\n this.trigger('plain', obj);\n }\n\n if (!same.x) {\n this.trigger('plain:' + directionX, obj);\n }\n\n if (!same.y) {\n this.trigger('plain:' + directionY, obj);\n }\n\n if (!same.angle) {\n this.trigger('dir dir:' + direction, obj);\n }\n }\n return obj;\n};\n\n/* global Nipple, Super */\n\n///////////////////////////\n/// THE COLLECTION ///\n///////////////////////////\n\nfunction Collection (manager, options) {\n var self = this;\n self.nipples = [];\n self.idles = [];\n self.actives = [];\n self.ids = [];\n self.pressureIntervals = {};\n self.manager = manager;\n self.id = Collection.id;\n Collection.id += 1;\n\n // Defaults\n self.defaults = {\n zone: document.body,\n multitouch: false,\n maxNumberOfNipples: 10,\n mode: 'dynamic',\n position: {top: 0, left: 0},\n catchDistance: 200,\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n lockX: false,\n lockY: false\n };\n\n self.config(options);\n\n // Overwrites\n if (self.options.mode === 'static' || self.options.mode === 'semi') {\n self.options.multitouch = false;\n }\n\n if (!self.options.multitouch) {\n self.options.maxNumberOfNipples = 1;\n }\n\n self.updateBox();\n self.prepareNipples();\n self.bindings();\n self.begin();\n\n return self.nipples;\n}\n\nCollection.prototype = new Super();\nCollection.constructor = Collection;\nCollection.id = 0;\n\nCollection.prototype.prepareNipples = function () {\n var self = this;\n var nips = self.nipples;\n\n // Public API Preparation.\n nips.on = self.on.bind(self);\n nips.off = self.off.bind(self);\n nips.options = self.options;\n nips.destroy = self.destroy.bind(self);\n nips.ids = self.ids;\n nips.id = self.id;\n nips.processOnMove = self.processOnMove.bind(self);\n nips.processOnEnd = self.processOnEnd.bind(self);\n nips.get = function (id) {\n if (id === undefined) {\n return nips[0];\n }\n for (var i = 0, max = nips.length; i < max; i += 1) {\n if (nips[i].identifier === id) {\n return nips[i];\n }\n }\n return false;\n };\n};\n\nCollection.prototype.bindings = function () {\n var self = this;\n // Touch start event.\n self.bindEvt(self.options.zone, 'start');\n // Avoid native touch actions (scroll, zoom etc...) on the zone.\n self.options.zone.style.touchAction = 'none';\n self.options.zone.style.msTouchAction = 'none';\n};\n\nCollection.prototype.begin = function () {\n var self = this;\n var opts = self.options;\n\n // We place our static nipple\n // if needed.\n if (opts.mode === 'static') {\n var nipple = self.createNipple(\n opts.position,\n self.manager.getIdentifier()\n );\n // Add it to the dom.\n nipple.add();\n // Store it in idles.\n self.idles.push(nipple);\n }\n};\n\n// Nipple Factory\nCollection.prototype.createNipple = function (position, identifier) {\n var self = this;\n var scroll = u.getScroll();\n var toPutOn = {};\n var opts = self.options;\n\n if (position.x && position.y) {\n toPutOn = {\n x: position.x -\n (scroll.x + self.box.left),\n y: position.y -\n (scroll.y + self.box.top)\n };\n } else if (\n position.top ||\n position.right ||\n position.bottom ||\n position.left\n ) {\n\n // We need to compute the position X / Y of the joystick.\n var dumb = document.createElement('DIV');\n dumb.style.display = 'hidden';\n dumb.style.top = position.top;\n dumb.style.right = position.right;\n dumb.style.bottom = position.bottom;\n dumb.style.left = position.left;\n dumb.style.position = 'absolute';\n\n opts.zone.appendChild(dumb);\n var dumbBox = dumb.getBoundingClientRect();\n opts.zone.removeChild(dumb);\n\n toPutOn = position;\n position = {\n x: dumbBox.left + scroll.x,\n y: dumbBox.top + scroll.y\n };\n }\n\n var nipple = new Nipple(self, {\n color: opts.color,\n size: opts.size,\n threshold: opts.threshold,\n fadeTime: opts.fadeTime,\n dataOnly: opts.dataOnly,\n restJoystick: opts.restJoystick,\n restOpacity: opts.restOpacity,\n mode: opts.mode,\n identifier: identifier,\n position: position,\n zone: opts.zone,\n frontPosition: {\n x: 0,\n y: 0\n }\n });\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.el, toPutOn);\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n self.nipples.push(nipple);\n self.trigger('added ' + nipple.identifier + ':added', nipple);\n self.manager.trigger('added ' + nipple.identifier + ':added', nipple);\n\n self.bindNipple(nipple);\n\n return nipple;\n};\n\nCollection.prototype.updateBox = function () {\n var self = this;\n self.box = self.options.zone.getBoundingClientRect();\n};\n\nCollection.prototype.bindNipple = function (nipple) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's id.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed.\n nipple.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n nipple.on('shown hidden rested dir plain', handler);\n nipple.on('dir:up dir:right dir:down dir:left', handler);\n nipple.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nCollection.prototype.pressureFn = function (touch, nipple, identifier) {\n var self = this;\n var previousPressure = 0;\n clearInterval(self.pressureIntervals[identifier]);\n // Create an interval that will read the pressure every 100ms\n self.pressureIntervals[identifier] = setInterval(function () {\n var pressure = touch.force || touch.pressure ||\n touch.webkitForce || 0;\n if (pressure !== previousPressure) {\n nipple.trigger('pressure', pressure);\n self.trigger('pressure ' +\n nipple.identifier + ':pressure', pressure);\n previousPressure = pressure;\n }\n }.bind(self), 100);\n};\n\nCollection.prototype.onstart = function (evt) {\n var self = this;\n var opts = self.options;\n evt = u.prepareEvent(evt);\n\n // Update the box position\n self.updateBox();\n\n var process = function (touch) {\n // If we can create new nipples\n // meaning we don't have more active nipples than we should.\n if (self.actives.length < opts.maxNumberOfNipples) {\n self.processOnStart(touch);\n }\n };\n\n u.map(evt, process);\n\n // We ask upstream to bind the document\n // on 'move' and 'end'\n self.manager.bindDocument();\n return false;\n};\n\nCollection.prototype.processOnStart = function (evt) {\n var self = this;\n var opts = self.options;\n var indexInIdles;\n var identifier = self.manager.getIdentifier(evt);\n var pressure = evt.force || evt.pressure || evt.webkitForce || 0;\n var position = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var nipple = self.getOrCreate(identifier, position);\n\n // Update its touch identifier\n if (nipple.identifier !== identifier) {\n self.manager.removeIdentifier(nipple.identifier);\n }\n nipple.identifier = identifier;\n\n var process = function (nip) {\n // Trigger the start.\n nip.trigger('start', nip);\n self.trigger('start ' + nip.id + ':start', nip);\n\n nip.show();\n if (pressure > 0) {\n self.pressureFn(evt, nip, nip.identifier);\n }\n // Trigger the first move event.\n self.processOnMove(evt);\n };\n\n // Transfer it from idles to actives.\n if ((indexInIdles = self.idles.indexOf(nipple)) >= 0) {\n self.idles.splice(indexInIdles, 1);\n }\n\n // Store the nipple in the actives array\n self.actives.push(nipple);\n self.ids.push(nipple.identifier);\n\n if (opts.mode !== 'semi') {\n process(nipple);\n } else {\n // In semi we check the distance of the touch\n // to decide if we have to reset the nipple\n var distance = u.distance(position, nipple.position);\n if (distance <= opts.catchDistance) {\n process(nipple);\n } else {\n nipple.destroy();\n self.processOnStart(evt);\n return;\n }\n }\n\n return nipple;\n};\n\nCollection.prototype.getOrCreate = function (identifier, position) {\n var self = this;\n var opts = self.options;\n var nipple;\n\n // If we're in static or semi, we might already have an active.\n if (/(semi|static)/.test(opts.mode)) {\n // Get the active one.\n // TODO: Multi-touche for semi and static will start here.\n // Return the nearest one.\n nipple = self.idles[0];\n if (nipple) {\n self.idles.splice(0, 1);\n return nipple;\n }\n\n if (opts.mode === 'semi') {\n // If we're in semi mode, we need to create one.\n return self.createNipple(position, identifier);\n }\n\n console.warn('Coudln\\'t find the needed nipple.');\n return false;\n }\n // In dynamic, we create a new one.\n nipple = self.createNipple(position, identifier);\n return nipple;\n};\n\nCollection.prototype.processOnMove = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n\n if (!nipple) {\n // This is here just for safety.\n // It shouldn't happen.\n console.error('Found zombie joystick with ID ' + identifier);\n self.manager.removeIdentifier(identifier);\n return;\n }\n\n nipple.identifier = identifier;\n\n var size = nipple.options.size / 2;\n var pos = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var dist = u.distance(pos, nipple.position);\n var angle = u.angle(pos, nipple.position);\n var rAngle = u.radians(angle);\n var force = dist / size;\n\n // If distance is bigger than nipple's size\n // we clamp the position.\n if (dist > size) {\n dist = size;\n pos = u.findCoord(nipple.position, dist, angle);\n }\n\n var xPosition = pos.x - nipple.position.x\n var yPosition = pos.y - nipple.position.y\n\n if (opts.lockX){\n yPosition = 0\n }\n if (opts.lockY) {\n xPosition = 0\n }\n\n nipple.frontPosition = {\n x: xPosition,\n y: yPosition\n };\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n\n // Prepare event's datas.\n var toSend = {\n identifier: nipple.identifier,\n position: pos,\n force: force,\n pressure: evt.force || evt.pressure || evt.webkitForce || 0,\n distance: dist,\n angle: {\n radian: rAngle,\n degree: angle\n },\n instance: nipple,\n lockX: opts.lockX,\n lockY: opts.lockY\n };\n\n // Compute the direction's datas.\n toSend = nipple.computeDirection(toSend);\n\n // Offset angles to follow units circle.\n toSend.angle = {\n radian: u.radians(180 - angle),\n degree: 180 - angle\n };\n\n // Send everything to everyone.\n nipple.trigger('move', toSend);\n self.trigger('move ' + nipple.id + ':move', toSend);\n};\n\nCollection.prototype.processOnEnd = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n var removedIdentifier = self.manager.removeIdentifier(nipple.identifier);\n\n if (!nipple) {\n return;\n }\n\n if (!opts.dataOnly) {\n nipple.hide(function () {\n if (opts.mode === 'dynamic') {\n nipple.trigger('removed', nipple);\n self.trigger('removed ' + nipple.id + ':removed', nipple);\n self.manager\n .trigger('removed ' + nipple.id + ':removed', nipple);\n nipple.destroy();\n }\n });\n }\n\n // Clear the pressure interval reader\n clearInterval(self.pressureIntervals[nipple.identifier]);\n\n // Reset the direciton of the nipple, to be able to trigger a new direction\n // on start.\n nipple.resetDirection();\n\n nipple.trigger('end', nipple);\n self.trigger('end ' + nipple.id + ':end', nipple);\n\n // Remove identifier from our bank.\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Clean our actives array.\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n\n if (/(semi|static)/.test(opts.mode)) {\n // Transfer nipple from actives to idles\n // if we're in semi or static mode.\n self.idles.push(nipple);\n } else if (self.nipples.indexOf(nipple) >= 0) {\n // Only if we're not in semi or static mode\n // we can remove the instance.\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n\n // We unbind move and end.\n self.manager.unbindDocument();\n\n // We add back the identifier of the idle nipple;\n if (/(semi|static)/.test(opts.mode)) {\n self.manager.ids[removedIdentifier.id] = removedIdentifier.identifier;\n }\n};\n\n// Remove destroyed nipple from the lists\nCollection.prototype.onDestroyed = function(evt, nipple) {\n var self = this;\n if (self.nipples.indexOf(nipple) >= 0) {\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n if (self.idles.indexOf(nipple) >= 0) {\n self.idles.splice(self.idles.indexOf(nipple), 1);\n }\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Remove the identifier from our bank\n self.manager.removeIdentifier(nipple.identifier);\n\n // We unbind move and end.\n self.manager.unbindDocument();\n};\n\n// Cleanly destroy the manager\nCollection.prototype.destroy = function () {\n var self = this;\n self.unbindEvt(self.options.zone, 'start');\n\n // Destroy nipples.\n self.nipples.forEach(function(nipple) {\n nipple.destroy();\n });\n\n // Clean 3DTouch intervals.\n for (var i in self.pressureIntervals) {\n if (self.pressureIntervals.hasOwnProperty(i)) {\n clearInterval(self.pressureIntervals[i]);\n }\n }\n\n // Notify the manager passing the instance\n self.trigger('destroyed', self.nipples);\n // We unbind move and end.\n self.manager.unbindDocument();\n // Unbind everything.\n self.off();\n};\n\n/* global u, Super, Collection */\n\n///////////////////////\n/// MANAGER ///\n///////////////////////\n\nfunction Manager (options) {\n var self = this;\n self.ids = {};\n self.index = 0;\n self.collections = [];\n\n self.config(options);\n self.prepareCollections();\n\n // Listen for resize, to reposition every joysticks\n var resizeTimer;\n u.bindEvt(window, 'resize', function (evt) {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(function () {\n var pos;\n var scroll = u.getScroll();\n self.collections.forEach(function (collection) {\n collection.forEach(function (nipple) {\n pos = nipple.el.getBoundingClientRect();\n nipple.position = {\n x: scroll.x + pos.left,\n y: scroll.y + pos.top\n };\n });\n });\n }, 100);\n });\n\n return self.collections;\n};\n\nManager.prototype = new Super();\nManager.constructor = Manager;\n\nManager.prototype.prepareCollections = function () {\n var self = this;\n // Public API Preparation.\n self.collections.create = self.create.bind(self);\n // Listen to anything\n self.collections.on = self.on.bind(self);\n // Unbind general events\n self.collections.off = self.off.bind(self);\n // Destroy everything\n self.collections.destroy = self.destroy.bind(self);\n // Get any nipple\n self.collections.get = function (id) {\n var nipple;\n self.collections.every(function (collection) {\n if (nipple = collection.get(id)) {\n return false;\n }\n return true;\n });\n return nipple;\n };\n};\n\nManager.prototype.create = function (options) {\n return this.createCollection(options);\n};\n\n// Collection Factory\nManager.prototype.createCollection = function (options) {\n var self = this;\n var collection = new Collection(self, options);\n\n self.bindCollection(collection);\n self.collections.push(collection);\n\n return collection;\n};\n\nManager.prototype.bindCollection = function (collection) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's identifier.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed we clean.\n collection.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n collection.on('shown hidden rested dir plain', handler);\n collection.on('dir:up dir:right dir:down dir:left', handler);\n collection.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nManager.prototype.bindDocument = function () {\n var self = this;\n // Bind only if not already binded\n if (!self.binded) {\n self.bindEvt(document, 'move')\n .bindEvt(document, 'end');\n self.binded = true;\n }\n};\n\nManager.prototype.unbindDocument = function (force) {\n var self = this;\n // If there are no touch left\n // unbind the document.\n if (!Object.keys(self.ids).length || force === true) {\n self.unbindEvt(document, 'move')\n .unbindEvt(document, 'end');\n self.binded = false;\n }\n};\n\nManager.prototype.getIdentifier = function (evt) {\n var id;\n // If no event, simple increment\n if (!evt) {\n id = this.index;\n } else {\n // Extract identifier from event object.\n // Unavailable in mouse events so replaced by latest increment.\n id = evt.identifier === undefined ? evt.pointerId : evt.identifier;\n if (id === undefined) {\n id = this.latest || 0;\n }\n }\n\n if (this.ids[id] === undefined) {\n this.ids[id] = this.index;\n this.index += 1;\n }\n\n // Keep the latest id used in case we're using an unidentified mouseEvent\n this.latest = id;\n return this.ids[id];\n};\n\nManager.prototype.removeIdentifier = function (identifier) {\n var removed = {};\n for (var id in this.ids) {\n if (this.ids[id] === identifier) {\n removed.id = id;\n removed.identifier = this.ids[id];\n delete this.ids[id];\n break;\n }\n }\n return removed;\n};\n\nManager.prototype.onmove = function (evt) {\n var self = this;\n self.onAny('move', evt);\n return false;\n};\n\nManager.prototype.onend = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.oncancel = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.onAny = function (which, evt) {\n var self = this;\n var id;\n var processFn = 'processOn' + which.charAt(0).toUpperCase() +\n which.slice(1);\n evt = u.prepareEvent(evt);\n var processColl = function (e, id, coll) {\n if (coll.ids.indexOf(id) >= 0) {\n coll[processFn](e);\n // Mark the event to avoid cleaning it later.\n e._found_ = true;\n }\n };\n var processEvt = function (e) {\n id = self.getIdentifier(e);\n u.map(self.collections, processColl.bind(null, e, id));\n // If the event isn't handled by any collection,\n // we need to clean its identifier.\n if (!e._found_) {\n self.removeIdentifier(id);\n }\n };\n\n u.map(evt, processEvt);\n\n return false;\n};\n\n// Cleanly destroy the manager\nManager.prototype.destroy = function () {\n var self = this;\n self.unbindDocument(true);\n self.ids = {};\n self.index = 0;\n self.collections.forEach(function(collection) {\n collection.destroy();\n });\n self.off();\n};\n\n// When a collection gets destroyed\n// we clean behind.\nManager.prototype.onDestroyed = function (evt, coll) {\n var self = this;\n if (self.collections.indexOf(coll) < 0) {\n return false;\n }\n self.collections.splice(self.collections.indexOf(coll), 1);\n};\n\nvar factory = new Manager();\nreturn {\n create: function (options) {\n return factory.create(options);\n },\n factory: factory\n};\n\n});\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","/**\r\n * Returns the object type of the given payload\r\n *\r\n * @param {*} payload\r\n * @returns {string}\r\n */\r\nfunction getType(payload) {\r\n return Object.prototype.toString.call(payload).slice(8, -1);\r\n}\r\n/**\r\n * Returns whether the payload is undefined\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isUndefined(payload) {\r\n return getType(payload) === 'Undefined';\r\n}\r\n/**\r\n * Returns whether the payload is null\r\n *\r\n * @param {*} payload\r\n * @returns {payload is null}\r\n */\r\nfunction isNull(payload) {\r\n return getType(payload) === 'Null';\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isPlainObject(payload) {\r\n if (getType(payload) !== 'Object')\r\n return false;\r\n return (payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype);\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isObject(payload) {\r\n return isPlainObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isAnyObject(payload) {\r\n return getType(payload) === 'Object';\r\n}\r\n/**\r\n * Returns whether the payload is an object like a type passed in < >\r\n *\r\n * Usage: isObjectLike<{id: any}>(payload) // will make sure it's an object and has an `id` prop.\r\n *\r\n * @template T this must be passed in < >\r\n * @param {*} payload\r\n * @returns {payload is T}\r\n */\r\nfunction isObjectLike(payload) {\r\n return isAnyObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a function\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Function}\r\n */\r\nfunction isFunction(payload) {\r\n return getType(payload) === 'Function';\r\n}\r\n/**\r\n * Returns whether the payload is an array\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isArray(payload) {\r\n return getType(payload) === 'Array';\r\n}\r\n/**\r\n * Returns whether the payload is a string\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isString(payload) {\r\n return getType(payload) === 'String';\r\n}\r\n/**\r\n * Returns whether the payload is a string, BUT returns false for ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isFullString(payload) {\r\n return isString(payload) && payload !== '';\r\n}\r\n/**\r\n * Returns whether the payload is ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isEmptyString(payload) {\r\n return payload === '';\r\n}\r\n/**\r\n * Returns whether the payload is a number\r\n *\r\n * This will return false for NaN\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\r\nfunction isNumber(payload) {\r\n return (getType(payload) === 'Number' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a boolean\r\n *\r\n * @param {*} payload\r\n * @returns {payload is boolean}\r\n */\r\nfunction isBoolean(payload) {\r\n return getType(payload) === 'Boolean';\r\n}\r\n/**\r\n * Returns whether the payload is a regular expression\r\n *\r\n * @param {*} payload\r\n * @returns {payload is RegExp}\r\n */\r\nfunction isRegExp(payload) {\r\n return getType(payload) === 'RegExp';\r\n}\r\n/**\r\n * Returns whether the payload is a date, and that the date is Valid\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Date}\r\n */\r\nfunction isDate(payload) {\r\n return (getType(payload) === 'Date' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a Symbol\r\n *\r\n * @param {*} payload\r\n * @returns {payload is symbol}\r\n */\r\nfunction isSymbol(payload) {\r\n return (getType(payload) === 'Symbol');\r\n}\r\n/**\r\n * Returns whether the payload is a primitive type (eg. Boolean | Null | Undefined | Number | String | Symbol)\r\n *\r\n * @param {*} payload\r\n * @returns {(payload is boolean | null | undefined | number | string | symbol)}\r\n */\r\nfunction isPrimitive(payload) {\r\n return (isBoolean(payload) ||\r\n isNull(payload) ||\r\n isUndefined(payload) ||\r\n isNumber(payload) ||\r\n isString(payload) ||\r\n isSymbol(payload));\r\n}\r\n/**\r\n * Does a generic check to check that the given payload is of a given type.\r\n * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!);\r\n * It will, however, differentiate between object and null\r\n *\r\n * @template T\r\n * @param {*} payload\r\n * @param {T} type\r\n * @throws {TypeError} Will throw type error if type is an invalid type\r\n * @returns {payload is T}\r\n */\r\nfunction isType(payload, type) {\r\n if (!(type instanceof Function)) {\r\n throw new TypeError('Type must be a function');\r\n }\r\n if (!type.hasOwnProperty('prototype')) {\r\n throw new TypeError('Type is not a class');\r\n }\r\n // Classes usually have names (as functions usually have names)\r\n var name = type.name;\r\n return (getType(payload) === name) || Boolean(payload && (payload.constructor === type));\r\n}\n\nexport { getType, isUndefined, isNull, isPlainObject, isObject, isAnyObject, isObjectLike, isFunction, isArray, isString, isFullString, isEmptyString, isNumber, isBoolean, isRegExp, isDate, isSymbol, isPrimitive, isType };\n","import { isArray, isPlainObject, isSymbol } from 'is-what';\n\nfunction assignProp(carry, key, newVal, originalObject) {\r\n var propType = originalObject.propertyIsEnumerable(key)\r\n ? 'enumerable'\r\n : 'nonenumerable';\r\n if (propType === 'enumerable')\r\n carry[key] = newVal;\r\n if (propType === 'nonenumerable') {\r\n Object.defineProperty(carry, key, {\r\n value: newVal,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n });\r\n }\r\n}\r\nfunction mergeRecursively(origin, newComer, extensions) {\r\n // work directly on newComer if its not an object\r\n if (!isPlainObject(newComer)) {\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newComer = extend(origin, newComer);\r\n });\r\n }\r\n return newComer;\r\n }\r\n // define newObject to merge all values upon\r\n var newObject = {};\r\n if (isPlainObject(origin)) {\r\n var props_1 = Object.getOwnPropertyNames(origin);\r\n var symbols_1 = Object.getOwnPropertySymbols(origin);\r\n newObject = props_1.concat(symbols_1).reduce(function (carry, key) {\r\n // @ts-ignore\r\n var targetVal = origin[key];\r\n if ((!isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key)) ||\r\n (isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key))) {\r\n assignProp(carry, key, targetVal, origin);\r\n }\r\n return carry;\r\n }, {});\r\n }\r\n var props = Object.getOwnPropertyNames(newComer);\r\n var symbols = Object.getOwnPropertySymbols(newComer);\r\n var result = props.concat(symbols).reduce(function (carry, key) {\r\n // re-define the origin and newComer as targetVal and newVal\r\n var newVal = newComer[key];\r\n var targetVal = (isPlainObject(origin))\r\n // @ts-ignore\r\n ? origin[key]\r\n : undefined;\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newVal = extend(targetVal, newVal);\r\n });\r\n }\r\n // When newVal is an object do the merge recursively\r\n if (targetVal !== undefined && isPlainObject(newVal)) {\r\n newVal = mergeRecursively(targetVal, newVal, extensions);\r\n }\r\n assignProp(carry, key, newVal, newComer);\r\n return carry;\r\n }, newObject);\r\n return result;\r\n}\r\n/**\r\n * Merge anything recursively.\r\n * Objects get merged, special objects (classes etc.) are re-assigned \"as is\".\r\n * Basic types overwrite objects or other basic types.\r\n *\r\n * @param {(IConfig | any)} origin\r\n * @param {...any[]} newComers\r\n * @returns the result\r\n */\r\nfunction merge(origin) {\r\n var newComers = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n newComers[_i - 1] = arguments[_i];\r\n }\r\n var extensions = null;\r\n var base = origin;\r\n if (isPlainObject(origin) && origin.extensions && Object.keys(origin).length === 1) {\r\n base = {};\r\n extensions = origin.extensions;\r\n }\r\n return newComers.reduce(function (result, newComer) {\r\n return mergeRecursively(result, newComer, extensions);\r\n }, base);\r\n}\n\nfunction concatArrays(originVal, newVal) {\r\n if (isArray(originVal) && isArray(newVal)) {\r\n // concat logic\r\n return originVal.concat(newVal);\r\n }\r\n return newVal; // always return newVal as fallback!!\r\n}\n\nexport default merge;\nexport { merge, concatArrays };\n","/** @license React v16.8.6\n * react-is.production.min.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'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (colorNames.hasOwnProperty(name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar keyword = /(\\D+)/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\n\t\tif (!rgb) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = (parseFloat(match[1]) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = num.toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function () { /* empty */ };\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","/**\n * @ignore\n * event object for dom\n * @author yiminghe@gmail.com\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventBaseObject = require('./EventBaseObject');\n\nvar _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar TRUE = true;\nvar FALSE = false;\nvar commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];\n\nfunction isNullOrUndefined(w) {\n return w === null || w === undefined;\n}\n\nvar eventNormalizers = [{\n reg: /^key/,\n props: ['char', 'charCode', 'key', 'keyCode', 'which'],\n fix: function fix(event, nativeEvent) {\n if (isNullOrUndefined(event.which)) {\n event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;\n }\n\n // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)\n if (event.metaKey === undefined) {\n event.metaKey = event.ctrlKey;\n }\n }\n}, {\n reg: /^touch/,\n props: ['touches', 'changedTouches', 'targetTouches']\n}, {\n reg: /^hashchange$/,\n props: ['newURL', 'oldURL']\n}, {\n reg: /^gesturechange$/i,\n props: ['rotation', 'scale']\n}, {\n reg: /^(mousewheel|DOMMouseScroll)$/,\n props: [],\n fix: function fix(event, nativeEvent) {\n var deltaX = undefined;\n var deltaY = undefined;\n var delta = undefined;\n var wheelDelta = nativeEvent.wheelDelta;\n var axis = nativeEvent.axis;\n var wheelDeltaY = nativeEvent.wheelDeltaY;\n var wheelDeltaX = nativeEvent.wheelDeltaX;\n var detail = nativeEvent.detail;\n\n // ie/webkit\n if (wheelDelta) {\n delta = wheelDelta / 120;\n }\n\n // gecko\n if (detail) {\n // press control e.detail == 1 else e.detail == 3\n delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);\n }\n\n // Gecko\n if (axis !== undefined) {\n if (axis === event.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = 0 - delta;\n } else if (axis === event.VERTICAL_AXIS) {\n deltaX = 0;\n deltaY = delta;\n }\n }\n\n // Webkit\n if (wheelDeltaY !== undefined) {\n deltaY = wheelDeltaY / 120;\n }\n if (wheelDeltaX !== undefined) {\n deltaX = -1 * wheelDeltaX / 120;\n }\n\n // 默认 deltaY (ie)\n if (!deltaX && !deltaY) {\n deltaY = delta;\n }\n\n if (deltaX !== undefined) {\n /**\n * deltaX of mousewheel event\n * @property deltaX\n * @member Event.DomEvent.Object\n */\n event.deltaX = deltaX;\n }\n\n if (deltaY !== undefined) {\n /**\n * deltaY of mousewheel event\n * @property deltaY\n * @member Event.DomEvent.Object\n */\n event.deltaY = deltaY;\n }\n\n if (delta !== undefined) {\n /**\n * delta of mousewheel event\n * @property delta\n * @member Event.DomEvent.Object\n */\n event.delta = delta;\n }\n }\n}, {\n reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,\n props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],\n fix: function fix(event, nativeEvent) {\n var eventDoc = undefined;\n var doc = undefined;\n var body = undefined;\n var target = event.target;\n var button = nativeEvent.button;\n\n // Calculate pageX/Y if missing and clientX/Y available\n if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {\n eventDoc = target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // which for click: 1 === left; 2 === middle; 3 === right\n // do not use button\n if (!event.which && button !== undefined) {\n if (button & 1) {\n event.which = 1;\n } else if (button & 2) {\n event.which = 3;\n } else if (button & 4) {\n event.which = 2;\n } else {\n event.which = 0;\n }\n }\n\n // add relatedTarget, if necessary\n if (!event.relatedTarget && event.fromElement) {\n event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;\n }\n\n return event;\n }\n}];\n\nfunction retTrue() {\n return TRUE;\n}\n\nfunction retFalse() {\n return FALSE;\n}\n\nfunction DomEventObject(nativeEvent) {\n var type = nativeEvent.type;\n\n var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';\n\n _EventBaseObject2['default'].call(this);\n\n this.nativeEvent = nativeEvent;\n\n // in case dom event has been mark as default prevented by lower dom node\n var isDefaultPrevented = retFalse;\n if ('defaultPrevented' in nativeEvent) {\n isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;\n } else if ('getPreventDefault' in nativeEvent) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=691151\n isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;\n } else if ('returnValue' in nativeEvent) {\n isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;\n }\n\n this.isDefaultPrevented = isDefaultPrevented;\n\n var fixFns = [];\n var fixFn = undefined;\n var l = undefined;\n var prop = undefined;\n var props = commonProps.concat();\n\n eventNormalizers.forEach(function (normalizer) {\n if (type.match(normalizer.reg)) {\n props = props.concat(normalizer.props);\n if (normalizer.fix) {\n fixFns.push(normalizer.fix);\n }\n }\n });\n\n l = props.length;\n\n // clone properties of the original event object\n while (l) {\n prop = props[--l];\n this[prop] = nativeEvent[prop];\n }\n\n // fix target property, if necessary\n if (!this.target && isNative) {\n this.target = nativeEvent.srcElement || document; // srcElement might not be defined either\n }\n\n // check if target is a text node (safari)\n if (this.target && this.target.nodeType === 3) {\n this.target = this.target.parentNode;\n }\n\n l = fixFns.length;\n\n while (l) {\n fixFn = fixFns[--l];\n fixFn(this, nativeEvent);\n }\n\n this.timeStamp = nativeEvent.timeStamp || Date.now();\n}\n\nvar EventBaseObjectProto = _EventBaseObject2['default'].prototype;\n\n(0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {\n constructor: DomEventObject,\n\n preventDefault: function preventDefault() {\n var e = this.nativeEvent;\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n // otherwise set the returnValue property of the original event to FALSE (IE)\n e.returnValue = FALSE;\n }\n\n EventBaseObjectProto.preventDefault.call(this);\n },\n\n stopPropagation: function stopPropagation() {\n var e = this.nativeEvent;\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n } else {\n // otherwise set the cancelBubble property of the original event to TRUE (IE)\n e.cancelBubble = TRUE;\n }\n\n EventBaseObjectProto.stopPropagation.call(this);\n }\n});\n\nexports['default'] = DomEventObject;\nmodule.exports = exports['default'];","/**\n * @ignore\n * base event object for custom and dom event.\n * @author yiminghe@gmail.com\n */\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction returnFalse() {\n return false;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction EventBaseObject() {\n this.timeStamp = Date.now();\n this.target = undefined;\n this.currentTarget = undefined;\n}\n\nEventBaseObject.prototype = {\n isEventObject: 1,\n\n constructor: EventBaseObject,\n\n isDefaultPrevented: returnFalse,\n\n isPropagationStopped: returnFalse,\n\n isImmediatePropagationStopped: returnFalse,\n\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n },\n\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n },\n\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n // fixed 1.2\n // call stopPropagation implicitly\n this.stopPropagation();\n },\n\n halt: function halt(immediate) {\n if (immediate) {\n this.stopImmediatePropagation();\n } else {\n this.stopPropagation();\n }\n this.preventDefault();\n }\n};\n\nexports[\"default\"] = EventBaseObject;\nmodule.exports = exports[\"default\"];","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\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","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n","var api = require(\"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../css-loader/dist/cjs.js!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function insertAtTop(element) {\n\t\t\t\t document.head.insertBefore(element, document.head.firstElementChild);\n\t\t\t\t};\noptions.singleton = false;\n\nvar update = api(content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;","\"use strict\";\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 = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\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 && btoa) {\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 ';\n };\n};\n\n/* takes a css factory function and outputs an element factory */\nvar wrapAsElement = function wrapAsElement(css, names) {\n return function () {\n var _props;\n\n var props = (_props = {}, _props[SC_ATTR] = stringifyNames(names), _props[SC_VERSION_ATTR] = \"4.4.0\", _props);\n\n var nonce = getNonce();\n if (nonce) {\n // $FlowFixMe\n props.nonce = nonce;\n }\n\n // eslint-disable-next-line react/no-danger\n return React.createElement('style', _extends({}, props, { dangerouslySetInnerHTML: { __html: css() } }));\n };\n};\n\nvar getIdsFromMarkersFactory = function getIdsFromMarkersFactory(markers) {\n return function () {\n return Object.keys(markers);\n };\n};\n\n/* speedy tags utilise insertRule */\nvar makeSpeedyTag = function makeSpeedyTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var sizes = [];\n\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = sizes.length;\n sizes.push(0);\n resetIdNames(names, id);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var sheet = sheetForTag(el);\n var insertIndex = addUpUntilIndex(sizes, marker);\n\n var injectedRules = 0;\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = cssRules[i];\n var mayHaveImport = extractImport; /* @import rules are reordered to appear first */\n if (mayHaveImport && cssRule.indexOf('@import') !== -1) {\n importRules.push(cssRule);\n } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n mayHaveImport = false;\n injectedRules += 1;\n }\n }\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n\n sizes[marker] += injectedRules; /* add up no of injected rules */\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n // $FlowFixMe\n if (el.isConnected === false) return;\n\n var size = sizes[marker];\n var sheet = sheetForTag(el);\n var removalIndex = addUpUntilIndex(sizes, marker) - 1;\n deleteRules(sheet, removalIndex, size);\n sizes[marker] = 0;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var _sheetForTag = sheetForTag(el),\n cssRules = _sheetForTag.cssRules;\n\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += makeTextMarker(id);\n var marker = markers[id];\n var end = addUpUntilIndex(sizes, marker);\n var size = sizes[marker];\n for (var i = end - size; i < end; i += 1) {\n var rule = cssRules[i];\n if (rule !== undefined) {\n str += rule.cssText;\n }\n }\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeTextNode = function makeTextNode(targetDocument, id) {\n return targetDocument.createTextNode(makeTextMarker(id));\n};\n\nvar makeBrowserTag = function makeBrowserTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n\n var extractImport = getImportRuleTag !== undefined;\n\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = makeTextNode(el.ownerDocument, id);\n el.appendChild(markers[id]);\n names[id] = Object.create(null);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var rule = cssRules[i];\n var mayHaveImport = extractImport;\n if (mayHaveImport && rule.indexOf('@import') !== -1) {\n importRules.push(rule);\n } else {\n mayHaveImport = false;\n var separator = i === cssRulesSize - 1 ? '' : ' ';\n marker.appendData('' + rule + separator);\n }\n }\n\n addNameForId(names, id, name);\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n\n /* create new empty text node and replace the current one */\n var newMarker = makeTextNode(el.ownerDocument, id);\n el.replaceChild(newMarker, marker);\n markers[id] = newMarker;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += markers[id].data;\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeServerTag = function makeServerTag(namesArg, markersArg) {\n var names = namesArg === undefined ? Object.create(null) : namesArg;\n var markers = markersArg === undefined ? Object.create(null) : markersArg;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n return markers[id] = [''];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n marker[0] += cssRules.join(' ');\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n marker[0] = '';\n resetIdNames(names, id);\n };\n\n var css = function css() {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n var cssForId = markers[id][0];\n if (cssForId) {\n str += makeTextMarker(id) + cssForId;\n }\n }\n return str;\n };\n\n var clone = function clone() {\n var namesClone = cloneNames(names);\n var markersClone = Object.create(null);\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n markersClone[id] = [markers[id][0]];\n }\n\n return makeServerTag(namesClone, markersClone);\n };\n\n var tag = {\n clone: clone,\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: null,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n\n return tag;\n};\n\nvar makeTag = function makeTag(target, tagEl, forceServer, insertBefore, getImportRuleTag) {\n if (IS_BROWSER && !forceServer) {\n var el = makeStyleTag(target, tagEl, insertBefore);\n\n if (DISABLE_SPEEDY) {\n return makeBrowserTag(el, getImportRuleTag);\n } else {\n return makeSpeedyTag(el, getImportRuleTag);\n }\n }\n\n return makeServerTag();\n};\n\nvar rehydrate = function rehydrate(tag, els, extracted) {\n /* add all extracted components to the new tag */\n for (var i = 0, len = extracted.length; i < len; i += 1) {\n var _extracted$i = extracted[i],\n componentId = _extracted$i.componentId,\n cssFromDOM = _extracted$i.cssFromDOM;\n\n var cssRules = splitByRules(cssFromDOM);\n tag.insertRules(componentId, cssRules);\n }\n\n /* remove old HTMLStyleElements, since they have been rehydrated */\n for (var _i = 0, _len = els.length; _i < _len; _i += 1) {\n var el = els[_i];\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n};\n\n// \n\nvar SPLIT_REGEX = /\\s+/;\n\n/* determine the maximum number of components before tags are sharded */\nvar MAX_SIZE = void 0;\nif (IS_BROWSER) {\n /* in speedy mode we can keep a lot more rules in a sheet before a slowdown can be expected */\n MAX_SIZE = DISABLE_SPEEDY ? 40 : 1000;\n} else {\n /* for servers we do not need to shard at all */\n MAX_SIZE = -1;\n}\n\nvar sheetRunningId = 0;\nvar master = void 0;\n\nvar StyleSheet = function () {\n\n /* a map from ids to tags */\n\n /* deferred rules for a given id */\n\n /* this is used for not reinjecting rules via hasNameForId() */\n\n /* when rules for an id are removed using remove() we have to ignore rehydratedNames for it */\n\n /* a list of tags belonging to this StyleSheet */\n\n /* a tag for import rules */\n\n /* current capacity until a new tag must be created */\n\n /* children (aka clones) of this StyleSheet inheriting all and future injections */\n\n function StyleSheet() {\n var _this = this;\n\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : IS_BROWSER ? document.head : null;\n var forceServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n classCallCheck(this, StyleSheet);\n\n this.getImportRuleTag = function () {\n var importRuleTag = _this.importRuleTag;\n\n if (importRuleTag !== undefined) {\n return importRuleTag;\n }\n\n var firstTag = _this.tags[0];\n var insertBefore = true;\n\n return _this.importRuleTag = makeTag(_this.target, firstTag ? firstTag.styleTag : null, _this.forceServer, insertBefore);\n };\n\n sheetRunningId += 1;\n this.id = sheetRunningId;\n this.forceServer = forceServer;\n this.target = forceServer ? null : target;\n this.tagMap = {};\n this.deferred = {};\n this.rehydratedNames = {};\n this.ignoreRehydratedNames = {};\n this.tags = [];\n this.capacity = 1;\n this.clones = [];\n }\n\n /* rehydrate all SSR'd style tags */\n\n\n StyleSheet.prototype.rehydrate = function rehydrate$$1() {\n if (!IS_BROWSER || this.forceServer) return this;\n\n var els = [];\n var extracted = [];\n var isStreamed = false;\n\n /* retrieve all of our SSR style elements from the DOM */\n var nodes = document.querySelectorAll('style[' + SC_ATTR + '][' + SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"]');\n\n var nodesSize = nodes.length;\n\n /* abort rehydration if no previous style tags were found */\n if (!nodesSize) return this;\n\n for (var i = 0; i < nodesSize; i += 1) {\n var el = nodes[i];\n\n /* check if style tag is a streamed tag */\n if (!isStreamed) isStreamed = !!el.getAttribute(SC_STREAM_ATTR);\n\n /* retrieve all component names */\n var elNames = (el.getAttribute(SC_ATTR) || '').trim().split(SPLIT_REGEX);\n var elNamesSize = elNames.length;\n for (var j = 0, name; j < elNamesSize; j += 1) {\n name = elNames[j];\n /* add rehydrated name to sheet to avoid re-adding styles */\n this.rehydratedNames[name] = true;\n }\n\n /* extract all components and their CSS */\n extracted.push.apply(extracted, extractComps(el.textContent));\n\n /* store original HTMLStyleElement */\n els.push(el);\n }\n\n /* abort rehydration if nothing was extracted */\n var extractedSize = extracted.length;\n if (!extractedSize) return this;\n\n /* create a tag to be used for rehydration */\n var tag = this.makeTag(null);\n\n rehydrate(tag, els, extracted);\n\n /* reset capacity and adjust MAX_SIZE by the initial size of the rehydration */\n this.capacity = Math.max(1, MAX_SIZE - extractedSize);\n this.tags.push(tag);\n\n /* retrieve all component ids */\n for (var _j = 0; _j < extractedSize; _j += 1) {\n this.tagMap[extracted[_j].componentId] = tag;\n }\n\n return this;\n };\n\n /* retrieve a \"master\" instance of StyleSheet which is typically used when no other is available\n * The master StyleSheet is targeted by createGlobalStyle, keyframes, and components outside of any\n * StyleSheetManager's context */\n\n\n /* reset the internal \"master\" instance */\n StyleSheet.reset = function reset() {\n var forceServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n master = new StyleSheet(undefined, forceServer).rehydrate();\n };\n\n /* adds \"children\" to the StyleSheet that inherit all of the parents' rules\n * while their own rules do not affect the parent */\n\n\n StyleSheet.prototype.clone = function clone() {\n var sheet = new StyleSheet(this.target, this.forceServer);\n\n /* add to clone array */\n this.clones.push(sheet);\n\n /* clone all tags */\n sheet.tags = this.tags.map(function (tag) {\n var ids = tag.getIds();\n var newTag = tag.clone();\n\n /* reconstruct tagMap */\n for (var i = 0; i < ids.length; i += 1) {\n sheet.tagMap[ids[i]] = newTag;\n }\n\n return newTag;\n });\n\n /* clone other maps */\n sheet.rehydratedNames = _extends({}, this.rehydratedNames);\n sheet.deferred = _extends({}, this.deferred);\n\n return sheet;\n };\n\n /* force StyleSheet to create a new tag on the next injection */\n\n\n StyleSheet.prototype.sealAllTags = function sealAllTags() {\n this.capacity = 1;\n\n this.tags.forEach(function (tag) {\n // eslint-disable-next-line no-param-reassign\n tag.sealed = true;\n });\n };\n\n StyleSheet.prototype.makeTag = function makeTag$$1(tag) {\n var lastEl = tag ? tag.styleTag : null;\n var insertBefore = false;\n\n return makeTag(this.target, lastEl, this.forceServer, insertBefore, this.getImportRuleTag);\n };\n\n /* get a tag for a given componentId, assign the componentId to one, or shard */\n StyleSheet.prototype.getTagForId = function getTagForId(id) {\n /* simply return a tag, when the componentId was already assigned one */\n var prev = this.tagMap[id];\n if (prev !== undefined && !prev.sealed) {\n return prev;\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n /* shard (create a new tag) if the tag is exhausted (See MAX_SIZE) */\n this.capacity -= 1;\n\n if (this.capacity === 0) {\n this.capacity = MAX_SIZE;\n tag = this.makeTag(tag);\n this.tags.push(tag);\n }\n\n return this.tagMap[id] = tag;\n };\n\n /* mainly for createGlobalStyle to check for its id */\n\n\n StyleSheet.prototype.hasId = function hasId(id) {\n return this.tagMap[id] !== undefined;\n };\n\n /* caching layer checking id+name to already have a corresponding tag and injected rules */\n\n\n StyleSheet.prototype.hasNameForId = function hasNameForId(id, name) {\n /* exception for rehydrated names which are checked separately */\n if (this.ignoreRehydratedNames[id] === undefined && this.rehydratedNames[name]) {\n return true;\n }\n\n var tag = this.tagMap[id];\n return tag !== undefined && tag.hasNameForId(id, name);\n };\n\n /* registers a componentId and registers it on its tag */\n\n\n StyleSheet.prototype.deferredInject = function deferredInject(id, cssRules) {\n /* don't inject when the id is already registered */\n if (this.tagMap[id] !== undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].deferredInject(id, cssRules);\n }\n\n this.getTagForId(id).insertMarker(id);\n this.deferred[id] = cssRules;\n };\n\n /* injects rules for a given id with a name that will need to be cached */\n\n\n StyleSheet.prototype.inject = function inject(id, cssRules, name) {\n var clones = this.clones;\n\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].inject(id, cssRules, name);\n }\n\n var tag = this.getTagForId(id);\n\n /* add deferred rules for component */\n if (this.deferred[id] !== undefined) {\n // Combine passed cssRules with previously deferred CSS rules\n // NOTE: We cannot mutate the deferred array itself as all clones\n // do the same (see clones[i].inject)\n var rules = this.deferred[id].concat(cssRules);\n tag.insertRules(id, rules, name);\n\n this.deferred[id] = undefined;\n } else {\n tag.insertRules(id, cssRules, name);\n }\n };\n\n /* removes all rules for a given id, which doesn't remove its marker but resets it */\n\n\n StyleSheet.prototype.remove = function remove(id) {\n var tag = this.tagMap[id];\n if (tag === undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].remove(id);\n }\n\n /* remove all rules from the tag */\n tag.removeRules(id);\n\n /* ignore possible rehydrated names */\n this.ignoreRehydratedNames[id] = true;\n\n /* delete possible deferred rules */\n this.deferred[id] = undefined;\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n var id = this.id;\n\n\n return this.tags.map(function (tag, i) {\n var key = 'sc-' + id + '-' + i;\n return cloneElement(tag.toElement(), { key: key });\n });\n };\n\n createClass(StyleSheet, null, [{\n key: 'master',\n get: function get$$1() {\n return master || (master = new StyleSheet().rehydrate());\n }\n\n /* NOTE: This is just for backwards-compatibility with jest-styled-components */\n\n }, {\n key: 'instance',\n get: function get$$1() {\n return StyleSheet.master;\n }\n }]);\n return StyleSheet;\n}();\n\n// \n\nvar Keyframes = function () {\n function Keyframes(name, rules) {\n var _this = this;\n\n classCallCheck(this, Keyframes);\n\n this.inject = function (styleSheet) {\n if (!styleSheet.hasNameForId(_this.id, _this.name)) {\n styleSheet.inject(_this.id, _this.rules, _this.name);\n }\n };\n\n this.toString = function () {\n throw new StyledComponentsError(12, String(_this.name));\n };\n\n this.name = name;\n this.rules = rules;\n\n this.id = 'sc-keyframes-' + name;\n }\n\n Keyframes.prototype.getName = function getName() {\n return this.name;\n };\n\n return Keyframes;\n}();\n\n// \n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\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 * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return string.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\n// \n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nfunction addUnitIfNeeded(name, value) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n}\n\n// \n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nvar isFalsish = function isFalsish(chunk) {\n return chunk === undefined || chunk === null || chunk === false || chunk === '';\n};\n\nvar objToCssArray = function objToCssArray(obj, prevKey) {\n var rules = [];\n var keys = Object.keys(obj);\n\n keys.forEach(function (key) {\n if (!isFalsish(obj[key])) {\n if (isPlainObject(obj[key])) {\n rules.push.apply(rules, objToCssArray(obj[key], key));\n\n return rules;\n } else if (isFunction(obj[key])) {\n rules.push(hyphenateStyleName(key) + ':', obj[key], ';');\n\n return rules;\n }\n rules.push(hyphenateStyleName(key) + ': ' + addUnitIfNeeded(key, obj[key]) + ';');\n }\n return rules;\n });\n\n return prevKey ? [prevKey + ' {'].concat(rules, ['}']) : rules;\n};\n\nfunction flatten(chunk, executionContext, styleSheet) {\n if (Array.isArray(chunk)) {\n var ruleSet = [];\n\n for (var i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet);\n\n if (result === null) continue;else if (Array.isArray(result)) ruleSet.push.apply(ruleSet, result);else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return null;\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return '.' + chunk.styledComponentId;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n var _result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(_result)) {\n // eslint-disable-next-line no-console\n console.warn(getComponentName(chunk) + ' is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.');\n }\n\n return flatten(_result, executionContext, styleSheet);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet);\n return chunk.getName();\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n}\n\n// \n\nfunction css(styles) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return flatten(interleave(EMPTY_ARRAY, [styles].concat(interpolations)));\n }\n\n // $FlowFixMe\n return flatten(interleave(styles, interpolations));\n}\n\n// \n\nfunction constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n if (!isValidElementType(tag)) {\n throw new StyledComponentsError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n var templateFunction = function templateFunction() {\n return componentConstructor(tag, options, css.apply(undefined, arguments));\n };\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean)\n }));\n };\n\n return templateFunction;\n}\n\n// \n// Source: https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash(c) {\n for (var e = c.length | 0, a = e | 0, d = 0, b; e >= 4;) {\n b = c.charCodeAt(d) & 255 | (c.charCodeAt(++d) & 255) << 8 | (c.charCodeAt(++d) & 255) << 16 | (c.charCodeAt(++d) & 255) << 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), b ^= b >>> 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16) ^ b, e -= 4, ++d;\n }\n switch (e) {\n case 3:\n a ^= (c.charCodeAt(d + 2) & 255) << 16;\n case 2:\n a ^= (c.charCodeAt(d + 1) & 255) << 8;\n case 1:\n a ^= c.charCodeAt(d) & 255, a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n }\n a ^= a >>> 13;\n a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n return (a ^ a >>> 15) >>> 0;\n}\n\n// \n/* eslint-disable no-bitwise */\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nvar charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nvar getAlphabeticChar = function getAlphabeticChar(code) {\n return String.fromCharCode(code + (code > 25 ? 39 : 97));\n};\n\n/* input a number, usually a hash and convert it to base-52 */\nfunction generateAlphabeticName(code) {\n var name = '';\n var x = void 0;\n\n /* get a char and divide by alphabet-length */\n for (x = code; x > charsLength; x = Math.floor(x / charsLength)) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return getAlphabeticChar(x % charsLength) + name;\n}\n\n// \n\nfunction hasFunctionObjectKey(obj) {\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in obj) {\n if (isFunction(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isStaticRules(rules, attrs) {\n for (var i = 0; i < rules.length; i += 1) {\n var rule = rules[i];\n\n // recursive case\n if (Array.isArray(rule) && !isStaticRules(rule, attrs)) {\n return false;\n } else if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n if (attrs.some(function (x) {\n return isFunction(x) || hasFunctionObjectKey(x);\n })) return false;\n\n return true;\n}\n\n// \n\n/* combines hashStr (murmurhash) and nameGenerator for convenience */\nvar hasher = function hasher(str) {\n return generateAlphabeticName(murmurhash(str));\n};\n\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\n\nvar ComponentStyle = function () {\n function ComponentStyle(rules, attrs, componentId) {\n classCallCheck(this, ComponentStyle);\n\n this.rules = rules;\n this.isStatic = process.env.NODE_ENV === 'production' && isStaticRules(rules, attrs);\n this.componentId = componentId;\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n\n\n ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) {\n var isStatic = this.isStatic,\n componentId = this.componentId,\n lastClassName = this.lastClassName;\n\n if (IS_BROWSER && isStatic && typeof lastClassName === 'string' && styleSheet.hasNameForId(componentId, lastClassName)) {\n return lastClassName;\n }\n\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var name = hasher(this.componentId + flatCSS.join(''));\n if (!styleSheet.hasNameForId(componentId, name)) {\n styleSheet.inject(this.componentId, stringifyRules(flatCSS, '.' + name, undefined, componentId), name);\n }\n\n this.lastClassName = name;\n return name;\n };\n\n ComponentStyle.generateName = function generateName(str) {\n return hasher(str);\n };\n\n return ComponentStyle;\n}();\n\n// \n\nvar LIMIT = 200;\n\nvar createWarnTooManyClasses = (function (displayName) {\n var generatedClasses = {};\n var warningSeen = false;\n\n return function (className) {\n if (!warningSeen) {\n generatedClasses[className] = true;\n if (Object.keys(generatedClasses).length >= LIMIT) {\n // Unable to find latestRule in test environment.\n /* eslint-disable no-console, prefer-template */\n console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \\n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\\n' + 'Example:\\n' + ' const Component = styled.div.attrs(props => ({\\n' + ' style: {\\n' + ' background: props.background,\\n' + ' },\\n' + ' }))`width: 100%;`\\n\\n' + ' ');\n warningSeen = true;\n generatedClasses = {};\n }\n }\n };\n});\n\n// \n\nvar determineTheme = (function (props, fallbackTheme) {\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types, flowtype-errors/show-errors */\n var isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;\n /* eslint-enable */\n\n return theme;\n});\n\n// \nvar escapeRegex = /[[\\].#*$><+~=|^:(),\"'`-]+/g;\nvar dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nfunction escape(str) {\n return str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n\n// \n\nfunction isTag(target) {\n return typeof target === 'string' && (process.env.NODE_ENV !== 'production' ? target.charAt(0) === target.charAt(0).toLowerCase() : true);\n}\n\n// \n\nfunction generateDisplayName(target) {\n // $FlowFixMe\n return isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')';\n}\n\nvar _TYPE_STATICS;\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDerivedStateFromProps: true,\n propTypes: true,\n type: true\n};\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};\n\nvar TYPE_STATICS = (_TYPE_STATICS = {}, _TYPE_STATICS[ForwardRef] = {\n $$typeof: true,\n render: true\n}, _TYPE_STATICS);\n\nvar defineProperty$1 = Object.defineProperty,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n _Object$getOwnPropert = Object.getOwnPropertySymbols,\n getOwnPropertySymbols = _Object$getOwnPropert === undefined ? function () {\n return [];\n} : _Object$getOwnPropert,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getPrototypeOf = Object.getPrototypeOf,\n objectPrototype = Object.prototype;\nvar arrayPrototype = Array.prototype;\n\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n\n var keys = arrayPrototype.concat(getOwnPropertyNames(sourceComponent),\n // $FlowFixMe\n getOwnPropertySymbols(sourceComponent));\n\n var targetStatics = TYPE_STATICS[targetComponent.$$typeof] || REACT_STATICS;\n\n var sourceStatics = TYPE_STATICS[sourceComponent.$$typeof] || REACT_STATICS;\n\n var i = keys.length;\n var descriptor = void 0;\n var key = void 0;\n\n // eslint-disable-next-line no-plusplus\n while (i--) {\n key = keys[i];\n\n if (\n // $FlowFixMe\n !KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) &&\n // $FlowFixMe\n !(targetStatics && targetStatics[key])) {\n descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n if (descriptor) {\n try {\n // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {\n /* fail silently */\n }\n }\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\n// \nfunction isDerivedReactComponent(fn) {\n return !!(fn && fn.prototype && fn.prototype.isReactComponent);\n}\n\n// \n// Helper to call a given function, only once\nvar once = (function (cb) {\n var called = false;\n\n return function () {\n if (!called) {\n called = true;\n cb.apply(undefined, arguments);\n }\n };\n});\n\n// \n\nvar ThemeContext = createContext();\n\nvar ThemeConsumer = ThemeContext.Consumer;\n\n/**\n * Provide a theme to an entire react component tree via context\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider(props) {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext.bind(_this));\n _this.renderInner = _this.renderInner.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) return null;\n\n return React.createElement(\n ThemeContext.Consumer,\n null,\n this.renderInner\n );\n };\n\n ThemeProvider.prototype.renderInner = function renderInner(outerTheme) {\n var context = this.getContext(this.props.theme, outerTheme);\n\n return React.createElement(\n ThemeContext.Provider,\n { value: context },\n this.props.children\n );\n };\n\n /**\n * Get the theme from the props, supporting both (outerTheme) => {}\n * as well as object notation\n */\n\n\n ThemeProvider.prototype.getTheme = function getTheme(theme, outerTheme) {\n if (isFunction(theme)) {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme === null || Array.isArray(mergedTheme) || (typeof mergedTheme === 'undefined' ? 'undefined' : _typeof(mergedTheme)) !== 'object')) {\n throw new StyledComponentsError(7);\n }\n\n return mergedTheme;\n }\n\n if (theme === null || Array.isArray(theme) || (typeof theme === 'undefined' ? 'undefined' : _typeof(theme)) !== 'object') {\n throw new StyledComponentsError(8);\n }\n\n return _extends({}, outerTheme, theme);\n };\n\n ThemeProvider.prototype.getContext = function getContext(theme, outerTheme) {\n return this.getTheme(theme, outerTheme);\n };\n\n return ThemeProvider;\n}(Component);\n\n// \n\nvar CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nvar ServerStyleSheet = function () {\n function ServerStyleSheet() {\n classCallCheck(this, ServerStyleSheet);\n\n /* The master sheet might be reset, so keep a reference here */\n this.masterSheet = StyleSheet.master;\n this.instance = this.masterSheet.clone();\n this.sealed = false;\n }\n\n /**\n * Mark the ServerStyleSheet as being fully emitted and manually GC it from the\n * StyleSheet singleton.\n */\n\n\n ServerStyleSheet.prototype.seal = function seal() {\n if (!this.sealed) {\n /* Remove sealed StyleSheets from the master sheet */\n var index = this.masterSheet.clones.indexOf(this.instance);\n this.masterSheet.clones.splice(index, 1);\n this.sealed = true;\n }\n };\n\n ServerStyleSheet.prototype.collectStyles = function collectStyles(children) {\n if (this.sealed) {\n throw new StyledComponentsError(2);\n }\n\n return React.createElement(\n StyleSheetManager,\n { sheet: this.instance },\n children\n );\n };\n\n ServerStyleSheet.prototype.getStyleTags = function getStyleTags() {\n this.seal();\n return this.instance.toHTML();\n };\n\n ServerStyleSheet.prototype.getStyleElement = function getStyleElement() {\n this.seal();\n return this.instance.toReactElements();\n };\n\n ServerStyleSheet.prototype.interleaveWithNodeStream = function interleaveWithNodeStream(readableStream) {\n var _this = this;\n\n {\n throw new StyledComponentsError(3);\n }\n\n /* the tag index keeps track of which tags have already been emitted */\n var instance = this.instance;\n\n var instanceTagIndex = 0;\n\n var streamAttr = SC_STREAM_ATTR + '=\"true\"';\n\n var transformer = new stream.Transform({\n transform: function appendStyleChunks(chunk, /* encoding */_, callback) {\n var tags = instance.tags;\n\n var html = '';\n\n /* retrieve html for each new style tag */\n for (; instanceTagIndex < tags.length; instanceTagIndex += 1) {\n var tag = tags[instanceTagIndex];\n html += tag.toHTML(streamAttr);\n }\n\n /* force our StyleSheets to emit entirely new tags */\n instance.sealAllTags();\n\n var renderedHtml = chunk.toString();\n\n /* prepend style html to chunk, unless the start of the chunk is a closing tag in which case append right after that */\n if (CLOSING_TAG_R.test(renderedHtml)) {\n var endOfClosingTag = renderedHtml.indexOf('>');\n\n this.push(renderedHtml.slice(0, endOfClosingTag + 1) + html + renderedHtml.slice(endOfClosingTag + 1));\n } else this.push(html + renderedHtml);\n\n callback();\n }\n });\n\n readableStream.on('end', function () {\n return _this.seal();\n });\n\n readableStream.on('error', function (err) {\n _this.seal();\n\n // forward the error to the transform stream\n transformer.emit('error', err);\n });\n\n return readableStream.pipe(transformer);\n };\n\n return ServerStyleSheet;\n}();\n\n// \n\nvar StyleSheetContext = createContext();\nvar StyleSheetConsumer = StyleSheetContext.Consumer;\n\nvar StyleSheetManager = function (_Component) {\n inherits(StyleSheetManager, _Component);\n\n function StyleSheetManager(props) {\n classCallCheck(this, StyleSheetManager);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext);\n return _this;\n }\n\n StyleSheetManager.prototype.getContext = function getContext(sheet, target) {\n if (sheet) {\n return sheet;\n } else if (target) {\n return new StyleSheet(target);\n } else {\n throw new StyledComponentsError(4);\n }\n };\n\n StyleSheetManager.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n sheet = _props.sheet,\n target = _props.target;\n\n\n return React.createElement(\n StyleSheetContext.Provider,\n { value: this.getContext(sheet, target) },\n process.env.NODE_ENV !== 'production' ? React.Children.only(children) : children\n );\n };\n\n return StyleSheetManager;\n}(Component);\nprocess.env.NODE_ENV !== \"production\" ? StyleSheetManager.propTypes = {\n sheet: PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]),\n\n target: PropTypes.shape({\n appendChild: PropTypes.func.isRequired\n })\n} : void 0;\n\n// \n\nvar THEME_PROP_REGEX = /\\.theme[.[]/;\nvar identifiers = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(_ComponentStyle, _displayName, parentComponentId) {\n var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName);\n\n /**\n * This ensures uniqueness if two components happen to share\n * the same displayName.\n */\n var nr = (identifiers[displayName] || 0) + 1;\n identifiers[displayName] = nr;\n\n var componentId = displayName + '-' + _ComponentStyle.generateName(displayName + nr);\n\n return parentComponentId ? parentComponentId + '-' + componentId : componentId;\n}\n\n// $FlowFixMe\n\nvar StyledComponent = function (_Component) {\n inherits(StyledComponent, _Component);\n\n function StyledComponent() {\n classCallCheck(this, StyledComponent);\n\n var _this = possibleConstructorReturn(this, _Component.call(this));\n\n _this.attrs = {};\n\n _this.renderOuter = _this.renderOuter.bind(_this);\n _this.renderInner = _this.renderInner.bind(_this);\n\n if (process.env.NODE_ENV !== 'production') {\n _this.warnInnerRef = once(function (displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('The \"innerRef\" API has been removed in styled-components v4 in favor of React 16 ref forwarding, use \"ref\" instead like a typical component. \"innerRef\" was detected on component \"' + displayName + '\".')\n );\n });\n\n _this.warnAttrsFnObjectKeyDeprecated = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('Functions as object-form attrs({}) keys are now deprecated and will be removed in a future version of styled-components. Switch to the new attrs(props => ({})) syntax instead for easier and more powerful composition. The attrs key in question is \"' + key + '\" on component \"' + displayName + '\".', '\\n ' + new Error().stack)\n );\n });\n\n _this.warnNonStyledComponentAttrsObjectKey = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('It looks like you\\'ve used a non styled-component as the value for the \"' + key + '\" prop in an object-form attrs constructor of \"' + displayName + '\".\\n' + 'You should use the new function-form attrs constructor which avoids this issue: attrs(props => ({ yourStuff }))\\n' + \"To continue using the deprecated object syntax, you'll need to wrap your component prop in a function to make it available inside the styled component (you'll still get the deprecation warning though.)\\n\" + ('For example, { ' + key + ': () => InnerComponent } instead of { ' + key + ': InnerComponent }'))\n );\n });\n }\n return _this;\n }\n\n StyledComponent.prototype.render = function render() {\n return React.createElement(\n StyleSheetConsumer,\n null,\n this.renderOuter\n );\n };\n\n StyledComponent.prototype.renderOuter = function renderOuter() {\n var styleSheet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : StyleSheet.master;\n\n this.styleSheet = styleSheet;\n\n // No need to subscribe a static component to theme changes, it won't change anything\n if (this.props.forwardedComponent.componentStyle.isStatic) return this.renderInner();\n\n return React.createElement(\n ThemeConsumer,\n null,\n this.renderInner\n );\n };\n\n StyledComponent.prototype.renderInner = function renderInner(theme) {\n var _props$forwardedCompo = this.props.forwardedComponent,\n componentStyle = _props$forwardedCompo.componentStyle,\n defaultProps = _props$forwardedCompo.defaultProps,\n displayName = _props$forwardedCompo.displayName,\n foldedComponentIds = _props$forwardedCompo.foldedComponentIds,\n styledComponentId = _props$forwardedCompo.styledComponentId,\n target = _props$forwardedCompo.target,\n usesTheme = _props$forwardedCompo.usesTheme;\n\n\n var generatedClassName = void 0;\n var rawTheme = void 0;\n\n if (componentStyle.isStatic) {\n generatedClassName = this.generateAndInjectStyles(EMPTY_OBJECT, this.props);\n } else {\n rawTheme = determineTheme(this.props, theme, defaultProps);\n generatedClassName = this.generateAndInjectStyles(rawTheme || EMPTY_OBJECT, this.props);\n\n if (process.env.NODE_ENV !== 'production' && usesTheme && !rawTheme) {\n console.error('Component \\'' +\n // $FlowFixMe\n displayName + '\\' (.' + styledComponentId + ') references the \\'theme\\' prop in its styles but no theme was provided via prop or .');\n }\n }\n\n var elementToBeCreated = this.props.as || this.attrs.as || target;\n var isTargetTag = isTag(elementToBeCreated);\n\n var propsForElement = {};\n var computedProps = _extends({}, this.props, this.attrs);\n\n var key = void 0;\n // eslint-disable-next-line guard-for-in\n for (key in computedProps) {\n if (process.env.NODE_ENV !== 'production' && key === 'innerRef' && isTargetTag) {\n this.warnInnerRef(displayName);\n }\n\n if (key === 'forwardedComponent' || key === 'as') {\n continue;\n } else if (key === 'forwardedRef') propsForElement.ref = computedProps[key];else if (key === 'forwardedAs') propsForElement.as = computedProps[key];else if (!isTargetTag || validAttr(key)) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (this.props.style && this.attrs.style) {\n propsForElement.style = _extends({}, this.attrs.style, this.props.style);\n }\n\n propsForElement.className = Array.prototype.concat(foldedComponentIds, styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : null, this.props.className, this.attrs.className).filter(Boolean).join(' ');\n\n return createElement(elementToBeCreated, propsForElement);\n };\n\n StyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props, attrs) {\n var _this2 = this;\n\n var context = _extends({}, props, { theme: theme });\n\n if (!attrs.length) return context;\n\n this.attrs = {};\n\n attrs.forEach(function (attrDef) {\n var resolvedAttrDef = attrDef;\n var attrDefWasFn = false;\n var attr = void 0;\n var key = void 0;\n\n if (isFunction(resolvedAttrDef)) {\n // $FlowFixMe\n resolvedAttrDef = resolvedAttrDef(context);\n attrDefWasFn = true;\n }\n\n /* eslint-disable guard-for-in */\n // $FlowFixMe\n for (key in resolvedAttrDef) {\n attr = resolvedAttrDef[key];\n\n if (!attrDefWasFn) {\n if (isFunction(attr) && !isDerivedReactComponent(attr) && !isStyledComponent(attr)) {\n if (process.env.NODE_ENV !== 'production') {\n _this2.warnAttrsFnObjectKeyDeprecated(key, props.forwardedComponent.displayName);\n }\n\n attr = attr(context);\n\n if (process.env.NODE_ENV !== 'production' && React.isValidElement(attr)) {\n _this2.warnNonStyledComponentAttrsObjectKey(key, props.forwardedComponent.displayName);\n }\n }\n }\n\n _this2.attrs[key] = attr;\n context[key] = attr;\n }\n /* eslint-enable */\n });\n\n return context;\n };\n\n StyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var _props$forwardedCompo2 = props.forwardedComponent,\n attrs = _props$forwardedCompo2.attrs,\n componentStyle = _props$forwardedCompo2.componentStyle,\n warnTooManyClasses = _props$forwardedCompo2.warnTooManyClasses;\n\n // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n\n if (componentStyle.isStatic && !attrs.length) {\n return componentStyle.generateAndInjectStyles(EMPTY_OBJECT, this.styleSheet);\n }\n\n var className = componentStyle.generateAndInjectStyles(this.buildExecutionContext(theme, props, attrs), this.styleSheet);\n\n if (process.env.NODE_ENV !== 'production' && warnTooManyClasses) warnTooManyClasses(className);\n\n return className;\n };\n\n return StyledComponent;\n}(Component);\n\nfunction createStyledComponent(target, options, rules) {\n var isTargetStyledComp = isStyledComponent(target);\n var isClass = !isTag(target);\n\n var _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? generateDisplayName(target) : _options$displayName,\n _options$componentId = options.componentId,\n componentId = _options$componentId === undefined ? generateId(ComponentStyle, options.displayName, options.parentComponentId) : _options$componentId,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? StyledComponent : _options$ParentCompon,\n _options$attrs = options.attrs,\n attrs = _options$attrs === undefined ? EMPTY_ARRAY : _options$attrs;\n\n\n var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n var finalAttrs =\n // $FlowFixMe\n isTargetStyledComp && target.attrs ? Array.prototype.concat(target.attrs, attrs).filter(Boolean) : attrs;\n\n var componentStyle = new ComponentStyle(isTargetStyledComp ? // fold the underlying StyledComponent rules up (implicit extend)\n // $FlowFixMe\n target.componentStyle.rules.concat(rules) : rules, finalAttrs, styledComponentId);\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n var WrappedStyledComponent = void 0;\n var forwardRef = function forwardRef(props, ref) {\n return React.createElement(ParentComponent, _extends({}, props, { forwardedComponent: WrappedStyledComponent, forwardedRef: ref }));\n };\n forwardRef.displayName = displayName;\n WrappedStyledComponent = React.forwardRef(forwardRef);\n WrappedStyledComponent.displayName = displayName;\n\n // $FlowFixMe\n WrappedStyledComponent.attrs = finalAttrs;\n // $FlowFixMe\n WrappedStyledComponent.componentStyle = componentStyle;\n\n // $FlowFixMe\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp ? // $FlowFixMe\n Array.prototype.concat(target.foldedComponentIds, target.styledComponentId) : EMPTY_ARRAY;\n\n // $FlowFixMe\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n // $FlowFixMe\n WrappedStyledComponent.target = isTargetStyledComp ? target.target : target;\n\n // $FlowFixMe\n WrappedStyledComponent.withComponent = function withComponent(tag) {\n var previousComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['componentId']);\n\n\n var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag)));\n\n var newOptions = _extends({}, optionsToCopy, {\n attrs: finalAttrs,\n componentId: newComponentId,\n ParentComponent: ParentComponent\n });\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n // $FlowFixMe\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get: function get$$1() {\n return this._foldedDefaultProps;\n },\n set: function set$$1(obj) {\n // $FlowFixMe\n this._foldedDefaultProps = isTargetStyledComp ? merge(target.defaultProps, obj) : obj;\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n WrappedStyledComponent.usesTheme = componentStyle.rules.some(function (x) {\n return isFunction(x) && THEME_PROP_REGEX.test(x.toString());\n });\n\n // $FlowFixMe\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName);\n }\n\n // $FlowFixMe\n WrappedStyledComponent.toString = function () {\n return '.' + WrappedStyledComponent.styledComponentId;\n };\n\n if (isClass) {\n hoistNonReactStatics(WrappedStyledComponent, target, {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n styledComponentId: true,\n target: true,\n withComponent: true\n });\n }\n\n return WrappedStyledComponent;\n}\n\n// \n// Thanks to ReactDOMFactories for this handy list!\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr',\n\n// SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'marker', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// \n\nvar styled = function styled(tag) {\n return constructWithOptions(createStyledComponent, tag);\n};\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(function (domElement) {\n styled[domElement] = styled(domElement);\n});\n\n// \n\nvar GlobalStyle = function () {\n function GlobalStyle(rules, componentId) {\n classCallCheck(this, GlobalStyle);\n\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules, EMPTY_ARRAY);\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n GlobalStyle.prototype.createStyles = function createStyles(executionContext, styleSheet) {\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var css = stringifyRules(flatCSS, '');\n\n styleSheet.inject(this.componentId, css);\n };\n\n GlobalStyle.prototype.removeStyles = function removeStyles(styleSheet) {\n var componentId = this.componentId;\n\n if (styleSheet.hasId(componentId)) {\n styleSheet.remove(componentId);\n }\n };\n\n // TODO: overwrite in-place instead of remove+create?\n\n\n GlobalStyle.prototype.renderStyles = function renderStyles(executionContext, styleSheet) {\n this.removeStyles(styleSheet);\n this.createStyles(executionContext, styleSheet);\n };\n\n return GlobalStyle;\n}();\n\n// \n\n// place our cache into shared context so it'll persist between HMRs\nif (IS_BROWSER) {\n window.scCGSHMRCache = {};\n}\n\nfunction createGlobalStyle(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var id = 'sc-global-' + murmurhash(JSON.stringify(rules));\n var style = new GlobalStyle(rules, id);\n\n var GlobalStyleComponent = function (_React$Component) {\n inherits(GlobalStyleComponent, _React$Component);\n\n function GlobalStyleComponent(props) {\n classCallCheck(this, GlobalStyleComponent);\n\n var _this = possibleConstructorReturn(this, _React$Component.call(this, props));\n\n var _this$constructor = _this.constructor,\n globalStyle = _this$constructor.globalStyle,\n styledComponentId = _this$constructor.styledComponentId;\n\n\n if (IS_BROWSER) {\n window.scCGSHMRCache[styledComponentId] = (window.scCGSHMRCache[styledComponentId] || 0) + 1;\n }\n\n /**\n * This fixes HMR compatibility. Don't ask me why, but this combination of\n * caching the closure variables via statics and then persisting the statics in\n * state works across HMR where no other combination did. ¯\\_(ツ)_/¯\n */\n _this.state = {\n globalStyle: globalStyle,\n styledComponentId: styledComponentId\n };\n return _this;\n }\n\n GlobalStyleComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n if (window.scCGSHMRCache[this.state.styledComponentId]) {\n window.scCGSHMRCache[this.state.styledComponentId] -= 1;\n }\n /**\n * Depending on the order \"render\" is called this can cause the styles to be lost\n * until the next render pass of the remaining instance, which may\n * not be immediate.\n */\n if (window.scCGSHMRCache[this.state.styledComponentId] === 0) {\n this.state.globalStyle.removeStyles(this.styleSheet);\n }\n };\n\n GlobalStyleComponent.prototype.render = function render() {\n var _this2 = this;\n\n if (process.env.NODE_ENV !== 'production' && React.Children.count(this.props.children)) {\n // eslint-disable-next-line no-console\n console.warn('The global style component ' + this.state.styledComponentId + ' was given child JSX. createGlobalStyle does not render children.');\n }\n\n return React.createElement(\n StyleSheetConsumer,\n null,\n function (styleSheet) {\n _this2.styleSheet = styleSheet || StyleSheet.master;\n\n var globalStyle = _this2.state.globalStyle;\n\n\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(STATIC_EXECUTION_CONTEXT, _this2.styleSheet);\n\n return null;\n } else {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = _this2.constructor.defaultProps;\n\n\n var context = _extends({}, _this2.props);\n\n if (typeof theme !== 'undefined') {\n context.theme = determineTheme(_this2.props, theme, defaultProps);\n }\n\n globalStyle.renderStyles(context, _this2.styleSheet);\n\n return null;\n }\n );\n }\n }\n );\n };\n\n return GlobalStyleComponent;\n }(React.Component);\n\n GlobalStyleComponent.globalStyle = style;\n GlobalStyleComponent.styledComponentId = id;\n\n\n return GlobalStyleComponent;\n}\n\n// \n\nvar replaceWhitespace = function replaceWhitespace(str) {\n return str.replace(/\\s|\\\\n/g, '');\n};\n\nfunction keyframes(strings) {\n /* Warning if you've used keyframes on React Native */\n if (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn('`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.');\n }\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n\n var name = generateAlphabeticName(murmurhash(replaceWhitespace(JSON.stringify(rules))));\n\n return new Keyframes(name, stringifyRules(rules, name, '@keyframes'));\n}\n\n// \n\nvar withTheme = (function (Component$$1) {\n var WithTheme = React.forwardRef(function (props, ref) {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = Component$$1.defaultProps;\n\n var themeProp = determineTheme(props, theme, defaultProps);\n\n if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + getComponentName(Component$$1) + '\"');\n }\n\n return React.createElement(Component$$1, _extends({}, props, { theme: themeProp, ref: ref }));\n }\n );\n });\n\n hoistNonReactStatics(WithTheme, Component$$1);\n\n WithTheme.displayName = 'WithTheme(' + getComponentName(Component$$1) + ')';\n\n return WithTheme;\n});\n\n// \n\n/* eslint-disable */\nvar __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS = {\n StyleSheet: StyleSheet\n};\n\n// \n\n/* Warning if you've imported this file on React Native */\nif (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like you've imported 'styled-components' on React Native.\\n\" + \"Perhaps you're looking to import 'styled-components/native'?\\n\" + 'Read more about this at https://www.styled-components.com/docs/basics#react-native');\n}\n\n/* Warning if there are several instances of styled-components */\nif (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test' && typeof window !== 'undefined' && typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Node.js') === -1 && navigator.userAgent.indexOf('jsdom') === -1) {\n window['__styled-components-init__'] = window['__styled-components-init__'] || 0;\n\n if (window['__styled-components-init__'] === 1) {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. \" + 'This may cause dynamic styles not rendering properly, errors happening during rehydration process ' + 'and makes your application bigger without a good reason.\\n\\n' + 'See https://s-c.sh/2BAXzed for more info.');\n }\n\n window['__styled-components-init__'] += 1;\n}\n\n//\n\nexport default styled;\nexport { createGlobalStyle, css, isStyledComponent, keyframes, ServerStyleSheet, StyleSheetConsumer, StyleSheetContext, StyleSheetManager, ThemeConsumer, ThemeContext, ThemeProvider, withTheme, __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS };\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","export const colors = {\n PRIMARY: '#ABE2FB',\n SECONDARY: '#E6E6E6',\n DARKER_PRIMARY: '#87ceeb',\n OFF_WHITE: '#15181A',\n GREY: '#D3D3D3',\n RED: '#FF5E5E',\n DARK_GREY: '#535D63'\n};\n\nexport const TRACK_TOTAL_DEG = 270.0;\n\nexport const RADIAN = Math.PI / 180.0;\n\nexport const light = {\n primary: colors.PRIMARY,\n secondary: colors.SECONDARY,\n detail: colors.GREY,\n dark: false\n};\n\nexport const dark = {\n primary: colors.PRIMARY,\n secondary: colors.DARK_GREY,\n detail: colors.DARK_GREY,\n dark: true\n};\n\nexport default {\n dark,\n light,\n colors\n};\n","import { omit } from 'ramda';\n\nexport const getClassName = (componentName, theme) => {\n return 'daq-' + componentName + (theme && theme.dark ? '--dark' : '--light');\n};\n\nexport const getFilteredProps = props => omit(['className', 'id', 'setProps', 'style'], props);\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(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};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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};","import React from 'react';\nimport styled from 'styled-components';\n\nimport Label from './Label.styled';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-around;\n flex-direction: column;\n ${({ fullSize }) => {\n if (fullSize) return 'width: 100%;';\n return '';\n }}\n`;\n\nfunction LabelContainer(props) {\n let labelText = props.label;\n let customLabelStyle = {};\n if (typeof props.label === 'object') {\n labelText = props.label.label;\n customLabelStyle = props.label.style;\n }\n const labelElement = \n // if (labelText && labelText.length) {\n return (\n \n {props.labelPosition == 'top' && labelElement}\n {props.children}\n {props.labelPosition != 'top' && labelElement}\n \n );\n // }\n // return
{props.children}
;\n}\n\nLabelContainer.defaultProps = {\n labelPosition: 'bottom'\n};\n\nexport default LabelContainer;\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = 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 (0, _defineProperty2.default)(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}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","(function() { module.exports = window[\"ReactDOM\"]; }());","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n\tvar _react = __webpack_require__(1);\n\n\tvar _react2 = _interopRequireDefault(_react);\n\n\tvar _propTypes = __webpack_require__(2);\n\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\tvar KEYCODE_UP = 38;\n\tvar KEYCODE_DOWN = 40;\n\tvar IS_BROWSER = typeof document != 'undefined';\n\tvar RE_NUMBER = /^[+-]?((\\.\\d+)|(\\d+(\\.\\d+)?))$/;\n\tvar RE_INCOMPLETE_NUMBER = /^([+-]|\\.0*|[+-]\\.0*|[+-]?\\d+\\.)?$/;\n\n\tfunction addClass(element, className) {\n\t if (element.classList) {\n\t return element.classList.add(className);\n\t }\n\t if (!element.className.search(new RegExp(\"\\\\b\" + className + \"\\\\b\"))) {\n\t element.className = \" \" + className;\n\t }\n\t}\n\n\tfunction removeClass(element, className) {\n\t if (element.className) {\n\t if (element.classList) {\n\t return element.classList.remove(className);\n\t }\n\n\t element.className = element.className.replace(new RegExp(\"\\\\b\" + className + \"\\\\b\", \"g\"), \"\");\n\t }\n\t}\n\n\tfunction access(object, prop, defaultValue) {\n\t var result = object[prop];\n\t if (typeof result == \"function\") {\n\t for (var _len = arguments.length, args = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n\t args[_key - 3] = arguments[_key];\n\t }\n\n\t result = result.apply(undefined, args);\n\t }\n\t return result === undefined ? defaultValue : result;\n\t}\n\n\tvar NumericInput = function (_Component) {\n\t _inherits(NumericInput, _Component);\n\n\t function NumericInput() {\n\t var _ref;\n\n\t _classCallCheck(this, NumericInput);\n\n\t for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t args[_key2] = arguments[_key2];\n\t }\n\n\t var _this = _possibleConstructorReturn(this, (_ref = NumericInput.__proto__ || Object.getPrototypeOf(NumericInput)).call.apply(_ref, [this].concat(args)));\n\n\t _this._isStrict = !!_this.props.strict;\n\n\t _this.state = _extends({\n\t btnDownHover: false,\n\t btnDownActive: false,\n\t btnUpHover: false,\n\t btnUpActive: false,\n\t stringValue: \"\"\n\t }, _this._propsToState(_this.props));\n\t _this.stop = _this.stop.bind(_this);\n\t _this.onTouchEnd = _this.onTouchEnd.bind(_this);\n\t _this.refsInput = {};\n\t _this.refsWrapper = {};\n\t return _this;\n\t }\n\n\t _createClass(NumericInput, [{\n\t key: '_propsToState',\n\t value: function _propsToState(props) {\n\t var out = {};\n\n\t if (props.hasOwnProperty(\"value\")) {\n\t out.stringValue = String(props.value || props.value === 0 ? props.value : '').trim();\n\n\t out.value = out.stringValue !== '' ? this._parse(props.value) : null;\n\t } else if (!this._isMounted && props.hasOwnProperty(\"defaultValue\")) {\n\t out.stringValue = String(props.defaultValue || props.defaultValue === 0 ? props.defaultValue : '').trim();\n\n\t out.value = props.defaultValue !== '' ? this._parse(props.defaultValue) : null;\n\t }\n\n\t return out;\n\t }\n\t }, {\n\t key: 'componentWillReceiveProps',\n\t value: function componentWillReceiveProps(props) {\n\t var _this2 = this;\n\n\t this._isStrict = !!props.strict;\n\t var nextState = this._propsToState(props);\n\t if (Object.keys(nextState).length) {\n\t this._ignoreValueChange = true;\n\t this.setState(nextState, function () {\n\t _this2._ignoreValueChange = false;\n\t });\n\t }\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate() {\n\t this.saveSelection();\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate(prevProps, prevState) {\n\t if (!this._ignoreValueChange && prevState.value !== this.state.value && (!isNaN(this.state.value) || this.state.value === null)) {\n\t this._invokeEventCallback(\"onChange\", this.state.value, this.refsInput.value, this.refsInput);\n\t }\n\n\t if (this._inputFocus) {\n\t this.refsInput.focus();\n\n\t if (this.state.selectionStart || this.state.selectionStart === 0) {\n\t this.refsInput.selectionStart = this.state.selectionStart;\n\t }\n\n\t if (this.state.selectionEnd || this.state.selectionEnd === 0) {\n\t this.refsInput.selectionEnd = this.state.selectionEnd;\n\t }\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t this._isMounted = false;\n\t this.stop();\n\t }\n\t }, {\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var _this3 = this;\n\n\t this._isMounted = true;\n\t this.refsInput.getValueAsNumber = function () {\n\t return _this3.state.value || 0;\n\t };\n\n\t this.refsInput.setValue = function (value) {\n\t _this3.setState({\n\t value: _this3._parse(value),\n\t stringValue: value\n\t });\n\t };\n\n\t if (!this._inputFocus && IS_BROWSER && document.activeElement === this.refsInput) {\n\t this._inputFocus = true;\n\t this.refsInput.focus();\n\t this._invokeEventCallback(\"onFocus\", {\n\t target: this.refsInput,\n\t type: \"focus\"\n\t });\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'saveSelection',\n\t value: function saveSelection() {\n\t this.state.selectionStart = this.refsInput.selectionStart;\n\t this.state.selectionEnd = this.refsInput.selectionEnd;\n\t }\n\t }, {\n\t key: 'checkValidity',\n\t value: function checkValidity() {\n\t var valid = void 0,\n\t validationError = \"\";\n\n\t var supportsValidation = !!this.refsInput.checkValidity;\n\n\t var noValidate = !!(this.props.noValidate && this.props.noValidate != \"false\");\n\n\t this.refsInput.noValidate = noValidate;\n\n\t valid = noValidate || !supportsValidation;\n\n\t if (valid) {\n\t validationError = \"\";\n\t } else {\n\t if (this.refsInput.pattern === \"\") {\n\t this.refsInput.pattern = this.props.required ? \".+\" : \".*\";\n\t }\n\n\t if (supportsValidation) {\n\t this.refsInput.checkValidity();\n\t valid = this.refsInput.validity.valid;\n\n\t if (!valid) {\n\t validationError = this.refsInput.validationMessage;\n\t }\n\t }\n\n\t if (valid && supportsValidation && this.props.maxLength) {\n\t if (this.refsInput.value.length > this.props.maxLength) {\n\t validationError = \"This value is too long\";\n\t }\n\t }\n\t }\n\n\t validationError = validationError || (valid ? \"\" : this.refsInput.validationMessage || \"Unknown Error\");\n\n\t var validStateChanged = this._valid !== validationError;\n\t this._valid = validationError;\n\t if (validationError) {\n\t addClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onInvalid\", validationError, this.state.value, this.refsInput.value);\n\t }\n\t } else {\n\t removeClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onValid\", this.state.value, this.refsInput.value);\n\t }\n\t }\n\t }\n\t }, {\n\t key: '_toNumber',\n\t value: function _toNumber(x) {\n\t var n = parseFloat(x);\n\t if (isNaN(n) || !isFinite(n)) {\n\t n = 0;\n\t }\n\n\t if (this._isStrict) {\n\t var precision = access(this.props, \"precision\", null, this);\n\t var q = Math.pow(10, precision === null ? 10 : precision);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t n = Math.min(Math.max(n, _min), _max);\n\t n = Math.round(n * q) / q;\n\t }\n\n\t return n;\n\t }\n\t }, {\n\t key: '_parse',\n\t value: function _parse(x) {\n\t x = String(x);\n\t if (typeof this.props.parse == 'function') {\n\t return parseFloat(this.props.parse(x));\n\t }\n\t return parseFloat(x);\n\t }\n\t }, {\n\t key: '_format',\n\t value: function _format(n) {\n\t var _n = this._toNumber(n);\n\t var precision = access(this.props, \"precision\", null, this);\n\t if (precision !== null) {\n\t _n = n.toFixed(precision);\n\t }\n\n\t _n += \"\";\n\n\t if (this.props.format) {\n\t return this.props.format(_n);\n\t }\n\n\t return _n;\n\t }\n\t }, {\n\t key: '_step',\n\t value: function _step(n, callback) {\n\t var _isStrict = this._isStrict;\n\t this._isStrict = true;\n\n\t var _step = +access(this.props, \"step\", NumericInput.defaultProps.step, this, n > 0 ? NumericInput.DIRECTION_UP : NumericInput.DIRECTION_DOWN);\n\n\t var _n = this._toNumber((this.state.value || 0) + _step * n);\n\n\t if (this.props.snap) {\n\t _n = Math.round(_n / _step) * _step;\n\t }\n\n\t this._isStrict = _isStrict;\n\n\t if (_n !== this.state.value) {\n\t this.setState({ value: _n, stringValue: _n + \"\" }, callback);\n\t return true;\n\t }\n\n\t return false;\n\t }\n\t }, {\n\t key: '_onKeyDown',\n\t value: function _onKeyDown() {\n\t for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n\t args[_key3] = arguments[_key3];\n\t }\n\n\t args[0].persist();\n\t this._invokeEventCallback.apply(this, [\"onKeyDown\"].concat(args));\n\t var e = args[0];\n\t if (!e.isDefaultPrevented()) {\n\t if (e.keyCode === KEYCODE_UP) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? 0.1 : e.shiftKey ? 10 : 1);\n\t } else if (e.keyCode === KEYCODE_DOWN) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? -0.1 : e.shiftKey ? -10 : -1);\n\t } else {\n\t var _value = this.refsInput.value,\n\t length = _value.length;\n\t if (e.keyCode === 8) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd > 0 && _value.length && _value.charAt(this.refsInput.selectionEnd - 1) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd - 1;\n\t }\n\t } else if (e.keyCode === 46) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd < length + 1 && _value.length && _value.charAt(this.refsInput.selectionEnd) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd + 1;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'stop',\n\t value: function stop() {\n\t if (this._timer) {\n\t clearTimeout(this._timer);\n\t }\n\t }\n\t }, {\n\t key: 'increase',\n\t value: function increase() {\n\t var _this4 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(1, callback);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t if (isNaN(this.state.value) || +this.state.value < _max) {\n\t this._timer = setTimeout(function () {\n\t _this4.increase(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'decrease',\n\t value: function decrease() {\n\t var _this5 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(-1, callback);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t if (isNaN(this.state.value) || +this.state.value > _min) {\n\t this._timer = setTimeout(function () {\n\t _this5.decrease(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'onMouseDown',\n\t value: function onMouseDown(dir, callback) {\n\t if (dir == 'down') {\n\t this.decrease(false, callback);\n\t } else if (dir == 'up') {\n\t this.increase(false, callback);\n\t }\n\t }\n\t }, {\n\t key: 'onTouchStart',\n\t value: function onTouchStart(dir, e) {\n\t e.preventDefault();\n\t if (dir == 'down') {\n\t this.decrease();\n\t } else if (dir == 'up') {\n\t this.increase();\n\t }\n\t }\n\t }, {\n\t key: 'onTouchEnd',\n\t value: function onTouchEnd(e) {\n\t e.preventDefault();\n\t this.stop();\n\t }\n\t }, {\n\t key: '_invokeEventCallback',\n\t value: function _invokeEventCallback(callbackName) {\n\t if (typeof this.props[callbackName] == \"function\") {\n\t var _props$callbackName;\n\n\t for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n\t args[_key4 - 1] = arguments[_key4];\n\t }\n\n\t (_props$callbackName = this.props[callbackName]).call.apply(_props$callbackName, [null].concat(args));\n\t }\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _this6 = this;\n\n\t var props = this.props;\n\t var state = this.state;\n\t var css = {};\n\n\t var _props = this.props,\n\t step = _props.step,\n\t min = _props.min,\n\t max = _props.max,\n\t precision = _props.precision,\n\t parse = _props.parse,\n\t format = _props.format,\n\t mobile = _props.mobile,\n\t snap = _props.snap,\n\t componentClass = _props.componentClass,\n\t value = _props.value,\n\t type = _props.type,\n\t style = _props.style,\n\t defaultValue = _props.defaultValue,\n\t onInvalid = _props.onInvalid,\n\t onValid = _props.onValid,\n\t strict = _props.strict,\n\t noStyle = _props.noStyle,\n\t rest = _objectWithoutProperties(_props, ['step', 'min', 'max', 'precision', 'parse', 'format', 'mobile', 'snap', 'componentClass', 'value', 'type', 'style', 'defaultValue', 'onInvalid', 'onValid', 'strict', 'noStyle']);\n\n\t noStyle = noStyle || style === false;\n\n\t for (var x in NumericInput.style) {\n\t css[x] = _extends({}, NumericInput.style[x], style ? style[x] || {} : {});\n\t }\n\n\t var hasFormControl = props.className && /\\bform-control\\b/.test(props.className);\n\n\t if (mobile == 'auto') {\n\t mobile = IS_BROWSER && 'ontouchstart' in document;\n\t }\n\n\t if (typeof mobile == \"function\") {\n\t mobile = mobile.call(this);\n\t }\n\t mobile = !!mobile;\n\n\t var attrs = {\n\t wrap: {\n\t style: noStyle ? null : css.wrap,\n\t className: 'react-numeric-input',\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsWrapper = e;\n\t }\n\t },\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined\n\t },\n\t input: _extends({\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsInput = e;\n\t }\n\t },\n\t type: 'text',\n\t style: noStyle ? null : _extends({}, css.input, !hasFormControl ? css['input:not(.form-control)'] : {}, this._inputFocus ? css['input:focus'] : {})\n\t }, rest),\n\t btnUp: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnUp, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnUpActive ? css['btn:active'] : state.btnUpHover ? css['btn:hover'] : {})\n\t },\n\t btnDown: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnDown, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnDownActive ? css['btn:active'] : state.btnDownHover ? css['btn:hover'] : {})\n\t }\n\t };\n\n\t var stringValue = String(state.stringValue || (state.value || state.value === 0 ? state.value : \"\") || \"\");\n\n\t var loose = !this._isStrict && (this._inputFocus || !this._isMounted);\n\n\t if (loose && RE_INCOMPLETE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (loose && stringValue && !RE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (state.value || state.value === 0) {\n\t attrs.input.value = this._format(state.value);\n\t } else {\n\t attrs.input.value = \"\";\n\t }\n\n\t if (hasFormControl && !noStyle) {\n\t _extends(attrs.wrap.style, css['wrap.hasFormControl']);\n\t }\n\n\t if (mobile && !noStyle) {\n\t _extends(attrs.input.style, css['input.mobile']);\n\t _extends(attrs.btnUp.style, css['btnUp.mobile']);\n\t _extends(attrs.btnDown.style, css['btnDown.mobile']);\n\t }\n\n\t if (!props.disabled && !props.readOnly) {\n\t _extends(attrs.wrap, {\n\t onMouseUp: this.stop,\n\t onMouseLeave: this.stop\n\t });\n\n\t _extends(attrs.btnUp, {\n\t onTouchStart: this.onTouchStart.bind(this, 'up'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnUpHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnUpHover: false,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n\t args[_key5] = arguments[_key5];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('up');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.btnDown, {\n\t onTouchStart: this.onTouchStart.bind(this, 'down'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnDownHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnDownHover: false,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n\t args[_key6] = arguments[_key6];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('down');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.input, {\n\t onChange: function onChange(e) {\n\t var original = e.target.value;\n\t var val = _this6._parse(original);\n\t if (isNaN(val)) {\n\t val = null;\n\t }\n\t _this6.setState({\n\t value: _this6._isStrict ? _this6._toNumber(val) : val,\n\t stringValue: original\n\t });\n\t },\n\t onKeyDown: this._onKeyDown.bind(this),\n\t onInput: function onInput() {\n\t for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n\t args[_key7] = arguments[_key7];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onInput\"].concat(args));\n\t },\n\t onSelect: function onSelect() {\n\t for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n\t args[_key8] = arguments[_key8];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onSelect\"].concat(args));\n\t },\n\t onFocus: function onFocus() {\n\t for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n\t args[_key9] = arguments[_key9];\n\t }\n\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val,\n\t stringValue: val || val === 0 ? val + \"\" : \"\"\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t });\n\t },\n\t onBlur: function onBlur() {\n\t for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n\t args[_key10] = arguments[_key10];\n\t }\n\n\t var _isStrict = _this6._isStrict;\n\t _this6._isStrict = true;\n\t args[0].persist();\n\t _this6._inputFocus = false;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onBlur\"].concat(args));\n\t _this6._isStrict = _isStrict;\n\t });\n\t }\n\t });\n\t } else {\n\t if (!noStyle && props.disabled) {\n\t _extends(attrs.input.style, css['input:disabled']);\n\t }\n\t }\n\n\t var InputTag = componentClass || 'input';\n\n\t if (mobile) {\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus }),\n\t _react2.default.createElement('i', { style: noStyle ? null : css.plus })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus })\n\t )\n\t );\n\t }\n\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowUp })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowDown })\n\t )\n\t );\n\t }\n\t }]);\n\n\t return NumericInput;\n\t}(_react.Component);\n\n\tNumericInput.propTypes = {\n\t step: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t min: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t max: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t precision: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t maxLength: _propTypes2.default.number,\n\t parse: _propTypes2.default.func,\n\t format: _propTypes2.default.func,\n\t className: _propTypes2.default.string,\n\t disabled: _propTypes2.default.bool,\n\t readOnly: _propTypes2.default.bool,\n\t required: _propTypes2.default.bool,\n\t snap: _propTypes2.default.bool,\n\t noValidate: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n\t style: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),\n\t noStyle: _propTypes2.default.bool,\n\t type: _propTypes2.default.string,\n\t pattern: _propTypes2.default.string,\n\t onFocus: _propTypes2.default.func,\n\t onBlur: _propTypes2.default.func,\n\t onKeyDown: _propTypes2.default.func,\n\t onChange: _propTypes2.default.func,\n\t onInvalid: _propTypes2.default.func,\n\t onValid: _propTypes2.default.func,\n\t onInput: _propTypes2.default.func,\n\t onSelect: _propTypes2.default.func,\n\t size: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t strict: _propTypes2.default.bool,\n\t componentClass: _propTypes2.default.string,\n\t mobile: function mobile(props, propName) {\n\t var prop = props[propName];\n\t if (prop !== true && prop !== false && prop !== 'auto' && typeof prop != 'function') {\n\t return new Error('The \"mobile\" prop must be true, false, \"auto\" or a function');\n\t }\n\t }\n\t};\n\tNumericInput.defaultProps = {\n\t step: 1,\n\t min: Number.MIN_SAFE_INTEGER || -9007199254740991,\n\t max: Number.MAX_SAFE_INTEGER || 9007199254740991,\n\t precision: null,\n\t parse: null,\n\t format: null,\n\t mobile: 'auto',\n\t strict: false,\n\t componentClass: \"input\",\n\t style: {}\n\t};\n\tNumericInput.style = {\n\t wrap: {\n\t position: 'relative',\n\t display: 'inline-block'\n\t },\n\n\t 'wrap.hasFormControl': {\n\t display: 'block'\n\t },\n\n\t arrowUp: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0 0.6ex 0.6ex 0.6ex',\n\t borderColor: 'transparent transparent rgba(0, 0, 0, 0.7)',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t arrowDown: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0.6ex 0.6ex 0 0.6ex',\n\t borderColor: 'rgba(0, 0, 0, 0.7) transparent transparent',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t plus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 2,\n\t height: 10,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-5px 0 0 -1px'\n\t },\n\n\t minus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 10,\n\t height: 2,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-1px 0 0 -5px'\n\t },\n\n\t btn: {\n\t position: 'absolute',\n\t right: 2,\n\t width: '2.26ex',\n\t borderColor: 'rgba(0,0,0,.1)',\n\t borderStyle: 'solid',\n\t textAlign: 'center',\n\t cursor: 'default',\n\t transition: 'all 0.1s',\n\t background: 'rgba(0,0,0,.1)',\n\t boxShadow: '-1px -1px 3px rgba(0,0,0,.1) inset,' + '1px 1px 3px rgba(255,255,255,.7) inset'\n\t },\n\n\t btnUp: {\n\t top: 2,\n\t bottom: '50%',\n\t borderRadius: '2px 2px 0 0',\n\t borderWidth: '1px 1px 0 1px'\n\t },\n\n\t 'btnUp.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t btnDown: {\n\t top: '50%',\n\t bottom: 2,\n\t borderRadius: '0 0 2px 2px',\n\t borderWidth: '0 1px 1px 1px'\n\t },\n\n\t 'btnDown.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t left: 2,\n\t top: 2,\n\t right: 'auto',\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t 'btn:hover': {\n\t background: 'rgba(0,0,0,.2)'\n\t },\n\n\t 'btn:active': {\n\t background: 'rgba(0,0,0,.3)',\n\t boxShadow: '0 1px 3px rgba(0,0,0,.2) inset,' + '-1px -1px 4px rgba(255,255,255,.5) inset'\n\t },\n\n\t 'btn:disabled': {\n\t opacity: 0.5,\n\t boxShadow: 'none',\n\t cursor: 'not-allowed'\n\t },\n\n\t input: {\n\t paddingRight: '3ex',\n\t boxSizing: 'border-box',\n\t fontSize: 'inherit'\n\t },\n\n\t 'input:not(.form-control)': {\n\t border: '1px solid #ccc',\n\t borderRadius: 2,\n\t paddingLeft: 4,\n\t display: 'block',\n\t WebkitAppearance: 'none',\n\t lineHeight: 'normal'\n\t },\n\n\t 'input.mobile': {\n\t paddingLeft: ' 3.4ex',\n\t paddingRight: '3.4ex',\n\t textAlign: 'center'\n\t },\n\n\t 'input:focus': {},\n\n\t 'input:disabled': {\n\t color: 'rgba(0, 0, 0, 0.3)',\n\t textShadow: '0 1px 0 rgba(255, 255, 255, 0.8)'\n\t }\n\t};\n\tNumericInput.SPEED = 50;\n\tNumericInput.DELAY = 500;\n\tNumericInput.DIRECTION_UP = \"up\";\n\tNumericInput.DIRECTION_DOWN = \"down\";\n\n\n\tmodule.exports = NumericInput;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"react\");\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"prop-types\");\n\n/***/ })\n/******/ ]);","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","/**\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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (typeof obj === 'undefined') {\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from './_curry1';\nimport _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _isArrayLike from './_isArrayLike';\nimport _xwrap from './_xwrap';\nimport bind from '../bind';\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from './_has';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n};\n\nexport default _isArguments;","import _curry1 from './internal/_curry1';\nimport _has from './internal/_has';\nimport _isArguments from './internal/_isArguments';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar _keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n} : function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n};\nvar keys = /*#__PURE__*/_curry1(_keys);\nexport default keys;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","import _objectAssign from './_objectAssign';\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _curry1 from './internal/_curry1';\nimport _of from './internal/_of';\n\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\nvar of = /*#__PURE__*/_curry1(_of);\nexport default of;","import _curry2 from './internal/_curry2';\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\nvar omit = /*#__PURE__*/_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nexport default omit;","import _cloneRegExp from './internal/_cloneRegExp';\nimport _curry2 from './internal/_curry2';\nimport _isRegExp from './internal/_isRegExp';\nimport toString from './toString';\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\nvar test = /*#__PURE__*/_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n return _cloneRegExp(pattern).test(str);\n});\nexport default test;","import _curry1 from './internal/_curry1';\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\nvar _trim = !hasProtoTrim || /*#__PURE__*/ws.trim() || ! /*#__PURE__*/zeroWidth.trim() ? function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n} : function trim(str) {\n return str.trim();\n};\nvar trim = /*#__PURE__*/_curry1(_trim);\nexport default trim;","export { default as F } from './F';\nexport { default as T } from './T';\nexport { default as __ } from './__';\nexport { default as add } from './add';\nexport { default as addIndex } from './addIndex';\nexport { default as adjust } from './adjust';\nexport { default as all } from './all';\nexport { default as allPass } from './allPass';\nexport { default as always } from './always';\nexport { default as and } from './and';\nexport { default as any } from './any';\nexport { default as anyPass } from './anyPass';\nexport { default as ap } from './ap';\nexport { default as aperture } from './aperture';\nexport { default as append } from './append';\nexport { default as apply } from './apply';\nexport { default as applySpec } from './applySpec';\nexport { default as applyTo } from './applyTo';\nexport { default as ascend } from './ascend';\nexport { default as assoc } from './assoc';\nexport { default as assocPath } from './assocPath';\nexport { default as binary } from './binary';\nexport { default as bind } from './bind';\nexport { default as both } from './both';\nexport { default as call } from './call';\nexport { default as chain } from './chain';\nexport { default as clamp } from './clamp';\nexport { default as clone } from './clone';\nexport { default as comparator } from './comparator';\nexport { default as complement } from './complement';\nexport { default as compose } from './compose';\nexport { default as composeK } from './composeK';\nexport { default as composeP } from './composeP';\nexport { default as concat } from './concat';\nexport { default as cond } from './cond';\nexport { default as construct } from './construct';\nexport { default as constructN } from './constructN';\nexport { default as contains } from './contains';\nexport { default as converge } from './converge';\nexport { default as countBy } from './countBy';\nexport { default as curry } from './curry';\nexport { default as curryN } from './curryN';\nexport { default as dec } from './dec';\nexport { default as defaultTo } from './defaultTo';\nexport { default as descend } from './descend';\nexport { default as difference } from './difference';\nexport { default as differenceWith } from './differenceWith';\nexport { default as dissoc } from './dissoc';\nexport { default as dissocPath } from './dissocPath';\nexport { default as divide } from './divide';\nexport { default as drop } from './drop';\nexport { default as dropLast } from './dropLast';\nexport { default as dropLastWhile } from './dropLastWhile';\nexport { default as dropRepeats } from './dropRepeats';\nexport { default as dropRepeatsWith } from './dropRepeatsWith';\nexport { default as dropWhile } from './dropWhile';\nexport { default as either } from './either';\nexport { default as empty } from './empty';\nexport { default as endsWith } from './endsWith';\nexport { default as eqBy } from './eqBy';\nexport { default as eqProps } from './eqProps';\nexport { default as equals } from './equals';\nexport { default as evolve } from './evolve';\nexport { default as filter } from './filter';\nexport { default as find } from './find';\nexport { default as findIndex } from './findIndex';\nexport { default as findLast } from './findLast';\nexport { default as findLastIndex } from './findLastIndex';\nexport { default as flatten } from './flatten';\nexport { default as flip } from './flip';\nexport { default as forEach } from './forEach';\nexport { default as forEachObjIndexed } from './forEachObjIndexed';\nexport { default as fromPairs } from './fromPairs';\nexport { default as groupBy } from './groupBy';\nexport { default as groupWith } from './groupWith';\nexport { default as gt } from './gt';\nexport { default as gte } from './gte';\nexport { default as has } from './has';\nexport { default as hasIn } from './hasIn';\nexport { default as head } from './head';\nexport { default as identical } from './identical';\nexport { default as identity } from './identity';\nexport { default as ifElse } from './ifElse';\nexport { default as inc } from './inc';\nexport { default as indexBy } from './indexBy';\nexport { default as indexOf } from './indexOf';\nexport { default as init } from './init';\nexport { default as innerJoin } from './innerJoin';\nexport { default as insert } from './insert';\nexport { default as insertAll } from './insertAll';\nexport { default as intersection } from './intersection';\nexport { default as intersperse } from './intersperse';\nexport { default as into } from './into';\nexport { default as invert } from './invert';\nexport { default as invertObj } from './invertObj';\nexport { default as invoker } from './invoker';\nexport { default as is } from './is';\nexport { default as isEmpty } from './isEmpty';\nexport { default as isNil } from './isNil';\nexport { default as join } from './join';\nexport { default as juxt } from './juxt';\nexport { default as keys } from './keys';\nexport { default as keysIn } from './keysIn';\nexport { default as last } from './last';\nexport { default as lastIndexOf } from './lastIndexOf';\nexport { default as length } from './length';\nexport { default as lens } from './lens';\nexport { default as lensIndex } from './lensIndex';\nexport { default as lensPath } from './lensPath';\nexport { default as lensProp } from './lensProp';\nexport { default as lift } from './lift';\nexport { default as liftN } from './liftN';\nexport { default as lt } from './lt';\nexport { default as lte } from './lte';\nexport { default as map } from './map';\nexport { default as mapAccum } from './mapAccum';\nexport { default as mapAccumRight } from './mapAccumRight';\nexport { default as mapObjIndexed } from './mapObjIndexed';\nexport { default as match } from './match';\nexport { default as mathMod } from './mathMod';\nexport { default as max } from './max';\nexport { default as maxBy } from './maxBy';\nexport { default as mean } from './mean';\nexport { default as median } from './median';\nexport { default as memoize } from './memoize';\nexport { default as memoizeWith } from './memoizeWith';\nexport { default as merge } from './merge';\nexport { default as mergeAll } from './mergeAll';\nexport { default as mergeDeepLeft } from './mergeDeepLeft';\nexport { default as mergeDeepRight } from './mergeDeepRight';\nexport { default as mergeDeepWith } from './mergeDeepWith';\nexport { default as mergeDeepWithKey } from './mergeDeepWithKey';\nexport { default as mergeWith } from './mergeWith';\nexport { default as mergeWithKey } from './mergeWithKey';\nexport { default as min } from './min';\nexport { default as minBy } from './minBy';\nexport { default as modulo } from './modulo';\nexport { default as multiply } from './multiply';\nexport { default as nAry } from './nAry';\nexport { default as negate } from './negate';\nexport { default as none } from './none';\nexport { default as not } from './not';\nexport { default as nth } from './nth';\nexport { default as nthArg } from './nthArg';\nexport { default as o } from './o';\nexport { default as objOf } from './objOf';\nexport { default as of } from './of';\nexport { default as omit } from './omit';\nexport { default as once } from './once';\nexport { default as or } from './or';\nexport { default as over } from './over';\nexport { default as pair } from './pair';\nexport { default as partial } from './partial';\nexport { default as partialRight } from './partialRight';\nexport { default as partition } from './partition';\nexport { default as path } from './path';\nexport { default as pathEq } from './pathEq';\nexport { default as pathOr } from './pathOr';\nexport { default as pathSatisfies } from './pathSatisfies';\nexport { default as pick } from './pick';\nexport { default as pickAll } from './pickAll';\nexport { default as pickBy } from './pickBy';\nexport { default as pipe } from './pipe';\nexport { default as pipeK } from './pipeK';\nexport { default as pipeP } from './pipeP';\nexport { default as pluck } from './pluck';\nexport { default as prepend } from './prepend';\nexport { default as product } from './product';\nexport { default as project } from './project';\nexport { default as prop } from './prop';\nexport { default as propEq } from './propEq';\nexport { default as propIs } from './propIs';\nexport { default as propOr } from './propOr';\nexport { default as propSatisfies } from './propSatisfies';\nexport { default as props } from './props';\nexport { default as range } from './range';\nexport { default as reduce } from './reduce';\nexport { default as reduceBy } from './reduceBy';\nexport { default as reduceRight } from './reduceRight';\nexport { default as reduceWhile } from './reduceWhile';\nexport { default as reduced } from './reduced';\nexport { default as reject } from './reject';\nexport { default as remove } from './remove';\nexport { default as repeat } from './repeat';\nexport { default as replace } from './replace';\nexport { default as reverse } from './reverse';\nexport { default as scan } from './scan';\nexport { default as sequence } from './sequence';\nexport { default as set } from './set';\nexport { default as slice } from './slice';\nexport { default as sort } from './sort';\nexport { default as sortBy } from './sortBy';\nexport { default as sortWith } from './sortWith';\nexport { default as split } from './split';\nexport { default as splitAt } from './splitAt';\nexport { default as splitEvery } from './splitEvery';\nexport { default as splitWhen } from './splitWhen';\nexport { default as startsWith } from './startsWith';\nexport { default as subtract } from './subtract';\nexport { default as sum } from './sum';\nexport { default as symmetricDifference } from './symmetricDifference';\nexport { default as symmetricDifferenceWith } from './symmetricDifferenceWith';\nexport { default as tail } from './tail';\nexport { default as take } from './take';\nexport { default as takeLast } from './takeLast';\nexport { default as takeLastWhile } from './takeLastWhile';\nexport { default as takeWhile } from './takeWhile';\nexport { default as tap } from './tap';\nexport { default as test } from './test';\nexport { default as times } from './times';\nexport { default as toLower } from './toLower';\nexport { default as toPairs } from './toPairs';\nexport { default as toPairsIn } from './toPairsIn';\nexport { default as toString } from './toString';\nexport { default as toUpper } from './toUpper';\nexport { default as transduce } from './transduce';\nexport { default as transpose } from './transpose';\nexport { default as traverse } from './traverse';\nexport { default as trim } from './trim';\nexport { default as tryCatch } from './tryCatch';\nexport { default as type } from './type';\nexport { default as unapply } from './unapply';\nexport { default as unary } from './unary';\nexport { default as uncurryN } from './uncurryN';\nexport { default as unfold } from './unfold';\nexport { default as union } from './union';\nexport { default as unionWith } from './unionWith';\nexport { default as uniq } from './uniq';\nexport { default as uniqBy } from './uniqBy';\nexport { default as uniqWith } from './uniqWith';\nexport { default as unless } from './unless';\nexport { default as unnest } from './unnest';\nexport { default as until } from './until';\nexport { default as update } from './update';\nexport { default as useWith } from './useWith';\nexport { default as values } from './values';\nexport { default as valuesIn } from './valuesIn';\nexport { default as view } from './view';\nexport { default as when } from './when';\nexport { default as where } from './where';\nexport { default as whereEq } from './whereEq';\nexport { default as without } from './without';\nexport { default as xprod } from './xprod';\nexport { default as zip } from './zip';\nexport { default as zipObj } from './zipObj';\nexport { default as zipWith } from './zipWith';","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","module.exports = {};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","module.exports = true;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","exports.f = {}.propertyIsEnumerable;\n","import styled, { css } from 'styled-components';\n\nexport default styled.label`\n display: block;\n font-size: 14px;\n ${({ position }) =>\n position === 'top'\n ? css`\n margin-bottom: 8px;\n `\n : css`\n margin-top: 8px;\n `}\n ${props =>\n css`\n ${props.css}\n `}\n`;\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _getPrototypeOf = require(\"../core-js/object/get-prototype-of\");\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _getOwnPropertyDescriptor = require(\"../core-js/object/get-own-property-descriptor\");\n\nvar _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = (0, _getOwnPropertyDescriptor2.default)(object, property);\n\n if (desc === undefined) {\n var parent = (0, _getPrototypeOf2.default)(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};","/**\n * CSS conic-gradient() polyfill\n * By Lea Verou — http://lea.verou.me\n * MIT license\n */\n\n(function(){\n\nvar π = Math.PI;\nvar τ = 2 * π;\nvar ε = .00001;\nvar deg = π/180;\n\nvar dummy = document.createElement(\"div\");\ndocument.head.appendChild(dummy);\n\nvar _ = self.ConicGradient = function(o) {\n\tvar me = this;\n\t_.all.push(this);\n\n\to = o || {};\n\n\tthis.canvas = document.createElement(\"canvas\");\n\tthis.context = this.canvas.getContext(\"2d\");\n\n\tthis.repeating = !!o.repeating;\n\n\tthis.size = o.size || Math.max(innerWidth, innerHeight);\n\n\tthis.canvas.width = this.canvas.height = this.size;\n\n\tvar stops = o.stops;\n\n\tthis.stops = (stops || \"\").split(/\\s*,(?![^(]*\\))\\s*/); // commas that are not followed by a ) without a ( first\n\n\tthis.from = 0;\n\n\tfor (var i=0; i 0) {\n\t\tvar first = this.stops[0].clone();\n\t\tfirst.pos = 0;\n\t\tthis.stops.unshift(first);\n\t}\n\n\t// Add dummy last stop or set first stop’s position to 100% if it doesn’t have one\n\tif (this.stops[this.stops.length - 1].pos === undefined) {\n\t\tthis.stops[this.stops.length - 1].pos = 1;\n\t}\n\telse if (!this.repeating && this.stops[this.stops.length - 1].pos < 1) {\n\t\tvar last = this.stops[this.stops.length - 1].clone();\n\t\tlast.pos = 1;\n\t\tthis.stops.push(last);\n\t}\n\n\tthis.stops.forEach(function(stop, i){\n\t\tif (stop.pos === undefined) {\n\t\t\t// Evenly space color stops with no position\n\t\t\tfor (var j=i+1; this[j]; j++) {\n\t\t\t\tif (this[j].pos !== undefined) {\n\t\t\t\t\tstop.pos = this[i-1].pos + (this[j].pos - this[i-1].pos)/(j-i+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (i > 0) {\n\t\t\t// Normalize color stops whose position is smaller than the position of the stop before them\n\t\t\tstop.pos = Math.max(stop.pos, this[i-1].pos);\n\t\t}\n\t}, this.stops);\n\n\tif (this.repeating) {\n\t\t// Repeat color stops until >= 1\n\t\tvar stops = this.stops.slice();\n\t\tvar lastStop = stops[stops.length-1];\n\t\tvar difference = lastStop.pos - stops[0].pos;\n\n\t\tfor (var i=0; this.stops[this.stops.length-1].pos < 1 && i<10000; i++) {\n\t\t\tfor (var j=0; j' +\n\t\t\t'' +\n\t\t\t'';\n\t},\n\n\tget png() {\n\t\treturn this.canvas.toDataURL();\n\t},\n\n\tget r() {\n\t\treturn Math.sqrt(2) * this.size / 2;\n\t},\n\n\t// Paint the conical gradient on the canvas\n\t// Algorithm inspired from http://jsdo.it/akm2/yr9B\n\tpaint: function() {\n\t\tvar c = this.context;\n\n\t\tvar radius = this.r;\n\t\tvar x = this.size / 2;\n\n\t\tvar stopIndex = 0; // The index of the current color\n\t\tvar stop = this.stops[stopIndex], prevStop;\n\n\t\tvar diff, t;\n\n\t\t// Transform coordinate system so that angles start from the top left, like in CSS\n\t\tc.translate(this.size/2, this.size/2);\n\t\tc.rotate(-90*deg);\n\t\tc.rotate(this.from*deg);\n\t\tc.translate(-this.size/2, -this.size/2);\n\n\t\tfor (var i = 0; i < 360;) {\n\t\t\tif (i/360 + ε >= stop.pos) {\n\t\t\t\t// Switch color stop\n\t\t\t\tdo {\n\t\t\t\t\tprevStop = stop;\n\n\t\t\t\t\tstopIndex++;\n\t\t\t\t\tstop = this.stops[stopIndex];\n\t\t\t\t} while(stop && stop != prevStop && stop.pos === prevStop.pos);\n\n\t\t\t\tif (!stop) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tvar sameColor = prevStop.color + \"\" === stop.color + \"\" && prevStop != stop;\n\n\t\t\t\tdiff = prevStop.color.map(function(c, i){\n\t\t\t\t\treturn stop.color[i] - c;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tt = (i/360 - prevStop.pos) / (stop.pos - prevStop.pos);\n\n\t\t\tvar interpolated = sameColor? stop.color : diff.map(function(d,i){\n\t\t\t\tvar ret = d * t + prevStop.color[i];\n\n\t\t\t\treturn i < 3? ret & 255 : ret;\n\t\t\t});\n\n\t\t\t// Draw a series of arcs, 1deg each\n\t\t\tc.fillStyle = 'rgba(' + interpolated.join(\",\") + ')';\n\t\t\tc.beginPath();\n\t\t\tc.moveTo(x, x);\n\n\t\t\tif (sameColor) {\n\t\t\t\tvar θ = 360 * (stop.pos - prevStop.pos);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar θ = .5;\n\t\t\t}\n\n\t\t\tvar beginArg = i*deg;\n\t\t\tbeginArg = Math.min(360*deg, beginArg);\n\n\t\t\t// .02: To prevent empty blank line and corresponding moire\n\t\t\t// only non-alpha colors are cared now\n\t\t\tvar endArg = beginArg + θ*deg;\n\t\t\tendArg = Math.min(360*deg, endArg + .02);\n\n\t\t\tc.arc(x, x, radius, beginArg, endArg);\n\n\t\t\tc.closePath();\n\t\t\tc.fill();\n\n\t\t\ti += θ;\n\t\t}\n\t}\n};\n\n_.ColorStop = function(gradient, stop) {\n\tthis.gradient = gradient;\n\n\tif (stop) {\n\t\tvar parts = stop.match(/^(.+?)(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?\\s*$/);\n\n\t\tthis.color = _.ColorStop.colorToRGBA(parts[1]);\n\n\t\tif (parts[2]) {\n\t\t\tvar unit = parts[3];\n\n\t\t\tif (unit == \"%\" || parts[2] === \"0\" && !unit) {\n\t\t\t\tthis.pos = parts[2]/100;\n\t\t\t}\n\t\t\telse if (unit == \"turn\") {\n\t\t\t\tthis.pos = +parts[2];\n\t\t\t}\n\t\t\telse if (unit == \"deg\") {\n\t\t\t\tthis.pos = parts[2] / 360;\n\t\t\t}\n\t\t\telse if (unit == \"grad\") {\n\t\t\t\tthis.pos = parts[2] / 400;\n\t\t\t}\n\t\t\telse if (unit == \"rad\") {\n\t\t\t\tthis.pos = parts[2] / τ;\n\t\t\t}\n\t\t}\n\n\t\tif (parts[4]) {\n\t\t\tthis.next = new _.ColorStop(gradient, parts[1] + \" \" + parts[4] + parts[5]);\n\t\t}\n\t}\n}\n\n_.ColorStop.prototype = {\n\tclone: function() {\n\t\tvar ret = new _.ColorStop(this.gradient);\n\t\tret.color = this.color;\n\t\tret.pos = this.pos;\n\n\t\treturn ret;\n\t},\n\n\ttoString: function() {\n\t\treturn \"rgba(\" + this.color.join(\", \") + \") \" + this.pos * 100 + \"%\";\n\t}\n};\n\n_.ColorStop.colorToRGBA = function(color) {\n\tif (!Array.isArray(color) && color.indexOf(\"from\") == -1) {\n\t\tdummy.style.color = color;\n\n\t\tvar rgba = getComputedStyle(dummy).color.match(/rgba?\\(([\\d.]+), ([\\d.]+), ([\\d.]+)(?:, ([\\d.]+))?\\)/);\n\n\t\tif (rgba) {\n\t\t\trgba.shift();\n\t\t\trgba = rgba.map(function(a) { return +a });\n\t\t\trgba[3] = isNaN(rgba[3])? 1 : rgba[3];\n\t\t}\n\n\t\treturn rgba || [0,0,0,0];\n\t}\n\n\treturn color;\n};\n\n})();\n\nif (self.StyleFix) {\n\t// Test if conic gradients are supported first:\n\t(function(){\n\t\tvar dummy = document.createElement(\"p\");\n\t\tdummy.style.backgroundImage = \"conic-gradient(white, black)\";\n\t\tdummy.style.backgroundImage = PrefixFree.prefix + \"conic-gradient(white, black)\";\n\n\t\tif (!dummy.style.backgroundImage) {\n\t\t\t// Not supported, use polyfill\n\t\t\tStyleFix.register(function(css, raw) {\n\t\t\t\tif (css.indexOf(\"conic-gradient\") > -1) {\n\t\t\t\t\tcss = css.replace(/(?:repeating-)?conic-gradient\\(\\s*((?:\\([^()]+\\)|[^;()}])+?)\\)/g, function(gradient, stops) {\n\t\t\t\t\t\treturn new ConicGradient({\n\t\t\t\t\t\t\tstops: stops,\n\t\t\t\t\t\t\trepeating: gradient.indexOf(\"repeating-\") > -1\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn css;\n\t\t\t});\n\t\t}\n\t})();\n}\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","!function(e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(null):\"function\"==typeof define&&define.amd?define(e(null)):window.stylis=e(null)}(function e(a){\"use strict\";var r=/^\\0+/g,c=/[\\0\\r\\f]/g,s=/: */g,t=/zoo|gra/,i=/([,: ])(transform)/g,f=/,+\\s*(?![^(]*[)])/g,n=/ +\\s*(?![^(]*[)])/g,l=/ *[\\0] */g,o=/,\\r+?/g,h=/([\\t\\r\\n ])*\\f?&/g,u=/:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g,d=/\\W+/g,b=/@(k\\w+)\\s*(\\S*)\\s*/,p=/::(place)/g,k=/:(read-only)/g,g=/\\s+(?=[{\\];=:>])/g,A=/([[}=:>])\\s+/g,C=/(\\{[^{]+?);(?=\\})/g,w=/\\s{2,}/g,v=/([^\\(])(:+) */g,m=/[svh]\\w+-[tblr]{2}/,x=/\\(\\s*(.*)\\s*\\)/g,$=/([\\s\\S]*?);/g,y=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\\w-]+)[^]*/,j=/stretch|:\\s*\\w+\\-(?:conte|avail)/,z=/([^-])(image-set\\()/,N=\"-webkit-\",S=\"-moz-\",F=\"-ms-\",W=59,q=125,B=123,D=40,E=41,G=91,H=93,I=10,J=13,K=9,L=64,M=32,P=38,Q=45,R=95,T=42,U=44,V=58,X=39,Y=34,Z=47,_=62,ee=43,ae=126,re=0,ce=12,se=11,te=107,ie=109,fe=115,ne=112,le=111,oe=105,he=99,ue=100,de=112,be=1,pe=1,ke=0,ge=1,Ae=1,Ce=1,we=0,ve=0,me=0,xe=[],$e=[],ye=0,Oe=null,je=-2,ze=-1,Ne=0,Se=1,Fe=2,We=3,qe=0,Be=1,De=\"\",Ee=\"\",Ge=\"\";function He(e,a,s,t,i){for(var f,n,o=0,h=0,u=0,d=0,g=0,A=0,C=0,w=0,m=0,$=0,y=0,O=0,j=0,z=0,R=0,we=0,$e=0,Oe=0,je=0,ze=s.length,Je=ze-1,Re=\"\",Te=\"\",Ue=\"\",Ve=\"\",Xe=\"\",Ye=\"\";R0)Te=Te.replace(c,\"\");if(Te.trim().length>0){switch(C){case M:case K:case W:case J:case I:break;default:Te+=s.charAt(R)}C=W}}if(1===$e)switch(C){case B:case q:case W:case Y:case X:case D:case E:case U:$e=0;case K:case J:case I:case M:break;default:for($e=0,je=R,g=C,R--,C=W;je0)++R,C=g;case B:je=ze}}switch(C){case B:for(g=(Te=Te.trim()).charCodeAt(0),y=1,je=++R;R0)Te=Te.replace(c,\"\");switch(A=Te.charCodeAt(1)){case ue:case ie:case fe:case Q:f=a;break;default:f=xe}if(je=(Ue=He(a,f,Ue,A,i+1)).length,me>0&&0===je)je=Te.length;if(ye>0)if(f=Ie(xe,Te,Oe),n=Pe(We,Ue,f,a,pe,be,je,A,i,t),Te=f.join(\"\"),void 0!==n)if(0===(je=(Ue=n.trim()).length))A=0,Ue=\"\";if(je>0)switch(A){case fe:Te=Te.replace(x,Me);case ue:case ie:case Q:Ue=Te+\"{\"+Ue+\"}\";break;case te:if(Ue=(Te=Te.replace(b,\"$1 $2\"+(Be>0?De:\"\")))+\"{\"+Ue+\"}\",1===Ae||2===Ae&&Le(\"@\"+Ue,3))Ue=\"@\"+N+Ue+\"@\"+Ue;else Ue=\"@\"+Ue;break;default:if(Ue=Te+Ue,t===de)Ve+=Ue,Ue=\"\"}else Ue=\"\";break;default:Ue=He(a,Ie(a,Te,Oe),Ue,t,i+1)}Xe+=Ue,O=0,$e=0,z=0,we=0,Oe=0,j=0,Te=\"\",Ue=\"\",C=s.charCodeAt(++R);break;case q:case W:if((je=(Te=(we>0?Te.replace(c,\"\"):Te).trim()).length)>1){if(0===z)if((g=Te.charCodeAt(0))===Q||g>96&&g<123)je=(Te=Te.replace(\" \",\":\")).length;if(ye>0)if(void 0!==(n=Pe(Se,Te,a,e,pe,be,Ve.length,t,i,t)))if(0===(je=(Te=n.trim()).length))Te=\"\\0\\0\";switch(g=Te.charCodeAt(0),A=Te.charCodeAt(1),g){case re:break;case L:if(A===oe||A===he){Ye+=Te+s.charAt(R);break}default:if(Te.charCodeAt(je-1)===V)break;Ve+=Ke(Te,g,A,Te.charCodeAt(2))}}O=0,$e=0,z=0,we=0,Oe=0,Te=\"\",C=s.charCodeAt(++R)}}switch(C){case J:case I:if(h+d+u+o+ve===0)switch($){case E:case X:case Y:case L:case ae:case _:case T:case ee:case Z:case Q:case V:case U:case W:case B:case q:break;default:if(z>0)$e=1}if(h===Z)h=0;else if(ge+O===0&&t!==te&&Te.length>0)we=1,Te+=\"\\0\";if(ye*qe>0)Pe(Ne,Te,a,e,pe,be,Ve.length,t,i,t);be=1,pe++;break;case W:case q:if(h+d+u+o===0){be++;break}default:switch(be++,Re=s.charAt(R),C){case K:case M:if(d+o+h===0)switch(w){case U:case V:case K:case M:Re=\"\";break;default:if(C!==M)Re=\" \"}break;case re:Re=\"\\\\0\";break;case ce:Re=\"\\\\f\";break;case se:Re=\"\\\\v\";break;case P:if(d+h+o===0&&ge>0)Oe=1,we=1,Re=\"\\f\"+Re;break;case 108:if(d+h+o+ke===0&&z>0)switch(R-z){case 2:if(w===ne&&s.charCodeAt(R-3)===V)ke=w;case 8:if(m===le)ke=m}break;case V:if(d+h+o===0)z=R;break;case U:if(h+u+d+o===0)we=1,Re+=\"\\r\";break;case Y:case X:if(0===h)d=d===C?0:0===d?C:d;break;case G:if(d+h+u===0)o++;break;case H:if(d+h+u===0)o--;break;case E:if(d+h+o===0)u--;break;case D:if(d+h+o===0){if(0===O)switch(2*w+3*m){case 533:break;default:y=0,O=1}u++}break;case L:if(h+u+d+o+z+j===0)j=1;break;case T:case Z:if(d+o+u>0)break;switch(h){case 0:switch(2*C+3*s.charCodeAt(R+1)){case 235:h=Z;break;case 220:je=R,h=T}break;case T:if(C===Z&&w===T&&je+2!==R){if(33===s.charCodeAt(je+2))Ve+=s.substring(je,R+1);Re=\"\",h=0}}}if(0===h){if(ge+d+o+j===0&&t!==te&&C!==W)switch(C){case U:case ae:case _:case ee:case E:case D:if(0===O){switch(w){case K:case M:case I:case J:Re+=\"\\0\";break;default:Re=\"\\0\"+Re+(C===U?\"\":\"\\0\")}we=1}else switch(C){case D:if(z+7===R&&108===w)z=0;O=++y;break;case E:if(0==(O=--y))we=1,Re+=\"\\0\"}break;case K:case M:switch(w){case re:case B:case q:case W:case U:case ce:case K:case M:case I:case J:break;default:if(0===O)we=1,Re+=\"\\0\"}}if(Te+=Re,C!==M&&C!==K)$=C}}m=w,w=C,R++}if(je=Ve.length,me>0)if(0===je&&0===Xe.length&&0===a[0].length==false)if(t!==ie||1===a.length&&(ge>0?Ee:Ge)===a[0])je=a.join(\",\").length+2;if(je>0){if(f=0===ge&&t!==te?function(e){for(var a,r,s=0,t=e.length,i=Array(t);s1)continue;if(u=n.charCodeAt(n.length-1),d=r.charCodeAt(0),a=\"\",0!==o)switch(u){case T:case ae:case _:case ee:case M:case D:break;default:a=\" \"}switch(d){case P:r=a+Ee;case ae:case _:case ee:case M:case E:case D:break;case G:r=a+r+Ee;break;case V:switch(2*r.charCodeAt(1)+3*r.charCodeAt(2)){case 530:if(Ce>0){r=a+r.substring(8,h-1);break}default:if(o<1||f[o-1].length<1)r=a+Ee+r}break;case U:a=\"\";default:if(h>1&&r.indexOf(\":\")>0)r=a+r.replace(v,\"$1\"+Ee+\"$2\");else r=a+r+Ee}n+=r}i[s]=n.replace(c,\"\").trim()}return i}(a):a,ye>0)if(void 0!==(n=Pe(Fe,Ve,f,e,pe,be,je,t,i,t))&&0===(Ve=n).length)return Ye+Ve+Xe;if(Ve=f.join(\",\")+\"{\"+Ve+\"}\",Ae*ke!=0){if(2===Ae&&!Le(Ve,2))ke=0;switch(ke){case le:Ve=Ve.replace(k,\":\"+S+\"$1\")+Ve;break;case ne:Ve=Ve.replace(p,\"::\"+N+\"input-$1\")+Ve.replace(p,\"::\"+S+\"$1\")+Ve.replace(p,\":\"+F+\"input-$1\")+Ve}ke=0}}return Ye+Ve+Xe}function Ie(e,a,r){var c=a.trim().split(o),s=c,t=c.length,i=e.length;switch(i){case 0:case 1:for(var f=0,n=0===i?\"\":e[0]+\" \";f0&&ge>0)return s.replace(u,\"$1\").replace(h,\"$1\"+Ge);break;default:return e.trim()+s.replace(h,\"$1\"+e.trim())}default:if(r*ge>0&&s.indexOf(\"\\f\")>0)return s.replace(h,(e.charCodeAt(0)===V?\"\":\"$1\")+e.trim())}return e+s}function Ke(e,a,r,c){var l,o=0,h=e+\";\",u=2*a+3*r+4*c;if(944===u)return function(e){var a=e.length,r=e.indexOf(\":\",9)+1,c=e.substring(0,r).trim(),s=e.substring(r,a-1).trim();switch(e.charCodeAt(9)*Be){case 0:break;case Q:if(110!==e.charCodeAt(10))break;default:for(var t=s.split((s=\"\",f)),i=0,r=0,a=t.length;iL&&h<90||h>96&&h<123||h===R||h===Q&&l.charCodeAt(1)!==Q))switch(isNaN(parseFloat(l))+(-1!==l.indexOf(\"(\"))){case 1:switch(l){case\"infinite\":case\"alternate\":case\"backwards\":case\"running\":case\"normal\":case\"forwards\":case\"both\":case\"none\":case\"linear\":case\"ease\":case\"ease-in\":case\"ease-out\":case\"ease-in-out\":case\"paused\":case\"reverse\":case\"alternate-reverse\":case\"inherit\":case\"initial\":case\"unset\":case\"step-start\":case\"step-end\":break;default:l+=De}}o[r++]=l}s+=(0===i?\"\":\",\")+o.join(\" \")}}if(s=c+s+\";\",1===Ae||2===Ae&&Le(s,1))return N+s+s;return s}(h);else if(0===Ae||2===Ae&&!Le(h,1))return h;switch(u){case 1015:return 97===h.charCodeAt(10)?N+h+h:h;case 951:return 116===h.charCodeAt(3)?N+h+h:h;case 963:return 110===h.charCodeAt(5)?N+h+h:h;case 1009:if(100!==h.charCodeAt(4))break;case 969:case 942:return N+h+h;case 978:return N+h+S+h+h;case 1019:case 983:return N+h+S+h+F+h+h;case 883:if(h.charCodeAt(8)===Q)return N+h+h;if(h.indexOf(\"image-set(\",11)>0)return h.replace(z,\"$1\"+N+\"$2\")+h;return h;case 932:if(h.charCodeAt(4)===Q)switch(h.charCodeAt(5)){case 103:return N+\"box-\"+h.replace(\"-grow\",\"\")+N+h+F+h.replace(\"grow\",\"positive\")+h;case 115:return N+h+F+h.replace(\"shrink\",\"negative\")+h;case 98:return N+h+F+h.replace(\"basis\",\"preferred-size\")+h}return N+h+F+h+h;case 964:return N+h+F+\"flex-\"+h+h;case 1023:if(99!==h.charCodeAt(8))break;return l=h.substring(h.indexOf(\":\",15)).replace(\"flex-\",\"\").replace(\"space-between\",\"justify\"),N+\"box-pack\"+l+N+h+F+\"flex-pack\"+l+h;case 1005:return t.test(h)?h.replace(s,\":\"+N)+h.replace(s,\":\"+S)+h:h;case 1e3:switch(o=(l=h.substring(13).trim()).indexOf(\"-\")+1,l.charCodeAt(0)+l.charCodeAt(o)){case 226:l=h.replace(m,\"tb\");break;case 232:l=h.replace(m,\"tb-rl\");break;case 220:l=h.replace(m,\"lr\");break;default:return h}return N+h+F+l+h;case 1017:if(-1===h.indexOf(\"sticky\",9))return h;case 975:switch(o=(h=e).length-10,u=(l=(33===h.charCodeAt(o)?h.substring(0,o):h).substring(e.indexOf(\":\",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(l.charCodeAt(8)<111)break;case 115:h=h.replace(l,N+l)+\";\"+h;break;case 207:case 102:h=h.replace(l,N+(u>102?\"inline-\":\"\")+\"box\")+\";\"+h.replace(l,N+l)+\";\"+h.replace(l,F+l+\"box\")+\";\"+h}return h+\";\";case 938:if(h.charCodeAt(5)===Q)switch(h.charCodeAt(6)){case 105:return l=h.replace(\"-items\",\"\"),N+h+N+\"box-\"+l+F+\"flex-\"+l+h;case 115:return N+h+F+\"flex-item-\"+h.replace(y,\"\")+h;default:return N+h+F+\"flex-line-pack\"+h.replace(\"align-content\",\"\").replace(y,\"\")+h}break;case 973:case 989:if(h.charCodeAt(3)!==Q||122===h.charCodeAt(4))break;case 931:case 953:if(true===j.test(e))if(115===(l=e.substring(e.indexOf(\":\")+1)).charCodeAt(0))return Ke(e.replace(\"stretch\",\"fill-available\"),a,r,c).replace(\":fill-available\",\":stretch\");else return h.replace(l,N+l)+h.replace(l,S+l.replace(\"fill-\",\"\"))+h;break;case 962:if(h=N+h+(102===h.charCodeAt(5)?F+h:\"\")+h,r+c===211&&105===h.charCodeAt(13)&&h.indexOf(\"transform\",10)>0)return h.substring(0,h.indexOf(\";\",27)+1).replace(i,\"$1\"+N+\"$2\")+h}return h}function Le(e,a){var r=e.indexOf(1===a?\":\":\"{\"),c=e.substring(0,3!==a?r:10),s=e.substring(r+1,e.length-1);return Oe(2!==a?c:c.replace(O,\"$1\"),s,a)}function Me(e,a){var r=Ke(a,a.charCodeAt(0),a.charCodeAt(1),a.charCodeAt(2));return r!==a+\";\"?r.replace($,\" or ($1)\").substring(4):\"(\"+a+\")\"}function Pe(e,a,r,c,s,t,i,f,n,l){for(var o,h=0,u=a;h0)De=s.replace(d,t===G?\"\":\"-\");if(t=1,1===ge)Ge=s;else Ee=s;var i,f=[Ge];if(ye>0)if(void 0!==(i=Pe(ze,r,f,f,pe,be,0,0,0,0))&&\"string\"==typeof i)r=i;var n=He(xe,f,r,0,0);if(ye>0)if(void 0!==(i=Pe(je,n,f,f,pe,be,n.length,0,0,0))&&\"string\"!=typeof(n=i))t=0;return De=\"\",Ge=\"\",Ee=\"\",ke=0,pe=1,be=1,we*t==0?n:n.replace(c,\"\").replace(g,\"\").replace(A,\"$1\").replace(C,\"$1\").replace(w,\" \")}if(Te.use=function e(a){switch(a){case void 0:case null:ye=$e.length=0;break;default:if(\"function\"==typeof a)$e[ye++]=a;else if(\"object\"==typeof a)for(var r=0,c=a.length;r\n import(/* webpackChunkName: \"colorpicker\" */ '../fragments/ColorPicker.react')\n);\n/**\n * A color picker.\n */\nexport default class ColorPicker extends Component {\n render() {\n return (\n \n \n \n );\n }\n}\n\nColorPicker.defaultProps = {\n size: 225,\n theme: light,\n labelPosition: 'top',\n persisted_props: ['value'],\n persistence_type: 'local'\n};\n\nColorPicker.propTypes = {\n /**\n * The ID used to identify the color picker in Dash callbacks\n */\n id: PropTypes.string,\n\n /**\n * Color value of the picker\n */\n value: PropTypes.shape({\n /**\n * Hex string\n */\n hex: PropTypes.string,\n\n /**\n * RGB/RGBA object\n */\n rbg: PropTypes.shape({\n r: PropTypes.number,\n g: PropTypes.number,\n b: PropTypes.number,\n a: PropTypes.number\n })\n }),\n\n /**\n * If true, color cannot be picked.\n */\n disabled: PropTypes.bool,\n\n /**\n * Size (width) of the component in pixels\n */\n size: PropTypes.number,\n\n /**\n * Theme configuration to be set by a ThemeProvider\n */\n theme: PropTypes.object,\n\n /**\n * Description to be displayed alongside the control. To control styling,\n * pass an object with label and style properties\n */\n label: PropTypes.oneOfType([\n /**\n * Label to be displayed\n */\n PropTypes.string,\n\n /**\n * The style and label\n */\n PropTypes.shape({\n style: PropTypes.object,\n label: PropTypes.string\n })\n ]),\n\n /**\n * Where the indicator label is positioned\n */\n labelPosition: PropTypes.oneOf(['top', 'bottom']),\n\n /**\n * Class to apply to the root component element\n */\n className: PropTypes.string,\n\n /**\n * Dash-assigned callback that gets fired when\n * the color picker's value changes\n */\n setProps: PropTypes.func,\n\n /**\n * Style to apply to the root component element\n */\n style: PropTypes.object,\n\n /**\n * Used to allow user interactions in this component to be persisted when\n * the component - or the page - is refreshed. If `persisted` is truthy and\n * hasn't changed from its previous value, a `value` that the user has\n * changed while using the app will keep that change, as long as\n * the new `value` also matches what was given originally.\n * Used in conjunction with `persistence_type`.\n */\n persistence: PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.number]),\n\n /**\n * Properties whose user interactions will persist after refreshing the\n * component or the page. Since only `value` is allowed this prop can\n * normally be ignored.\n */\n persisted_props: PropTypes.arrayOf(PropTypes.oneOf(['value'])),\n\n /**\n * Where persisted user changes will be stored:\n * memory: only kept in memory, reset on page refresh.\n * local: window.localStorage, data is kept after the browser quit.\n * session: window.sessionStorage, data is cleared once the browser quit.\n */\n persistence_type: PropTypes.oneOf(['local', 'session', 'memory'])\n};\n\nexport const defaultProps = ColorPicker.defaultProps;\nexport const propTypes = ColorPicker.propTypes;\n","// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","// 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","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = require('./_hide');\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","(function (factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory()) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory()) :\n\t\t\t(window['stylisRuleSheet'] = factory())\n}(function () {\n\n\t'use strict'\n\n\treturn function (insertRule) {\n\t\tvar delimiter = '/*|*/'\n\t\tvar needle = delimiter+'}'\n\n\t\tfunction toSheet (block) {\n\t\t\tif (block)\n\t\t\t\ttry {\n\t\t\t\t\tinsertRule(block + '}')\n\t\t\t\t} catch (e) {}\n\t\t}\n\n\t\treturn function ruleSheet (context, content, selectors, parents, line, column, length, ns, depth, at) {\n\t\t\tswitch (context) {\n\t\t\t\t// property\n\t\t\t\tcase 1:\n\t\t\t\t\t// @import\n\t\t\t\t\tif (depth === 0 && content.charCodeAt(0) === 64)\n\t\t\t\t\t\treturn insertRule(content+';'), ''\n\t\t\t\t\tbreak\n\t\t\t\t// selector\n\t\t\t\tcase 2:\n\t\t\t\t\tif (ns === 0)\n\t\t\t\t\t\treturn content + delimiter\n\t\t\t\t\tbreak\n\t\t\t\t// at-rule\n\t\t\t\tcase 3:\n\t\t\t\t\tswitch (ns) {\n\t\t\t\t\t\t// @font-face, @page\n\t\t\t\t\t\tcase 102:\n\t\t\t\t\t\tcase 112:\n\t\t\t\t\t\t\treturn insertRule(selectors[0]+content), ''\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn content + (at === 0 ? delimiter : '')\n\t\t\t\t\t}\n\t\t\t\tcase -2:\n\t\t\t\t\tcontent.split(needle).forEach(toSheet)\n\t\t\t}\n\t\t}\n\t}\n}))\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","/*!\n * TinyGradient 0.4.3\n * Copyright 2014-2018 Damien \"Mistic\" Sorel (http://www.strangeplanet.fr)\n * Licensed under MIT (http://opensource.org/licenses/MIT)\n */\n\n(function (root, factory) {\n if (typeof module !== \"undefined\" && module.exports) {\n module.exports = factory(require('tinycolor2'));\n }\n else if (typeof define === 'function' && define.amd) {\n define(['tinycolor2'], factory);\n }\n else {\n root.tinygradient = factory(root.tinycolor);\n }\n}(this, function (tinycolor) {\n \"use strict\";\n\n var RGBA_MAX = {r: 256, g: 256, b: 256, a: 1};\n var HSVA_MAX = {h: 360, s: 1, v: 1, a: 1};\n\n /**\n * Linearly compute the step size between start and end (not normalized)\n * @param {Object} start - rgba or hsva\n * @param {Object} end - rgba or hsva\n * @param {int} steps - number of desired steps\n * @return {Object} rgba or hsva\n */\n function stepize(start, end, steps) {\n var step = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n step[k] = steps === 0 ? 0 : (end[k] - start[k]) / steps;\n }\n }\n\n return step;\n }\n\n /**\n * Compute the final step color\n * @param {Object} step - rgba or hsva from `stepize`\n * @param {Object} start - rgba or hsva\n * @param {int} i - color index\n * @param {Object} max - rgba or hsva of maximum values for each channel\n * @return {Object} rgba or hsva\n */\n function interpolate(step, start, i, max) {\n var color = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n color[k] = step[k] * i + start[k];\n color[k] = color[k] < 0 ? color[k] + max[k] : ( max[k] !== 1 ? color[k] % max[k] : color[k] );\n }\n }\n\n return color;\n }\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateRgb(stop1, stop2, steps) {\n var start = stop1.color.toRgb(),\n end = stop2.color.toRgb(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n color;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, RGBA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @param {Boolean} trigonometric - true to step in trigonometric order\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateHsv(stop1, stop2, steps, trigonometric) {\n var start = stop1.color.toHsv(),\n end = stop2.color.toHsv(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n diff, color;\n\n // recompute hue\n if ((start.h <= end.h && !trigonometric) || (start.h >= end.h && trigonometric)) {\n diff = end.h - start.h;\n }\n else if (trigonometric) {\n diff = 360 - end.h + start.h;\n }\n else {\n diff = 360 - start.h + end.h;\n }\n step.h = Math.pow(-1, trigonometric ? 1 : 0) * Math.abs(diff) / steps;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, HSVA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Compute substeps between each stops\n * @param {Object[]} stops\n * @param {int} steps\n * @return {int[]}\n */\n function computeSubsteps(stops, steps) {\n var l = stops.length;\n\n // validation\n steps = parseInt(steps);\n\n if (isNaN(steps) || steps < 2) {\n throw new Error('Invalid number of steps (< 2)');\n }\n if (steps < l) {\n throw new Error('Number of steps cannot be inferior to number of stops');\n }\n\n // compute substeps from stop positions\n var substeps = [];\n\n for (var i = 1; i < l; i++) {\n var step = (steps - 1) * (stops[i].pos - stops[i - 1].pos);\n substeps.push(Math.max(1, Math.round(step)));\n }\n\n // adjust number of steps\n var totalSubsteps = 1;\n for (var n = l - 1; n--;) totalSubsteps += substeps[n];\n\n while (totalSubsteps !== steps) {\n if (totalSubsteps < steps) {\n var min = Math.min.apply(null, substeps);\n substeps[substeps.indexOf(min)]++;\n totalSubsteps++;\n }\n else {\n var max = Math.max.apply(null, substeps);\n substeps[substeps.indexOf(max)]--;\n totalSubsteps--;\n }\n }\n\n return substeps;\n }\n\n /**\n * Compute the color at a specific position\n * @param {Object[]} stops\n * @param {float} pos\n * @param {string} method\n * @param {Object} max\n * @returns {tinycolor}\n */\n function computeAt(stops, pos, method, max) {\n if (pos < 0 || pos > 1) {\n throw new Error('Position must be between 0 and 1');\n }\n\n var start, end;\n for (var i = 0, l = stops.length; i < l - 1; i++) {\n if (pos >= stops[i].pos && pos < stops[i + 1].pos) {\n start = stops[i];\n end = stops[i + 1];\n break;\n }\n }\n\n if (!start) {\n start = end = stops[stops.length - 1];\n }\n\n var step = stepize(start.color[method](), end.color[method](), (end.pos - start.pos) * 100);\n var color = interpolate(step, start.color[method](), Math.round((pos - start.pos) * 100), max);\n return tinycolor(color);\n }\n\n /**\n * @class tinygradient\n * @param {*} stops\n */\n var TinyGradient = function (stops) {\n // varargs\n if (arguments.length === 1) {\n if (!(arguments[0] instanceof Array)) {\n throw new Error('\"stops\" is not an array');\n }\n stops = arguments[0];\n }\n else {\n stops = Array.prototype.slice.call(arguments);\n }\n\n // if we are called as a function, call using new instead\n if (!(this instanceof TinyGradient)) {\n return new TinyGradient(stops);\n }\n\n // validation\n if (stops.length < 2) {\n throw new Error('Invalid number of stops (< 2)');\n }\n\n var havingPositions = stops[0].pos !== undefined,\n l = stops.length,\n p = -1;\n // create tinycolor objects and clean positions\n this.stops = stops.map(function (stop, i) {\n var hasPosition = stop.pos !== undefined;\n if (havingPositions ^ hasPosition) {\n throw new Error('Cannot mix positionned and not posionned color stops');\n }\n\n if (hasPosition) {\n stop = {\n color: tinycolor(stop.color),\n pos : stop.pos\n };\n\n if (stop.pos < 0 || stop.pos > 1) {\n throw new Error('Color stops positions must be between 0 and 1');\n }\n else if (stop.pos <= p) {\n throw new Error('Color stops positions are not ordered');\n }\n p = stop.pos;\n }\n else {\n stop = {\n color: tinycolor(stop),\n pos : i / (l - 1)\n };\n }\n\n return stop;\n });\n\n if (this.stops[0].pos !== 0) {\n this.stops.unshift({\n color: this.stops[0].color,\n pos : 0\n });\n }\n if (this.stops[this.stops.length - 1].pos !== 1) {\n this.stops.push({\n color: this.stops[this.stops.length - 1].color,\n pos : 1\n });\n }\n };\n\n /**\n * Return new instance with reversed stops\n * @return {tinygradient}\n */\n TinyGradient.prototype.reverse = function () {\n var stops = [];\n\n this.stops.forEach(function (stop) {\n stops.push({\n color: stop.color,\n pos : 1 - stop.pos\n });\n });\n\n return new TinyGradient(stops.reverse());\n };\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {int} steps\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.rgb = function (steps) {\n var substeps = computeSubsteps(this.stops, steps),\n gradient = [];\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {int} steps\n * @param {Boolean|String} [mode=false]\n * - false to step in clockwise\n * - true to step in trigonometric order\n * - 'short' to use the shortest way\n * - 'long' to use the longest way\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.hsv = function (steps, mode) {\n var substeps = computeSubsteps(this.stops, steps),\n trigonometric = mode === true,\n parametrized = typeof mode === 'string',\n gradient = [],\n start, end, trig;\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n start = this.stops[i].color.toHsv();\n end = this.stops[i + 1].color.toHsv();\n\n if (parametrized) {\n trig = (start.h < end.h && end.h - start.h < 180) || (start.h > end.h && start.h - end.h > 180);\n }\n\n // rgb interpolation if one of the steps in grayscale\n if (start.s === 0 || end.s === 0) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n else {\n gradient = gradient.concat(interpolateHsv(this.stops[i], this.stops[i + 1], substeps[i],\n (mode === 'long' && trig) || (mode === 'short' && !trig) || (!parametrized && trigonometric)\n ));\n }\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate CSS3 command (no prefix) for this gradient\n * @param {String} [mode=linear] - 'linear' or 'radial'\n * @param {String} [direction] - default is 'to right' or 'ellipse at center'\n * @return {String}\n */\n TinyGradient.prototype.css = function (mode, direction) {\n mode = mode || 'linear';\n direction = direction || (mode === 'linear' ? 'to right' : 'ellipse at center');\n\n var css = mode + '-gradient(' + direction;\n this.stops.forEach(function (stop) {\n css += ', ' + stop.color.toRgbString() + ' ' + (stop.pos * 100) + '%';\n });\n css += ')';\n return css;\n };\n\n /**\n * Returns the color at specific position with RGBa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.rgbAt = function (pos) {\n return computeAt(this.stops, pos, 'toRgb', RGBA_MAX);\n };\n\n /**\n * Returns the color at specific position with HSVa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.hsvAt = function (pos) {\n return computeAt(this.stops, pos, 'toHsv', HSVA_MAX);\n };\n\n var STATIC_FNS = {\n 'rgb' : 1,\n 'hsv' : 2,\n 'css' : 2,\n 'rgbAt': 1,\n 'hsvAt': 1\n };\n\n Object.keys(STATIC_FNS).forEach(function (fn) {\n TinyGradient[fn] = function () {\n var colors = Array.prototype.slice.call(arguments);\n var args = colors.splice(-STATIC_FNS[fn]);\n var gradient = new TinyGradient(colors);\n return gradient[fn].apply(gradient, args);\n };\n });\n\n // export\n return TinyGradient;\n}));","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = addEventListener;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventObject = require('./EventObject');\n\nvar _EventObject2 = _interopRequireDefault(_EventObject);\n\nfunction addEventListener(target, eventType, callback, option) {\n function wrapCallback(e) {\n var ne = new _EventObject2['default'](e);\n callback.call(target, ne);\n }\n\n if (target.addEventListener) {\n var _ret = (function () {\n var useCapture = false;\n if (typeof option === 'object') {\n useCapture = option.capture || false;\n } else if (typeof option === 'boolean') {\n useCapture = option;\n }\n\n target.addEventListener(eventType, wrapCallback, option || false);\n\n return {\n v: {\n remove: function remove() {\n target.removeEventListener(eventType, wrapCallback, useCapture);\n }\n }\n };\n })();\n\n if (typeof _ret === 'object') return _ret.v;\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, wrapCallback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, wrapCallback);\n }\n };\n }\n}\n\nmodule.exports = exports['default'];","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\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 }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.nipplejs = f()}})(function(){var define,module,exports;\n'use strict';\n\n// Constants\nvar isTouch = !!('ontouchstart' in window);\nvar isPointer = window.PointerEvent ? true : false;\nvar isMSPointer = window.MSPointerEvent ? true : false;\nvar events = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend, touchcancel'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n },\n pointer: {\n start: 'pointerdown',\n move: 'pointermove',\n end: 'pointerup, pointercancel'\n },\n MSPointer: {\n start: 'MSPointerDown',\n move: 'MSPointerMove',\n end: 'MSPointerUp'\n }\n};\nvar toBind;\nvar secondBind = {};\nif (isPointer) {\n toBind = events.pointer;\n} else if (isMSPointer) {\n toBind = events.MSPointer;\n} else if (isTouch) {\n toBind = events.touch;\n secondBind = events.mouse;\n} else {\n toBind = events.mouse;\n}\n\n///////////////////////\n/// UTILS ///\n///////////////////////\n\nvar u = {};\nu.distance = function (p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return Math.sqrt((dx * dx) + (dy * dy));\n};\n\nu.angle = function(p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return u.degrees(Math.atan2(dy, dx));\n};\n\nu.findCoord = function(p, d, a) {\n var b = {x: 0, y: 0};\n a = u.radians(a);\n b.x = p.x - d * Math.cos(a);\n b.y = p.y - d * Math.sin(a);\n return b;\n};\n\nu.radians = function(a) {\n return a * (Math.PI / 180);\n};\n\nu.degrees = function(a) {\n return a * (180 / Math.PI);\n};\n\nu.bindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.addEventListener) {\n el.addEventListener(type, handler, false);\n } else if (el.attachEvent) {\n el.attachEvent(type, handler);\n }\n }\n};\n\nu.unbindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.removeEventListener) {\n el.removeEventListener(type, handler);\n } else if (el.detachEvent) {\n el.detachEvent(type, handler);\n }\n }\n};\n\nu.trigger = function (el, type, data) {\n var evt = new CustomEvent(type, data);\n el.dispatchEvent(evt);\n};\n\nu.prepareEvent = function (evt) {\n evt.preventDefault();\n return evt.type.match(/^touch/) ? evt.changedTouches : evt;\n};\n\nu.getScroll = function () {\n var x = (window.pageXOffset !== undefined) ?\n window.pageXOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollLeft;\n\n var y = (window.pageYOffset !== undefined) ?\n window.pageYOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollTop;\n return {\n x: x,\n y: y\n };\n};\n\nu.applyPosition = function (el, pos) {\n if (pos.top || pos.right || pos.bottom || pos.left) {\n el.style.top = pos.top;\n el.style.right = pos.right;\n el.style.bottom = pos.bottom;\n el.style.left = pos.left;\n } else {\n el.style.left = pos.x + 'px';\n el.style.top = pos.y + 'px';\n }\n};\n\nu.getTransitionStyle = function (property, values, time) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (typeof values === 'string') {\n obj[i] = values + ' ' + time;\n } else {\n var st = '';\n for (var j = 0, max = values.length; j < max; j += 1) {\n st += values[j] + ' ' + time + ', ';\n }\n obj[i] = st.slice(0, -2);\n }\n }\n }\n return obj;\n};\n\nu.getVendorStyle = function (property, value) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n obj[i] = value;\n }\n }\n return obj;\n};\n\nu.configStylePropertyObject = function (prop) {\n var obj = {};\n obj[prop] = '';\n var vendors = ['webkit', 'Moz', 'o'];\n vendors.forEach(function (vendor) {\n obj[vendor + prop.charAt(0).toUpperCase() + prop.slice(1)] = '';\n });\n return obj;\n};\n\nu.extend = function (objA, objB) {\n for (var i in objB) {\n if (objB.hasOwnProperty(i)) {\n objA[i] = objB[i];\n }\n }\n return objA;\n};\n\n// Overwrite only what's already present\nu.safeExtend = function (objA, objB) {\n var obj = {};\n for (var i in objA) {\n if (objA.hasOwnProperty(i) && objB.hasOwnProperty(i)) {\n obj[i] = objB[i];\n } else if (objA.hasOwnProperty(i)) {\n obj[i] = objA[i];\n }\n }\n return obj;\n};\n\n// Map for array or unique item.\nu.map = function (ar, fn) {\n if (ar.length) {\n for (var i = 0, max = ar.length; i < max; i += 1) {\n fn(ar[i]);\n }\n } else {\n fn(ar);\n }\n};\n\n///////////////////////\n/// SUPER CLASS ///\n///////////////////////\n\nfunction Super () {};\n\n// Basic event system.\nSuper.prototype.on = function (arg, cb) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n self._handlers_[type] = self._handlers_[type] || [];\n self._handlers_[type].push(cb);\n }\n return self;\n};\n\nSuper.prototype.off = function (type, cb) {\n var self = this;\n self._handlers_ = self._handlers_ || {};\n\n if (type === undefined) {\n self._handlers_ = {};\n } else if (cb === undefined) {\n self._handlers_[type] = null;\n } else if (self._handlers_[type] &&\n self._handlers_[type].indexOf(cb) >= 0) {\n self._handlers_[type].splice(self._handlers_[type].indexOf(cb), 1);\n }\n\n return self;\n};\n\nSuper.prototype.trigger = function (arg, data) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (self._handlers_[type] && self._handlers_[type].length) {\n self._handlers_[type].forEach(function (handler) {\n handler.call(self, {\n type: type,\n target: self\n }, data);\n });\n }\n }\n};\n\n// Configuration\nSuper.prototype.config = function (options) {\n var self = this;\n self.options = self.defaults || {};\n if (options) {\n self.options = u.safeExtend(self.options, options);\n }\n};\n\n// Bind internal events.\nSuper.prototype.bindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n self._domHandlers_[type] = function () {\n if (typeof self['on' + type] === 'function') {\n self['on' + type].apply(self, arguments);\n } else {\n console.warn('[WARNING] : Missing \"on' + type + '\" handler.');\n }\n };\n\n u.bindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.bindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n return self;\n};\n\n// Unbind dom events.\nSuper.prototype.unbindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n u.unbindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.unbindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n delete self._domHandlers_[type];\n\n return this;\n};\n\n///////////////////////\n/// THE NIPPLE ///\n///////////////////////\n\nfunction Nipple (collection, options) {\n this.identifier = options.identifier;\n this.position = options.position;\n this.frontPosition = options.frontPosition;\n this.collection = collection;\n\n // Defaults\n this.defaults = {\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n mode: 'dynamic',\n zone: document.body,\n lockX: false,\n lockY: false\n };\n\n this.config(options);\n\n // Overwrites\n if (this.options.mode === 'dynamic') {\n this.options.restOpacity = 0;\n }\n\n this.id = Nipple.id;\n Nipple.id += 1;\n this.buildEl()\n .stylize();\n\n // Nipple's API.\n this.instance = {\n el: this.ui.el,\n on: this.on.bind(this),\n off: this.off.bind(this),\n show: this.show.bind(this),\n hide: this.hide.bind(this),\n add: this.addToDom.bind(this),\n remove: this.removeFromDom.bind(this),\n destroy: this.destroy.bind(this),\n resetDirection: this.resetDirection.bind(this),\n computeDirection: this.computeDirection.bind(this),\n trigger: this.trigger.bind(this),\n position: this.position,\n frontPosition: this.frontPosition,\n ui: this.ui,\n identifier: this.identifier,\n id: this.id,\n options: this.options\n };\n\n return this.instance;\n};\n\nNipple.prototype = new Super();\nNipple.constructor = Nipple;\nNipple.id = 0;\n\n// Build the dom element of the Nipple instance.\nNipple.prototype.buildEl = function (options) {\n this.ui = {};\n\n if (this.options.dataOnly) {\n return this;\n }\n\n this.ui.el = document.createElement('div');\n this.ui.back = document.createElement('div');\n this.ui.front = document.createElement('div');\n\n this.ui.el.className = 'nipple collection_' + this.collection.id;\n this.ui.back.className = 'back';\n this.ui.front.className = 'front';\n\n this.ui.el.setAttribute('id', 'nipple_' + this.collection.id +\n '_' + this.id);\n\n this.ui.el.appendChild(this.ui.back);\n this.ui.el.appendChild(this.ui.front);\n\n return this;\n};\n\n// Apply CSS to the Nipple instance.\nNipple.prototype.stylize = function () {\n if (this.options.dataOnly) {\n return this;\n }\n var animTime = this.options.fadeTime + 'ms';\n var borderStyle = u.getVendorStyle('borderRadius', '50%');\n var transitStyle = u.getTransitionStyle('transition', 'opacity', animTime);\n var styles = {};\n styles.el = {\n position: 'absolute',\n opacity: this.options.restOpacity,\n display: 'block',\n 'zIndex': 999\n };\n\n styles.back = {\n position: 'absolute',\n display: 'block',\n width: this.options.size + 'px',\n height: this.options.size + 'px',\n marginLeft: -this.options.size / 2 + 'px',\n marginTop: -this.options.size / 2 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n styles.front = {\n width: this.options.size / 2 + 'px',\n height: this.options.size / 2 + 'px',\n position: 'absolute',\n display: 'block',\n marginLeft: -this.options.size / 4 + 'px',\n marginTop: -this.options.size / 4 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n u.extend(styles.el, transitStyle);\n u.extend(styles.back, borderStyle);\n u.extend(styles.front, borderStyle);\n\n this.applyStyles(styles);\n\n return this;\n};\n\nNipple.prototype.applyStyles = function (styles) {\n // Apply styles\n for (var i in this.ui) {\n if (this.ui.hasOwnProperty(i)) {\n for (var j in styles[i]) {\n this.ui[i].style[j] = styles[i][j];\n }\n }\n }\n\n return this;\n};\n\n// Inject the Nipple instance into DOM.\nNipple.prototype.addToDom = function () {\n // We're not adding it if we're dataOnly or already in dom.\n if (this.options.dataOnly || document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.appendChild(this.ui.el);\n return this;\n};\n\n// Remove the Nipple instance from DOM.\nNipple.prototype.removeFromDom = function () {\n if (this.options.dataOnly || !document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.removeChild(this.ui.el);\n return this;\n};\n\n// Entirely destroy this nipple\nNipple.prototype.destroy = function () {\n clearTimeout(this.removeTimeout);\n clearTimeout(this.showTimeout);\n clearTimeout(this.restTimeout);\n this.trigger('destroyed', this.instance);\n this.removeFromDom();\n this.off();\n};\n\n// Fade in the Nipple instance.\nNipple.prototype.show = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.addToDom();\n\n self.restCallback();\n\n setTimeout(function () {\n self.ui.el.style.opacity = 1;\n }, 0);\n\n self.showTimeout = setTimeout(function () {\n self.trigger('shown', self.instance);\n if (typeof cb === 'function') {\n cb.call(this);\n }\n }, self.options.fadeTime);\n\n return self;\n};\n\n// Fade out the Nipple instance.\nNipple.prototype.hide = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n self.ui.el.style.opacity = self.options.restOpacity;\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.removeTimeout = setTimeout(\n function () {\n var display = self.options.mode === 'dynamic' ? 'none' : 'block';\n self.ui.el.style.display = display;\n if (typeof cb === 'function') {\n cb.call(self);\n }\n\n self.trigger('hidden', self.instance);\n },\n self.options.fadeTime\n );\n if (self.options.restJoystick) {\n self.restPosition();\n }\n\n return self;\n};\n\nNipple.prototype.restPosition = function (cb) {\n var self = this;\n self.frontPosition = {\n x: 0,\n y: 0\n };\n var animTime = self.options.fadeTime + 'ms';\n\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition',\n ['top', 'left'], animTime);\n\n var styles = {front: {}};\n styles.front = {\n left: self.frontPosition.x + 'px',\n top: self.frontPosition.y + 'px'\n };\n\n self.applyStyles(transitStyle);\n self.applyStyles(styles);\n\n self.restTimeout = setTimeout(\n function () {\n if (typeof cb === 'function') {\n cb.call(self);\n }\n self.restCallback();\n },\n self.options.fadeTime\n );\n};\n\nNipple.prototype.restCallback = function () {\n var self = this;\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition', 'none', '');\n self.applyStyles(transitStyle);\n self.trigger('rested', self.instance);\n};\n\nNipple.prototype.resetDirection = function () {\n // Fully rebuild the object to let the iteration possible.\n this.direction = {\n x: false,\n y: false,\n angle: false\n };\n};\n\nNipple.prototype.computeDirection = function (obj) {\n var rAngle = obj.angle.radian;\n var angle45 = Math.PI / 4;\n var angle90 = Math.PI / 2;\n var direction, directionX, directionY;\n\n // Angular direction\n // \\ UP /\n // \\ /\n // LEFT RIGHT\n // / \\\n // /DOWN \\\n //\n if (\n rAngle > angle45 &&\n rAngle < (angle45 * 3) &&\n !obj.lockX\n ) {\n direction = 'up';\n } else if (\n rAngle > -angle45 &&\n rAngle <= angle45 &&\n !obj.lockY\n ) {\n direction = 'left';\n } else if (\n rAngle > (-angle45 * 3) &&\n rAngle <= -angle45 &&\n !obj.lockX\n ) {\n direction = 'down';\n } else if (!obj.lockY) {\n direction = 'right';\n }\n\n // Plain direction\n // UP |\n // _______ | RIGHT\n // LEFT |\n // DOWN |\n if (!obj.lockY) {\n if (rAngle > -angle90 && rAngle < angle90) {\n directionX = 'left';\n } else {\n directionX = 'right';\n }\n }\n\n if (!obj.lockX) {\n if (rAngle > 0) {\n directionY = 'up';\n } else {\n directionY = 'down';\n }\n }\n\n if (obj.force > this.options.threshold) {\n var oldDirection = {};\n for (var i in this.direction) {\n if (this.direction.hasOwnProperty(i)) {\n oldDirection[i] = this.direction[i];\n }\n }\n\n var same = {};\n\n this.direction = {\n x: directionX,\n y: directionY,\n angle: direction\n };\n\n obj.direction = this.direction;\n\n for (var i in oldDirection) {\n if (oldDirection[i] === this.direction[i]) {\n same[i] = true;\n }\n }\n\n // If all 3 directions are the same, we don't trigger anything.\n if (same.x && same.y && same.angle) {\n return obj;\n }\n\n if (!same.x || !same.y) {\n this.trigger('plain', obj);\n }\n\n if (!same.x) {\n this.trigger('plain:' + directionX, obj);\n }\n\n if (!same.y) {\n this.trigger('plain:' + directionY, obj);\n }\n\n if (!same.angle) {\n this.trigger('dir dir:' + direction, obj);\n }\n }\n return obj;\n};\n\n/* global Nipple, Super */\n\n///////////////////////////\n/// THE COLLECTION ///\n///////////////////////////\n\nfunction Collection (manager, options) {\n var self = this;\n self.nipples = [];\n self.idles = [];\n self.actives = [];\n self.ids = [];\n self.pressureIntervals = {};\n self.manager = manager;\n self.id = Collection.id;\n Collection.id += 1;\n\n // Defaults\n self.defaults = {\n zone: document.body,\n multitouch: false,\n maxNumberOfNipples: 10,\n mode: 'dynamic',\n position: {top: 0, left: 0},\n catchDistance: 200,\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n lockX: false,\n lockY: false\n };\n\n self.config(options);\n\n // Overwrites\n if (self.options.mode === 'static' || self.options.mode === 'semi') {\n self.options.multitouch = false;\n }\n\n if (!self.options.multitouch) {\n self.options.maxNumberOfNipples = 1;\n }\n\n self.updateBox();\n self.prepareNipples();\n self.bindings();\n self.begin();\n\n return self.nipples;\n}\n\nCollection.prototype = new Super();\nCollection.constructor = Collection;\nCollection.id = 0;\n\nCollection.prototype.prepareNipples = function () {\n var self = this;\n var nips = self.nipples;\n\n // Public API Preparation.\n nips.on = self.on.bind(self);\n nips.off = self.off.bind(self);\n nips.options = self.options;\n nips.destroy = self.destroy.bind(self);\n nips.ids = self.ids;\n nips.id = self.id;\n nips.processOnMove = self.processOnMove.bind(self);\n nips.processOnEnd = self.processOnEnd.bind(self);\n nips.get = function (id) {\n if (id === undefined) {\n return nips[0];\n }\n for (var i = 0, max = nips.length; i < max; i += 1) {\n if (nips[i].identifier === id) {\n return nips[i];\n }\n }\n return false;\n };\n};\n\nCollection.prototype.bindings = function () {\n var self = this;\n // Touch start event.\n self.bindEvt(self.options.zone, 'start');\n // Avoid native touch actions (scroll, zoom etc...) on the zone.\n self.options.zone.style.touchAction = 'none';\n self.options.zone.style.msTouchAction = 'none';\n};\n\nCollection.prototype.begin = function () {\n var self = this;\n var opts = self.options;\n\n // We place our static nipple\n // if needed.\n if (opts.mode === 'static') {\n var nipple = self.createNipple(\n opts.position,\n self.manager.getIdentifier()\n );\n // Add it to the dom.\n nipple.add();\n // Store it in idles.\n self.idles.push(nipple);\n }\n};\n\n// Nipple Factory\nCollection.prototype.createNipple = function (position, identifier) {\n var self = this;\n var scroll = u.getScroll();\n var toPutOn = {};\n var opts = self.options;\n\n if (position.x && position.y) {\n toPutOn = {\n x: position.x -\n (scroll.x + self.box.left),\n y: position.y -\n (scroll.y + self.box.top)\n };\n } else if (\n position.top ||\n position.right ||\n position.bottom ||\n position.left\n ) {\n\n // We need to compute the position X / Y of the joystick.\n var dumb = document.createElement('DIV');\n dumb.style.display = 'hidden';\n dumb.style.top = position.top;\n dumb.style.right = position.right;\n dumb.style.bottom = position.bottom;\n dumb.style.left = position.left;\n dumb.style.position = 'absolute';\n\n opts.zone.appendChild(dumb);\n var dumbBox = dumb.getBoundingClientRect();\n opts.zone.removeChild(dumb);\n\n toPutOn = position;\n position = {\n x: dumbBox.left + scroll.x,\n y: dumbBox.top + scroll.y\n };\n }\n\n var nipple = new Nipple(self, {\n color: opts.color,\n size: opts.size,\n threshold: opts.threshold,\n fadeTime: opts.fadeTime,\n dataOnly: opts.dataOnly,\n restJoystick: opts.restJoystick,\n restOpacity: opts.restOpacity,\n mode: opts.mode,\n identifier: identifier,\n position: position,\n zone: opts.zone,\n frontPosition: {\n x: 0,\n y: 0\n }\n });\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.el, toPutOn);\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n self.nipples.push(nipple);\n self.trigger('added ' + nipple.identifier + ':added', nipple);\n self.manager.trigger('added ' + nipple.identifier + ':added', nipple);\n\n self.bindNipple(nipple);\n\n return nipple;\n};\n\nCollection.prototype.updateBox = function () {\n var self = this;\n self.box = self.options.zone.getBoundingClientRect();\n};\n\nCollection.prototype.bindNipple = function (nipple) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's id.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed.\n nipple.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n nipple.on('shown hidden rested dir plain', handler);\n nipple.on('dir:up dir:right dir:down dir:left', handler);\n nipple.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nCollection.prototype.pressureFn = function (touch, nipple, identifier) {\n var self = this;\n var previousPressure = 0;\n clearInterval(self.pressureIntervals[identifier]);\n // Create an interval that will read the pressure every 100ms\n self.pressureIntervals[identifier] = setInterval(function () {\n var pressure = touch.force || touch.pressure ||\n touch.webkitForce || 0;\n if (pressure !== previousPressure) {\n nipple.trigger('pressure', pressure);\n self.trigger('pressure ' +\n nipple.identifier + ':pressure', pressure);\n previousPressure = pressure;\n }\n }.bind(self), 100);\n};\n\nCollection.prototype.onstart = function (evt) {\n var self = this;\n var opts = self.options;\n evt = u.prepareEvent(evt);\n\n // Update the box position\n self.updateBox();\n\n var process = function (touch) {\n // If we can create new nipples\n // meaning we don't have more active nipples than we should.\n if (self.actives.length < opts.maxNumberOfNipples) {\n self.processOnStart(touch);\n }\n };\n\n u.map(evt, process);\n\n // We ask upstream to bind the document\n // on 'move' and 'end'\n self.manager.bindDocument();\n return false;\n};\n\nCollection.prototype.processOnStart = function (evt) {\n var self = this;\n var opts = self.options;\n var indexInIdles;\n var identifier = self.manager.getIdentifier(evt);\n var pressure = evt.force || evt.pressure || evt.webkitForce || 0;\n var position = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var nipple = self.getOrCreate(identifier, position);\n\n // Update its touch identifier\n if (nipple.identifier !== identifier) {\n self.manager.removeIdentifier(nipple.identifier);\n }\n nipple.identifier = identifier;\n\n var process = function (nip) {\n // Trigger the start.\n nip.trigger('start', nip);\n self.trigger('start ' + nip.id + ':start', nip);\n\n nip.show();\n if (pressure > 0) {\n self.pressureFn(evt, nip, nip.identifier);\n }\n // Trigger the first move event.\n self.processOnMove(evt);\n };\n\n // Transfer it from idles to actives.\n if ((indexInIdles = self.idles.indexOf(nipple)) >= 0) {\n self.idles.splice(indexInIdles, 1);\n }\n\n // Store the nipple in the actives array\n self.actives.push(nipple);\n self.ids.push(nipple.identifier);\n\n if (opts.mode !== 'semi') {\n process(nipple);\n } else {\n // In semi we check the distance of the touch\n // to decide if we have to reset the nipple\n var distance = u.distance(position, nipple.position);\n if (distance <= opts.catchDistance) {\n process(nipple);\n } else {\n nipple.destroy();\n self.processOnStart(evt);\n return;\n }\n }\n\n return nipple;\n};\n\nCollection.prototype.getOrCreate = function (identifier, position) {\n var self = this;\n var opts = self.options;\n var nipple;\n\n // If we're in static or semi, we might already have an active.\n if (/(semi|static)/.test(opts.mode)) {\n // Get the active one.\n // TODO: Multi-touche for semi and static will start here.\n // Return the nearest one.\n nipple = self.idles[0];\n if (nipple) {\n self.idles.splice(0, 1);\n return nipple;\n }\n\n if (opts.mode === 'semi') {\n // If we're in semi mode, we need to create one.\n return self.createNipple(position, identifier);\n }\n\n console.warn('Coudln\\'t find the needed nipple.');\n return false;\n }\n // In dynamic, we create a new one.\n nipple = self.createNipple(position, identifier);\n return nipple;\n};\n\nCollection.prototype.processOnMove = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n\n if (!nipple) {\n // This is here just for safety.\n // It shouldn't happen.\n console.error('Found zombie joystick with ID ' + identifier);\n self.manager.removeIdentifier(identifier);\n return;\n }\n\n nipple.identifier = identifier;\n\n var size = nipple.options.size / 2;\n var pos = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var dist = u.distance(pos, nipple.position);\n var angle = u.angle(pos, nipple.position);\n var rAngle = u.radians(angle);\n var force = dist / size;\n\n // If distance is bigger than nipple's size\n // we clamp the position.\n if (dist > size) {\n dist = size;\n pos = u.findCoord(nipple.position, dist, angle);\n }\n\n var xPosition = pos.x - nipple.position.x\n var yPosition = pos.y - nipple.position.y\n\n if (opts.lockX){\n yPosition = 0\n }\n if (opts.lockY) {\n xPosition = 0\n }\n\n nipple.frontPosition = {\n x: xPosition,\n y: yPosition\n };\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n\n // Prepare event's datas.\n var toSend = {\n identifier: nipple.identifier,\n position: pos,\n force: force,\n pressure: evt.force || evt.pressure || evt.webkitForce || 0,\n distance: dist,\n angle: {\n radian: rAngle,\n degree: angle\n },\n instance: nipple,\n lockX: opts.lockX,\n lockY: opts.lockY\n };\n\n // Compute the direction's datas.\n toSend = nipple.computeDirection(toSend);\n\n // Offset angles to follow units circle.\n toSend.angle = {\n radian: u.radians(180 - angle),\n degree: 180 - angle\n };\n\n // Send everything to everyone.\n nipple.trigger('move', toSend);\n self.trigger('move ' + nipple.id + ':move', toSend);\n};\n\nCollection.prototype.processOnEnd = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n var removedIdentifier = self.manager.removeIdentifier(nipple.identifier);\n\n if (!nipple) {\n return;\n }\n\n if (!opts.dataOnly) {\n nipple.hide(function () {\n if (opts.mode === 'dynamic') {\n nipple.trigger('removed', nipple);\n self.trigger('removed ' + nipple.id + ':removed', nipple);\n self.manager\n .trigger('removed ' + nipple.id + ':removed', nipple);\n nipple.destroy();\n }\n });\n }\n\n // Clear the pressure interval reader\n clearInterval(self.pressureIntervals[nipple.identifier]);\n\n // Reset the direciton of the nipple, to be able to trigger a new direction\n // on start.\n nipple.resetDirection();\n\n nipple.trigger('end', nipple);\n self.trigger('end ' + nipple.id + ':end', nipple);\n\n // Remove identifier from our bank.\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Clean our actives array.\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n\n if (/(semi|static)/.test(opts.mode)) {\n // Transfer nipple from actives to idles\n // if we're in semi or static mode.\n self.idles.push(nipple);\n } else if (self.nipples.indexOf(nipple) >= 0) {\n // Only if we're not in semi or static mode\n // we can remove the instance.\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n\n // We unbind move and end.\n self.manager.unbindDocument();\n\n // We add back the identifier of the idle nipple;\n if (/(semi|static)/.test(opts.mode)) {\n self.manager.ids[removedIdentifier.id] = removedIdentifier.identifier;\n }\n};\n\n// Remove destroyed nipple from the lists\nCollection.prototype.onDestroyed = function(evt, nipple) {\n var self = this;\n if (self.nipples.indexOf(nipple) >= 0) {\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n if (self.idles.indexOf(nipple) >= 0) {\n self.idles.splice(self.idles.indexOf(nipple), 1);\n }\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Remove the identifier from our bank\n self.manager.removeIdentifier(nipple.identifier);\n\n // We unbind move and end.\n self.manager.unbindDocument();\n};\n\n// Cleanly destroy the manager\nCollection.prototype.destroy = function () {\n var self = this;\n self.unbindEvt(self.options.zone, 'start');\n\n // Destroy nipples.\n self.nipples.forEach(function(nipple) {\n nipple.destroy();\n });\n\n // Clean 3DTouch intervals.\n for (var i in self.pressureIntervals) {\n if (self.pressureIntervals.hasOwnProperty(i)) {\n clearInterval(self.pressureIntervals[i]);\n }\n }\n\n // Notify the manager passing the instance\n self.trigger('destroyed', self.nipples);\n // We unbind move and end.\n self.manager.unbindDocument();\n // Unbind everything.\n self.off();\n};\n\n/* global u, Super, Collection */\n\n///////////////////////\n/// MANAGER ///\n///////////////////////\n\nfunction Manager (options) {\n var self = this;\n self.ids = {};\n self.index = 0;\n self.collections = [];\n\n self.config(options);\n self.prepareCollections();\n\n // Listen for resize, to reposition every joysticks\n var resizeTimer;\n u.bindEvt(window, 'resize', function (evt) {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(function () {\n var pos;\n var scroll = u.getScroll();\n self.collections.forEach(function (collection) {\n collection.forEach(function (nipple) {\n pos = nipple.el.getBoundingClientRect();\n nipple.position = {\n x: scroll.x + pos.left,\n y: scroll.y + pos.top\n };\n });\n });\n }, 100);\n });\n\n return self.collections;\n};\n\nManager.prototype = new Super();\nManager.constructor = Manager;\n\nManager.prototype.prepareCollections = function () {\n var self = this;\n // Public API Preparation.\n self.collections.create = self.create.bind(self);\n // Listen to anything\n self.collections.on = self.on.bind(self);\n // Unbind general events\n self.collections.off = self.off.bind(self);\n // Destroy everything\n self.collections.destroy = self.destroy.bind(self);\n // Get any nipple\n self.collections.get = function (id) {\n var nipple;\n self.collections.every(function (collection) {\n if (nipple = collection.get(id)) {\n return false;\n }\n return true;\n });\n return nipple;\n };\n};\n\nManager.prototype.create = function (options) {\n return this.createCollection(options);\n};\n\n// Collection Factory\nManager.prototype.createCollection = function (options) {\n var self = this;\n var collection = new Collection(self, options);\n\n self.bindCollection(collection);\n self.collections.push(collection);\n\n return collection;\n};\n\nManager.prototype.bindCollection = function (collection) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's identifier.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed we clean.\n collection.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n collection.on('shown hidden rested dir plain', handler);\n collection.on('dir:up dir:right dir:down dir:left', handler);\n collection.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nManager.prototype.bindDocument = function () {\n var self = this;\n // Bind only if not already binded\n if (!self.binded) {\n self.bindEvt(document, 'move')\n .bindEvt(document, 'end');\n self.binded = true;\n }\n};\n\nManager.prototype.unbindDocument = function (force) {\n var self = this;\n // If there are no touch left\n // unbind the document.\n if (!Object.keys(self.ids).length || force === true) {\n self.unbindEvt(document, 'move')\n .unbindEvt(document, 'end');\n self.binded = false;\n }\n};\n\nManager.prototype.getIdentifier = function (evt) {\n var id;\n // If no event, simple increment\n if (!evt) {\n id = this.index;\n } else {\n // Extract identifier from event object.\n // Unavailable in mouse events so replaced by latest increment.\n id = evt.identifier === undefined ? evt.pointerId : evt.identifier;\n if (id === undefined) {\n id = this.latest || 0;\n }\n }\n\n if (this.ids[id] === undefined) {\n this.ids[id] = this.index;\n this.index += 1;\n }\n\n // Keep the latest id used in case we're using an unidentified mouseEvent\n this.latest = id;\n return this.ids[id];\n};\n\nManager.prototype.removeIdentifier = function (identifier) {\n var removed = {};\n for (var id in this.ids) {\n if (this.ids[id] === identifier) {\n removed.id = id;\n removed.identifier = this.ids[id];\n delete this.ids[id];\n break;\n }\n }\n return removed;\n};\n\nManager.prototype.onmove = function (evt) {\n var self = this;\n self.onAny('move', evt);\n return false;\n};\n\nManager.prototype.onend = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.oncancel = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.onAny = function (which, evt) {\n var self = this;\n var id;\n var processFn = 'processOn' + which.charAt(0).toUpperCase() +\n which.slice(1);\n evt = u.prepareEvent(evt);\n var processColl = function (e, id, coll) {\n if (coll.ids.indexOf(id) >= 0) {\n coll[processFn](e);\n // Mark the event to avoid cleaning it later.\n e._found_ = true;\n }\n };\n var processEvt = function (e) {\n id = self.getIdentifier(e);\n u.map(self.collections, processColl.bind(null, e, id));\n // If the event isn't handled by any collection,\n // we need to clean its identifier.\n if (!e._found_) {\n self.removeIdentifier(id);\n }\n };\n\n u.map(evt, processEvt);\n\n return false;\n};\n\n// Cleanly destroy the manager\nManager.prototype.destroy = function () {\n var self = this;\n self.unbindDocument(true);\n self.ids = {};\n self.index = 0;\n self.collections.forEach(function(collection) {\n collection.destroy();\n });\n self.off();\n};\n\n// When a collection gets destroyed\n// we clean behind.\nManager.prototype.onDestroyed = function (evt, coll) {\n var self = this;\n if (self.collections.indexOf(coll) < 0) {\n return false;\n }\n self.collections.splice(self.collections.indexOf(coll), 1);\n};\n\nvar factory = new Manager();\nreturn {\n create: function (options) {\n return factory.create(options);\n },\n factory: factory\n};\n\n});\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","/**\r\n * Returns the object type of the given payload\r\n *\r\n * @param {*} payload\r\n * @returns {string}\r\n */\r\nfunction getType(payload) {\r\n return Object.prototype.toString.call(payload).slice(8, -1);\r\n}\r\n/**\r\n * Returns whether the payload is undefined\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isUndefined(payload) {\r\n return getType(payload) === 'Undefined';\r\n}\r\n/**\r\n * Returns whether the payload is null\r\n *\r\n * @param {*} payload\r\n * @returns {payload is null}\r\n */\r\nfunction isNull(payload) {\r\n return getType(payload) === 'Null';\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isPlainObject(payload) {\r\n if (getType(payload) !== 'Object')\r\n return false;\r\n return (payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype);\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isObject(payload) {\r\n return isPlainObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isAnyObject(payload) {\r\n return getType(payload) === 'Object';\r\n}\r\n/**\r\n * Returns whether the payload is an object like a type passed in < >\r\n *\r\n * Usage: isObjectLike<{id: any}>(payload) // will make sure it's an object and has an `id` prop.\r\n *\r\n * @template T this must be passed in < >\r\n * @param {*} payload\r\n * @returns {payload is T}\r\n */\r\nfunction isObjectLike(payload) {\r\n return isAnyObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a function\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Function}\r\n */\r\nfunction isFunction(payload) {\r\n return getType(payload) === 'Function';\r\n}\r\n/**\r\n * Returns whether the payload is an array\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isArray(payload) {\r\n return getType(payload) === 'Array';\r\n}\r\n/**\r\n * Returns whether the payload is a string\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isString(payload) {\r\n return getType(payload) === 'String';\r\n}\r\n/**\r\n * Returns whether the payload is a string, BUT returns false for ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isFullString(payload) {\r\n return isString(payload) && payload !== '';\r\n}\r\n/**\r\n * Returns whether the payload is ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isEmptyString(payload) {\r\n return payload === '';\r\n}\r\n/**\r\n * Returns whether the payload is a number\r\n *\r\n * This will return false for NaN\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\r\nfunction isNumber(payload) {\r\n return (getType(payload) === 'Number' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a boolean\r\n *\r\n * @param {*} payload\r\n * @returns {payload is boolean}\r\n */\r\nfunction isBoolean(payload) {\r\n return getType(payload) === 'Boolean';\r\n}\r\n/**\r\n * Returns whether the payload is a regular expression\r\n *\r\n * @param {*} payload\r\n * @returns {payload is RegExp}\r\n */\r\nfunction isRegExp(payload) {\r\n return getType(payload) === 'RegExp';\r\n}\r\n/**\r\n * Returns whether the payload is a date, and that the date is Valid\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Date}\r\n */\r\nfunction isDate(payload) {\r\n return (getType(payload) === 'Date' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a Symbol\r\n *\r\n * @param {*} payload\r\n * @returns {payload is symbol}\r\n */\r\nfunction isSymbol(payload) {\r\n return (getType(payload) === 'Symbol');\r\n}\r\n/**\r\n * Returns whether the payload is a primitive type (eg. Boolean | Null | Undefined | Number | String | Symbol)\r\n *\r\n * @param {*} payload\r\n * @returns {(payload is boolean | null | undefined | number | string | symbol)}\r\n */\r\nfunction isPrimitive(payload) {\r\n return (isBoolean(payload) ||\r\n isNull(payload) ||\r\n isUndefined(payload) ||\r\n isNumber(payload) ||\r\n isString(payload) ||\r\n isSymbol(payload));\r\n}\r\n/**\r\n * Does a generic check to check that the given payload is of a given type.\r\n * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!);\r\n * It will, however, differentiate between object and null\r\n *\r\n * @template T\r\n * @param {*} payload\r\n * @param {T} type\r\n * @throws {TypeError} Will throw type error if type is an invalid type\r\n * @returns {payload is T}\r\n */\r\nfunction isType(payload, type) {\r\n if (!(type instanceof Function)) {\r\n throw new TypeError('Type must be a function');\r\n }\r\n if (!type.hasOwnProperty('prototype')) {\r\n throw new TypeError('Type is not a class');\r\n }\r\n // Classes usually have names (as functions usually have names)\r\n var name = type.name;\r\n return (getType(payload) === name) || Boolean(payload && (payload.constructor === type));\r\n}\n\nexport { getType, isUndefined, isNull, isPlainObject, isObject, isAnyObject, isObjectLike, isFunction, isArray, isString, isFullString, isEmptyString, isNumber, isBoolean, isRegExp, isDate, isSymbol, isPrimitive, isType };\n","import { isArray, isPlainObject, isSymbol } from 'is-what';\n\nfunction assignProp(carry, key, newVal, originalObject) {\r\n var propType = originalObject.propertyIsEnumerable(key)\r\n ? 'enumerable'\r\n : 'nonenumerable';\r\n if (propType === 'enumerable')\r\n carry[key] = newVal;\r\n if (propType === 'nonenumerable') {\r\n Object.defineProperty(carry, key, {\r\n value: newVal,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n });\r\n }\r\n}\r\nfunction mergeRecursively(origin, newComer, extensions) {\r\n // work directly on newComer if its not an object\r\n if (!isPlainObject(newComer)) {\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newComer = extend(origin, newComer);\r\n });\r\n }\r\n return newComer;\r\n }\r\n // define newObject to merge all values upon\r\n var newObject = {};\r\n if (isPlainObject(origin)) {\r\n var props_1 = Object.getOwnPropertyNames(origin);\r\n var symbols_1 = Object.getOwnPropertySymbols(origin);\r\n newObject = props_1.concat(symbols_1).reduce(function (carry, key) {\r\n // @ts-ignore\r\n var targetVal = origin[key];\r\n if ((!isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key)) ||\r\n (isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key))) {\r\n assignProp(carry, key, targetVal, origin);\r\n }\r\n return carry;\r\n }, {});\r\n }\r\n var props = Object.getOwnPropertyNames(newComer);\r\n var symbols = Object.getOwnPropertySymbols(newComer);\r\n var result = props.concat(symbols).reduce(function (carry, key) {\r\n // re-define the origin and newComer as targetVal and newVal\r\n var newVal = newComer[key];\r\n var targetVal = (isPlainObject(origin))\r\n // @ts-ignore\r\n ? origin[key]\r\n : undefined;\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newVal = extend(targetVal, newVal);\r\n });\r\n }\r\n // When newVal is an object do the merge recursively\r\n if (targetVal !== undefined && isPlainObject(newVal)) {\r\n newVal = mergeRecursively(targetVal, newVal, extensions);\r\n }\r\n assignProp(carry, key, newVal, newComer);\r\n return carry;\r\n }, newObject);\r\n return result;\r\n}\r\n/**\r\n * Merge anything recursively.\r\n * Objects get merged, special objects (classes etc.) are re-assigned \"as is\".\r\n * Basic types overwrite objects or other basic types.\r\n *\r\n * @param {(IConfig | any)} origin\r\n * @param {...any[]} newComers\r\n * @returns the result\r\n */\r\nfunction merge(origin) {\r\n var newComers = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n newComers[_i - 1] = arguments[_i];\r\n }\r\n var extensions = null;\r\n var base = origin;\r\n if (isPlainObject(origin) && origin.extensions && Object.keys(origin).length === 1) {\r\n base = {};\r\n extensions = origin.extensions;\r\n }\r\n return newComers.reduce(function (result, newComer) {\r\n return mergeRecursively(result, newComer, extensions);\r\n }, base);\r\n}\n\nfunction concatArrays(originVal, newVal) {\r\n if (isArray(originVal) && isArray(newVal)) {\r\n // concat logic\r\n return originVal.concat(newVal);\r\n }\r\n return newVal; // always return newVal as fallback!!\r\n}\n\nexport default merge;\nexport { merge, concatArrays };\n","/** @license React v16.8.6\n * react-is.production.min.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'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (colorNames.hasOwnProperty(name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar keyword = /(\\D+)/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\n\t\tif (!rgb) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = (parseFloat(match[1]) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = num.toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function () { /* empty */ };\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","/**\n * @ignore\n * event object for dom\n * @author yiminghe@gmail.com\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventBaseObject = require('./EventBaseObject');\n\nvar _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar TRUE = true;\nvar FALSE = false;\nvar commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];\n\nfunction isNullOrUndefined(w) {\n return w === null || w === undefined;\n}\n\nvar eventNormalizers = [{\n reg: /^key/,\n props: ['char', 'charCode', 'key', 'keyCode', 'which'],\n fix: function fix(event, nativeEvent) {\n if (isNullOrUndefined(event.which)) {\n event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;\n }\n\n // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)\n if (event.metaKey === undefined) {\n event.metaKey = event.ctrlKey;\n }\n }\n}, {\n reg: /^touch/,\n props: ['touches', 'changedTouches', 'targetTouches']\n}, {\n reg: /^hashchange$/,\n props: ['newURL', 'oldURL']\n}, {\n reg: /^gesturechange$/i,\n props: ['rotation', 'scale']\n}, {\n reg: /^(mousewheel|DOMMouseScroll)$/,\n props: [],\n fix: function fix(event, nativeEvent) {\n var deltaX = undefined;\n var deltaY = undefined;\n var delta = undefined;\n var wheelDelta = nativeEvent.wheelDelta;\n var axis = nativeEvent.axis;\n var wheelDeltaY = nativeEvent.wheelDeltaY;\n var wheelDeltaX = nativeEvent.wheelDeltaX;\n var detail = nativeEvent.detail;\n\n // ie/webkit\n if (wheelDelta) {\n delta = wheelDelta / 120;\n }\n\n // gecko\n if (detail) {\n // press control e.detail == 1 else e.detail == 3\n delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);\n }\n\n // Gecko\n if (axis !== undefined) {\n if (axis === event.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = 0 - delta;\n } else if (axis === event.VERTICAL_AXIS) {\n deltaX = 0;\n deltaY = delta;\n }\n }\n\n // Webkit\n if (wheelDeltaY !== undefined) {\n deltaY = wheelDeltaY / 120;\n }\n if (wheelDeltaX !== undefined) {\n deltaX = -1 * wheelDeltaX / 120;\n }\n\n // 默认 deltaY (ie)\n if (!deltaX && !deltaY) {\n deltaY = delta;\n }\n\n if (deltaX !== undefined) {\n /**\n * deltaX of mousewheel event\n * @property deltaX\n * @member Event.DomEvent.Object\n */\n event.deltaX = deltaX;\n }\n\n if (deltaY !== undefined) {\n /**\n * deltaY of mousewheel event\n * @property deltaY\n * @member Event.DomEvent.Object\n */\n event.deltaY = deltaY;\n }\n\n if (delta !== undefined) {\n /**\n * delta of mousewheel event\n * @property delta\n * @member Event.DomEvent.Object\n */\n event.delta = delta;\n }\n }\n}, {\n reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,\n props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],\n fix: function fix(event, nativeEvent) {\n var eventDoc = undefined;\n var doc = undefined;\n var body = undefined;\n var target = event.target;\n var button = nativeEvent.button;\n\n // Calculate pageX/Y if missing and clientX/Y available\n if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {\n eventDoc = target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // which for click: 1 === left; 2 === middle; 3 === right\n // do not use button\n if (!event.which && button !== undefined) {\n if (button & 1) {\n event.which = 1;\n } else if (button & 2) {\n event.which = 3;\n } else if (button & 4) {\n event.which = 2;\n } else {\n event.which = 0;\n }\n }\n\n // add relatedTarget, if necessary\n if (!event.relatedTarget && event.fromElement) {\n event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;\n }\n\n return event;\n }\n}];\n\nfunction retTrue() {\n return TRUE;\n}\n\nfunction retFalse() {\n return FALSE;\n}\n\nfunction DomEventObject(nativeEvent) {\n var type = nativeEvent.type;\n\n var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';\n\n _EventBaseObject2['default'].call(this);\n\n this.nativeEvent = nativeEvent;\n\n // in case dom event has been mark as default prevented by lower dom node\n var isDefaultPrevented = retFalse;\n if ('defaultPrevented' in nativeEvent) {\n isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;\n } else if ('getPreventDefault' in nativeEvent) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=691151\n isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;\n } else if ('returnValue' in nativeEvent) {\n isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;\n }\n\n this.isDefaultPrevented = isDefaultPrevented;\n\n var fixFns = [];\n var fixFn = undefined;\n var l = undefined;\n var prop = undefined;\n var props = commonProps.concat();\n\n eventNormalizers.forEach(function (normalizer) {\n if (type.match(normalizer.reg)) {\n props = props.concat(normalizer.props);\n if (normalizer.fix) {\n fixFns.push(normalizer.fix);\n }\n }\n });\n\n l = props.length;\n\n // clone properties of the original event object\n while (l) {\n prop = props[--l];\n this[prop] = nativeEvent[prop];\n }\n\n // fix target property, if necessary\n if (!this.target && isNative) {\n this.target = nativeEvent.srcElement || document; // srcElement might not be defined either\n }\n\n // check if target is a text node (safari)\n if (this.target && this.target.nodeType === 3) {\n this.target = this.target.parentNode;\n }\n\n l = fixFns.length;\n\n while (l) {\n fixFn = fixFns[--l];\n fixFn(this, nativeEvent);\n }\n\n this.timeStamp = nativeEvent.timeStamp || Date.now();\n}\n\nvar EventBaseObjectProto = _EventBaseObject2['default'].prototype;\n\n(0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {\n constructor: DomEventObject,\n\n preventDefault: function preventDefault() {\n var e = this.nativeEvent;\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n // otherwise set the returnValue property of the original event to FALSE (IE)\n e.returnValue = FALSE;\n }\n\n EventBaseObjectProto.preventDefault.call(this);\n },\n\n stopPropagation: function stopPropagation() {\n var e = this.nativeEvent;\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n } else {\n // otherwise set the cancelBubble property of the original event to TRUE (IE)\n e.cancelBubble = TRUE;\n }\n\n EventBaseObjectProto.stopPropagation.call(this);\n }\n});\n\nexports['default'] = DomEventObject;\nmodule.exports = exports['default'];","/**\n * @ignore\n * base event object for custom and dom event.\n * @author yiminghe@gmail.com\n */\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction returnFalse() {\n return false;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction EventBaseObject() {\n this.timeStamp = Date.now();\n this.target = undefined;\n this.currentTarget = undefined;\n}\n\nEventBaseObject.prototype = {\n isEventObject: 1,\n\n constructor: EventBaseObject,\n\n isDefaultPrevented: returnFalse,\n\n isPropagationStopped: returnFalse,\n\n isImmediatePropagationStopped: returnFalse,\n\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n },\n\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n },\n\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n // fixed 1.2\n // call stopPropagation implicitly\n this.stopPropagation();\n },\n\n halt: function halt(immediate) {\n if (immediate) {\n this.stopImmediatePropagation();\n } else {\n this.stopPropagation();\n }\n this.preventDefault();\n }\n};\n\nexports[\"default\"] = EventBaseObject;\nmodule.exports = exports[\"default\"];","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\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","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n","var api = require(\"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../css-loader/dist/cjs.js!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function insertAtTop(element) {\n\t\t\t\t document.head.insertBefore(element, document.head.firstElementChild);\n\t\t\t\t};\noptions.singleton = false;\n\nvar update = api(content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;","\"use strict\";\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 = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\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 && btoa) {\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 "}},te=function(e,t){return function(){var n,r=((n={})[j]=$(t),n["data-styled-version"]="4.4.0",n),o=G();return o&&(r.nonce=o),l.a.createElement("style",g({},r,{dangerouslySetInnerHTML:{__html:e()}}))}},ne=function(e){return function(){return Object.keys(e)}},re=function(e,t){return e.createTextNode(J(t))},oe=function e(t,n){var r=void 0===t?Object.create(null):t,o=void 0===n?Object.create(null):n,a=function(e){var t=o[e];return void 0!==t?t:o[e]=[""]},i=function(){var e="";for(var t in o){var n=o[t][0];n&&(e+=J(t)+n)}return e};return{clone:function(){var t=function(e){var t=Object.create(null);for(var n in e)t[n]=g({},e[n]);return t}(r),n=Object.create(null);for(var a in o)n[a]=[o[a][0]];return e(t,n)},css:i,getIds:ne(o),hasNameForId:K(r),insertMarker:a,insertRules:function(e,t,n){a(e)[0]+=t.join(" "),Y(r,e,n)},removeRules:function(e){var t=o[e];void 0!==t&&(t[0]="",X(r,e))},sealed:!1,styleTag:null,toElement:te(i,r),toHTML:ee(i,r)}},ae=function(e,t,n,r,o){if(C&&!n){var a=function(e,t,n){var r=document;e?r=e.ownerDocument:t&&(r=t.ownerDocument);var o=r.createElement("style");o.setAttribute(j,""),o.setAttribute("data-styled-version","4.4.0");var a=G();if(a&&o.setAttribute("nonce",a),o.appendChild(r.createTextNode("")),e&&!t)e.appendChild(o);else{if(!t||!e||!t.parentNode)throw new M(6);t.parentNode.insertBefore(o,n?t:t.nextSibling)}return o}(e,t,r);return P?function(e,t){var n=Object.create(null),r=Object.create(null),o=void 0!==t,a=!1,i=function(t){var o=r[t];return void 0!==o?o:(r[t]=re(e.ownerDocument,t),e.appendChild(r[t]),n[t]=Object.create(null),r[t])},s=function(){var e="";for(var t in r)e+=r[t].data;return e};return{clone:function(){throw new M(5)},css:s,getIds:ne(r),hasNameForId:K(n),insertMarker:i,insertRules:function(e,r,s){for(var l=i(e),c=[],u=r.length,f=0;f0&&(a=!0,t().insertRules(e+"-import",c))},removeRules:function(i){var s=r[i];if(void 0!==s){var l=re(e.ownerDocument,i);e.replaceChild(l,s),r[i]=l,X(n,i),o&&a&&t().removeRules(i+"-import")}},sealed:!1,styleTag:e,toElement:te(s,n),toHTML:ee(s,n)}}(a,o):function(e,t){var n=Object.create(null),r=Object.create(null),o=[],a=void 0!==t,i=!1,s=function(e){var t=r[e];return void 0!==t?t:(r[e]=o.length,o.push(0),X(n,e),r[e])},l=function(){var t=q(e).cssRules,n="";for(var a in r){n+=J(a);for(var i=r[a],s=Q(o,i),l=s-o[i];l0&&(i=!0,t().insertRules(r+"-import",h)),o[u]+=d,Y(n,r,c)},removeRules:function(s){var l=r[s];if(void 0!==l&&!1!==e.isConnected){var c=o[l];!function(e,t,n){for(var r=t-n,o=t;o>r;o-=1)e.deleteRule(o)}(q(e),Q(o,l)-1,c),o[l]=0,X(n,s),a&&i&&t().removeRules(s+"-import")}},sealed:!1,styleTag:e,toElement:te(l,n),toHTML:ee(l,n)}}(a,o)}return oe()},ie=/\s+/,se=void 0;se=C?P?40:1e3:-1;var le=0,ce=void 0,ue=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C?document.head:null,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];b(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var n=t.tags[0];return t.importRuleTag=ae(t.target,n?n.styleTag:null,t.forceServer,!0)},le+=1,this.id=le,this.forceServer=r,this.target=r?null:n,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!C||this.forceServer)return this;var e=[],t=[],n=!1,r=document.querySelectorAll("style["+j+'][data-styled-version="4.4.0"]'),o=r.length;if(!o)return this;for(var a=0;a0&&void 0!==arguments[0]&&arguments[0];ce=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map((function(e){for(var n=e.getIds(),r=e.clone(),o=0;o1?t-1:0),r=1;r=4;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),n-=4,++o;switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+((1540483477*(r>>>16)&65535)<<16)}return((r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16))^r>>>15)>>>0}var xe=function(e){return String.fromCharCode(e+(e>25?39:97))};function we(e){var t="",n=void 0;for(n=e;n>52;n=Math.floor(n/52))t=xe(n%52)+t;return xe(n%52)+t}function Oe(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:k,r=!!n&&e.theme===n.theme,o=e.theme&&!r?e.theme:t||n.theme;return o},je=/[[\].#*$><+~=|^:(),"'`-]+/g,Ce=/(^-|-$)/g;function Pe(e){return e.replace(je,"-").replace(Ce,"")}function Me(e){return"string"==typeof e&&!0}var Ae={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},Te={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},De=((ke={})[u.ForwardRef]={$$typeof:!0,render:!0},ke),Ne=Object.defineProperty,Ie=Object.getOwnPropertyNames,Le=Object.getOwnPropertySymbols,Re=void 0===Le?function(){return[]}:Le,Fe=Object.getOwnPropertyDescriptor,He=Object.getPrototypeOf,ze=Object.prototype,Be=Array.prototype;function Ue(e,t,n){if("string"!=typeof t){var r=He(t);r&&r!==ze&&Ue(e,r,n);for(var o=Be.concat(Ie(t),Re(t)),a=De[e.$$typeof]||Ae,i=De[t.$$typeof]||Ae,s=o.length,l=void 0,c=void 0;s--;)if(c=o[s],!(Te[c]||n&&n[c]||i&&i[c]||a&&a[c])&&(l=Fe(t,c)))try{Ne(e,c,l)}catch(e){}return e}return e}var Ve=Object(s.createContext)(),We=Ve.Consumer,Ge=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext.bind(r)),r.renderInner=r.renderInner.bind(r),r}return y(t,e),t.prototype.render=function(){return this.props.children?l.a.createElement(Ve.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return l.a.createElement(Ve.Provider,{value:t},this.props.children)},t.prototype.getTheme=function(e,t){if(E(e))return e(t);if(null===e||Array.isArray(e)||"object"!==(void 0===e?"undefined":m(e)))throw new M(8);return g({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)},t}(s.Component),Ye=(function(){function e(){b(this,e),this.masterSheet=ue.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new M(2);return l.a.createElement(Ke,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new M(3)}}(),Object(s.createContext)()),Xe=Ye.Consumer,Ke=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext),r}return y(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new ue(t);throw new M(4)},t.prototype.render=function(){var e=this.props,t=e.children,n=e.sheet,r=e.target;return l.a.createElement(Ye.Provider,{value:this.getContext(n,r)},t)},t}(s.Component),$e={};var qe=function(e){function t(){b(this,t);var n=x(this,e.call(this));return n.attrs={},n.renderOuter=n.renderOuter.bind(n),n.renderInner=n.renderInner.bind(n),n}return y(t,e),t.prototype.render=function(){return l.a.createElement(Xe,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ue.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():l.a.createElement(We,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,n=t.componentStyle,r=t.defaultProps,o=(t.displayName,t.foldedComponentIds),a=t.styledComponentId,i=t.target,l=(t.usesTheme,void 0),c=void 0;n.isStatic?l=this.generateAndInjectStyles(k,this.props):(c=_e(this.props,e,r),l=this.generateAndInjectStyles(c||k,this.props));var u=this.props.as||this.attrs.as||i,f=Me(u),d={},h=g({},this.props,this.attrs),m=void 0;for(m in h)"forwardedComponent"!==m&&"as"!==m&&("forwardedRef"===m?d.ref=h[m]:"forwardedAs"===m?d.as=h[m]:f&&!Object(p.a)(m)||(d[m]=h[m]));return this.props.style&&this.attrs.style&&(d.style=g({},this.attrs.style,this.props.style)),d.className=Array.prototype.concat(o,a,l!==a?l:null,this.props.className,this.attrs.className).filter(Boolean).join(" "),Object(s.createElement)(u,d)},t.prototype.buildExecutionContext=function(e,t,n){var r=this,o=g({},t,{theme:e});return n.length?(this.attrs={},n.forEach((function(e){var t,n=e,a=!1,i=void 0,s=void 0;for(s in E(n)&&(n=n(o),a=!0),n)i=n[s],a||!E(i)||(t=i)&&t.prototype&&t.prototype.isReactComponent||_(i)||(i=i(o)),r.attrs[s]=i,o[s]=i})),o):o},t.prototype.generateAndInjectStyles=function(e,t){var n=t.forwardedComponent,r=n.attrs,o=n.componentStyle;n.warnTooManyClasses;return o.isStatic&&!r.length?o.generateAndInjectStyles(k,this.styleSheet):o.generateAndInjectStyles(this.buildExecutionContext(e,t,r),this.styleSheet)},t}(s.Component);function Ze(e,t,n){var r=_(e),o=!Me(e),a=t.displayName,i=void 0===a?function(e){return Me(e)?"styled."+e:"Styled("+S(e)+")"}(e):a,s=t.componentId,c=void 0===s?function(e,t,n){var r="string"!=typeof t?"sc":Pe(t),o=($e[r]||0)+1;$e[r]=o;var a=r+"-"+e.generateName(r+o);return n?n+"-"+a:a}(Se,t.displayName,t.parentComponentId):s,u=t.ParentComponent,f=void 0===u?qe:u,p=t.attrs,h=void 0===p?O:p,m=t.displayName&&t.componentId?Pe(t.displayName)+"-"+t.componentId:t.componentId||c,b=r&&e.attrs?Array.prototype.concat(e.attrs,h).filter(Boolean):h,v=new Se(r?e.componentStyle.rules.concat(n):n,b,m),y=void 0,x=function(e,t){return l.a.createElement(f,g({},e,{forwardedComponent:y,forwardedRef:t}))};return x.displayName=i,(y=l.a.forwardRef(x)).displayName=i,y.attrs=b,y.componentStyle=v,y.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):O,y.styledComponentId=m,y.target=r?e.target:e,y.withComponent=function(e){var r=t.componentId,o=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(t,["componentId"]),a=r&&r+"-"+(Me(e)?e:Pe(S(e)));return Ze(e,g({},o,{attrs:b,componentId:a,ParentComponent:f}),n)},Object.defineProperty(y,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Object(d.a)(e.defaultProps,t):t}}),y.toString=function(){return"."+y.styledComponentId},o&&Ue(y,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),y}var Je=function(e){return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:k;if(!Object(u.isValidElementType)(n))throw new M(1,String(n));var o=function(){return t(n,r,ge.apply(void 0,arguments))};return o.withConfig=function(o){return e(t,n,g({},r,o))},o.attrs=function(o){return e(t,n,g({},r,{attrs:Array.prototype.concat(r.attrs,o).filter(Boolean)}))},o}(Ze,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){Je[e]=Je(e)}));!function(){function e(t,n){b(this,e),this.rules=t,this.componentId=n,this.isStatic=Oe(t,O),ue.master.hasId(n)||ue.master.deferredInject(n,[])}e.prototype.createStyles=function(e,t){var n=W(ve(this.rules,e,t),"");t.inject(this.componentId,n)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)}}();C&&(window.scCGSHMRCache={});var Qe=function(e){var t=l.a.forwardRef((function(t,n){return l.a.createElement(We,null,(function(r){var o=e.defaultProps,a=_e(t,r,o);return l.a.createElement(e,g({},t,{theme:a,ref:n}))}))}));return Ue(t,e),t.displayName="WithTheme("+S(e)+")",t};t.c=Je}).call(this,n(63))},function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a})),n.d(t,"e",(function(){return i})),n.d(t,"d",(function(){return s}));var r={PRIMARY:"#ABE2FB",SECONDARY:"#E6E6E6",DARKER_PRIMARY:"#87ceeb",OFF_WHITE:"#15181A",GREY:"#D3D3D3",RED:"#FF5E5E",DARK_GREY:"#535D63"},o=270,a=Math.PI/180,i={primary:r.PRIMARY,secondary:r.SECONDARY,detail:r.GREY,dark:!1},s={primary:r.PRIMARY,secondary:r.DARK_GREY,detail:r.DARK_GREY,dark:!0}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return a}));var r=n(30),o=function(e,t){return"daq-"+e+(t&&t.dark?"--dark":"--light")},a=function(e){return Object(r.a)(["className","id","setProps","style"],e)}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(71),a=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,a.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(95),a=(r=o)&&r.__esModule?r:{default:r};t.default=a.default||function(e){for(var t=1;t1?r-1:0),a=1;a0?" Additional arguments: "+o.join(", "):"")));return x(i)}return y(t,e),t}(Error),A=/^[^\S\n]*?\/\* sc-component-id:\s*(\S+)\s+\*\//gm,T=function(e){var t=""+(e||""),n=[];return t.replace(A,(function(e,t,r){return n.push({componentId:t,matchIndex:r}),e})),n.map((function(e,r){var o=e.componentId,a=e.matchIndex,i=n[r+1];return{componentId:o,cssFromDOM:i?t.slice(a,i.matchIndex):t.slice(a)}}))},D=/^\s*\/\/.*$/gm,N=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!1,compress:!1,semicolon:!0}),I=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!0,compress:!1,semicolon:!1}),L=[],R=function(e){if(-2===e){var t=L;return L=[],t}},F=i()((function(e){L.push(e)})),H=void 0,z=void 0,B=void 0,U=function(e,t,n){return t>0&&-1!==n.slice(0,t).indexOf(z)&&n.slice(t-z.length,t)!==z?"."+H:e};I.use([function(e,t,n){2===e&&n.length&&n[0].lastIndexOf(z)>0&&(n[0]=n[0].replace(B,U))},F,R]),N.use([F,R]);var V=function(e){return N("",e)};function W(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"&",o=e.join("").replace(D,""),a=t&&n?n+" "+t+" { "+o+" }":o;return H=r,z=t,B=new RegExp("\\"+z+"\\b","g"),I(n||!t?"":t,a)}var G=function(){return n.nc},Y=function(e,t,n){n&&((e[t]||(e[t]=Object.create(null)))[n]=!0)},X=function(e,t){e[t]=Object.create(null)},K=function(e){return function(t,n){return void 0!==e[t]&&e[t][n]}},$=function(e){var t="";for(var n in e)t+=Object.keys(e[n]).join(" ")+" ";return t.trim()},q=function(e){if(e.sheet)return e.sheet;for(var t=e.ownerDocument.styleSheets.length,n=0;n"+e()+""}},te=function(e,t){return function(){var n,r=((n={})[j]=$(t),n["data-styled-version"]="4.4.0",n),o=G();return o&&(r.nonce=o),l.a.createElement("style",g({},r,{dangerouslySetInnerHTML:{__html:e()}}))}},ne=function(e){return function(){return Object.keys(e)}},re=function(e,t){return e.createTextNode(J(t))},oe=function e(t,n){var r=void 0===t?Object.create(null):t,o=void 0===n?Object.create(null):n,a=function(e){var t=o[e];return void 0!==t?t:o[e]=[""]},i=function(){var e="";for(var t in o){var n=o[t][0];n&&(e+=J(t)+n)}return e};return{clone:function(){var t=function(e){var t=Object.create(null);for(var n in e)t[n]=g({},e[n]);return t}(r),n=Object.create(null);for(var a in o)n[a]=[o[a][0]];return e(t,n)},css:i,getIds:ne(o),hasNameForId:K(r),insertMarker:a,insertRules:function(e,t,n){a(e)[0]+=t.join(" "),Y(r,e,n)},removeRules:function(e){var t=o[e];void 0!==t&&(t[0]="",X(r,e))},sealed:!1,styleTag:null,toElement:te(i,r),toHTML:ee(i,r)}},ae=function(e,t,n,r,o){if(C&&!n){var a=function(e,t,n){var r=document;e?r=e.ownerDocument:t&&(r=t.ownerDocument);var o=r.createElement("style");o.setAttribute(j,""),o.setAttribute("data-styled-version","4.4.0");var a=G();if(a&&o.setAttribute("nonce",a),o.appendChild(r.createTextNode("")),e&&!t)e.appendChild(o);else{if(!t||!e||!t.parentNode)throw new M(6);t.parentNode.insertBefore(o,n?t:t.nextSibling)}return o}(e,t,r);return P?function(e,t){var n=Object.create(null),r=Object.create(null),o=void 0!==t,a=!1,i=function(t){var o=r[t];return void 0!==o?o:(r[t]=re(e.ownerDocument,t),e.appendChild(r[t]),n[t]=Object.create(null),r[t])},s=function(){var e="";for(var t in r)e+=r[t].data;return e};return{clone:function(){throw new M(5)},css:s,getIds:ne(r),hasNameForId:K(n),insertMarker:i,insertRules:function(e,r,s){for(var l=i(e),c=[],u=r.length,f=0;f0&&(a=!0,t().insertRules(e+"-import",c))},removeRules:function(i){var s=r[i];if(void 0!==s){var l=re(e.ownerDocument,i);e.replaceChild(l,s),r[i]=l,X(n,i),o&&a&&t().removeRules(i+"-import")}},sealed:!1,styleTag:e,toElement:te(s,n),toHTML:ee(s,n)}}(a,o):function(e,t){var n=Object.create(null),r=Object.create(null),o=[],a=void 0!==t,i=!1,s=function(e){var t=r[e];return void 0!==t?t:(r[e]=o.length,o.push(0),X(n,e),r[e])},l=function(){var t=q(e).cssRules,n="";for(var a in r){n+=J(a);for(var i=r[a],s=Q(o,i),l=s-o[i];l0&&(i=!0,t().insertRules(r+"-import",h)),o[u]+=d,Y(n,r,c)},removeRules:function(s){var l=r[s];if(void 0!==l&&!1!==e.isConnected){var c=o[l];!function(e,t,n){for(var r=t-n,o=t;o>r;o-=1)e.deleteRule(o)}(q(e),Q(o,l)-1,c),o[l]=0,X(n,s),a&&i&&t().removeRules(s+"-import")}},sealed:!1,styleTag:e,toElement:te(l,n),toHTML:ee(l,n)}}(a,o)}return oe()},ie=/\s+/,se=void 0;se=C?P?40:1e3:-1;var le=0,ce=void 0,ue=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C?document.head:null,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];b(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var n=t.tags[0];return t.importRuleTag=ae(t.target,n?n.styleTag:null,t.forceServer,!0)},le+=1,this.id=le,this.forceServer=r,this.target=r?null:n,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!C||this.forceServer)return this;var e=[],t=[],n=!1,r=document.querySelectorAll("style["+j+'][data-styled-version="4.4.0"]'),o=r.length;if(!o)return this;for(var a=0;a0&&void 0!==arguments[0]&&arguments[0];ce=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map((function(e){for(var n=e.getIds(),r=e.clone(),o=0;o1?t-1:0),r=1;r=4;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),n-=4,++o;switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+((1540483477*(r>>>16)&65535)<<16)}return((r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16))^r>>>15)>>>0}var xe=function(e){return String.fromCharCode(e+(e>25?39:97))};function we(e){var t="",n=void 0;for(n=e;n>52;n=Math.floor(n/52))t=xe(n%52)+t;return xe(n%52)+t}function Oe(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:k,r=!!n&&e.theme===n.theme,o=e.theme&&!r?e.theme:t||n.theme;return o},je=/[[\].#*$><+~=|^:(),"'`-]+/g,Ce=/(^-|-$)/g;function Pe(e){return e.replace(je,"-").replace(Ce,"")}function Me(e){return"string"==typeof e&&!0}var Ae={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},Te={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},De=((ke={})[u.ForwardRef]={$$typeof:!0,render:!0},ke),Ne=Object.defineProperty,Ie=Object.getOwnPropertyNames,Le=Object.getOwnPropertySymbols,Re=void 0===Le?function(){return[]}:Le,Fe=Object.getOwnPropertyDescriptor,He=Object.getPrototypeOf,ze=Object.prototype,Be=Array.prototype;function Ue(e,t,n){if("string"!=typeof t){var r=He(t);r&&r!==ze&&Ue(e,r,n);for(var o=Be.concat(Ie(t),Re(t)),a=De[e.$$typeof]||Ae,i=De[t.$$typeof]||Ae,s=o.length,l=void 0,c=void 0;s--;)if(c=o[s],!(Te[c]||n&&n[c]||i&&i[c]||a&&a[c])&&(l=Fe(t,c)))try{Ne(e,c,l)}catch(e){}return e}return e}var Ve=Object(s.createContext)(),We=Ve.Consumer,Ge=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext.bind(r)),r.renderInner=r.renderInner.bind(r),r}return y(t,e),t.prototype.render=function(){return this.props.children?l.a.createElement(Ve.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return l.a.createElement(Ve.Provider,{value:t},this.props.children)},t.prototype.getTheme=function(e,t){if(E(e))return e(t);if(null===e||Array.isArray(e)||"object"!==(void 0===e?"undefined":m(e)))throw new M(8);return g({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)},t}(s.Component),Ye=(function(){function e(){b(this,e),this.masterSheet=ue.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new M(2);return l.a.createElement(Ke,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new M(3)}}(),Object(s.createContext)()),Xe=Ye.Consumer,Ke=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext),r}return y(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new ue(t);throw new M(4)},t.prototype.render=function(){var e=this.props,t=e.children,n=e.sheet,r=e.target;return l.a.createElement(Ye.Provider,{value:this.getContext(n,r)},t)},t}(s.Component),$e={};var qe=function(e){function t(){b(this,t);var n=x(this,e.call(this));return n.attrs={},n.renderOuter=n.renderOuter.bind(n),n.renderInner=n.renderInner.bind(n),n}return y(t,e),t.prototype.render=function(){return l.a.createElement(Xe,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ue.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():l.a.createElement(We,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,n=t.componentStyle,r=t.defaultProps,o=(t.displayName,t.foldedComponentIds),a=t.styledComponentId,i=t.target,l=(t.usesTheme,void 0),c=void 0;n.isStatic?l=this.generateAndInjectStyles(k,this.props):(c=_e(this.props,e,r),l=this.generateAndInjectStyles(c||k,this.props));var u=this.props.as||this.attrs.as||i,f=Me(u),d={},h=g({},this.props,this.attrs),m=void 0;for(m in h)"forwardedComponent"!==m&&"as"!==m&&("forwardedRef"===m?d.ref=h[m]:"forwardedAs"===m?d.as=h[m]:f&&!Object(p.a)(m)||(d[m]=h[m]));return this.props.style&&this.attrs.style&&(d.style=g({},this.attrs.style,this.props.style)),d.className=Array.prototype.concat(o,a,l!==a?l:null,this.props.className,this.attrs.className).filter(Boolean).join(" "),Object(s.createElement)(u,d)},t.prototype.buildExecutionContext=function(e,t,n){var r=this,o=g({},t,{theme:e});return n.length?(this.attrs={},n.forEach((function(e){var t,n=e,a=!1,i=void 0,s=void 0;for(s in E(n)&&(n=n(o),a=!0),n)i=n[s],a||!E(i)||(t=i)&&t.prototype&&t.prototype.isReactComponent||_(i)||(i=i(o)),r.attrs[s]=i,o[s]=i})),o):o},t.prototype.generateAndInjectStyles=function(e,t){var n=t.forwardedComponent,r=n.attrs,o=n.componentStyle;n.warnTooManyClasses;return o.isStatic&&!r.length?o.generateAndInjectStyles(k,this.styleSheet):o.generateAndInjectStyles(this.buildExecutionContext(e,t,r),this.styleSheet)},t}(s.Component);function Ze(e,t,n){var r=_(e),o=!Me(e),a=t.displayName,i=void 0===a?function(e){return Me(e)?"styled."+e:"Styled("+S(e)+")"}(e):a,s=t.componentId,c=void 0===s?function(e,t,n){var r="string"!=typeof t?"sc":Pe(t),o=($e[r]||0)+1;$e[r]=o;var a=r+"-"+e.generateName(r+o);return n?n+"-"+a:a}(Se,t.displayName,t.parentComponentId):s,u=t.ParentComponent,f=void 0===u?qe:u,p=t.attrs,h=void 0===p?O:p,m=t.displayName&&t.componentId?Pe(t.displayName)+"-"+t.componentId:t.componentId||c,b=r&&e.attrs?Array.prototype.concat(e.attrs,h).filter(Boolean):h,v=new Se(r?e.componentStyle.rules.concat(n):n,b,m),y=void 0,x=function(e,t){return l.a.createElement(f,g({},e,{forwardedComponent:y,forwardedRef:t}))};return x.displayName=i,(y=l.a.forwardRef(x)).displayName=i,y.attrs=b,y.componentStyle=v,y.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):O,y.styledComponentId=m,y.target=r?e.target:e,y.withComponent=function(e){var r=t.componentId,o=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(t,["componentId"]),a=r&&r+"-"+(Me(e)?e:Pe(S(e)));return Ze(e,g({},o,{attrs:b,componentId:a,ParentComponent:f}),n)},Object.defineProperty(y,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Object(d.a)(e.defaultProps,t):t}}),y.toString=function(){return"."+y.styledComponentId},o&&Ue(y,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),y}var Je=function(e){return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:k;if(!Object(u.isValidElementType)(n))throw new M(1,String(n));var o=function(){return t(n,r,ge.apply(void 0,arguments))};return o.withConfig=function(o){return e(t,n,g({},r,o))},o.attrs=function(o){return e(t,n,g({},r,{attrs:Array.prototype.concat(r.attrs,o).filter(Boolean)}))},o}(Ze,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){Je[e]=Je(e)}));!function(){function e(t,n){b(this,e),this.rules=t,this.componentId=n,this.isStatic=Oe(t,O),ue.master.hasId(n)||ue.master.deferredInject(n,[])}e.prototype.createStyles=function(e,t){var n=W(ve(this.rules,e,t),"");t.inject(this.componentId,n)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)}}();C&&(window.scCGSHMRCache={});var Qe=function(e){var t=l.a.forwardRef((function(t,n){return l.a.createElement(We,null,(function(r){var o=e.defaultProps,a=_e(t,r,o);return l.a.createElement(e,g({},t,{theme:a,ref:n}))}))}));return Ue(t,e),t.displayName="WithTheme("+S(e)+")",t};t.c=Je}).call(this,n(63))},function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a})),n.d(t,"e",(function(){return i})),n.d(t,"d",(function(){return s}));var r={PRIMARY:"#ABE2FB",SECONDARY:"#E6E6E6",DARKER_PRIMARY:"#87ceeb",OFF_WHITE:"#15181A",GREY:"#D3D3D3",RED:"#FF5E5E",DARK_GREY:"#535D63"},o=270,a=Math.PI/180,i={primary:r.PRIMARY,secondary:r.SECONDARY,detail:r.GREY,dark:!1},s={primary:r.PRIMARY,secondary:r.DARK_GREY,detail:r.DARK_GREY,dark:!0}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return a}));var r=n(30),o=function(e,t){return"daq-"+e+(t&&t.dark?"--dark":"--light")},a=function(e){return Object(r.a)(["className","id","setProps","style"],e)}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(71),a=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,a.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(95),a=(r=o)&&r.__esModule?r:{default:r};t.default=a.default||function(e){for(var t=1;t= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n// \nvar isPlainObject = (function (x) {\n return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x.constructor === Object;\n});\n\n// \nvar EMPTY_ARRAY = Object.freeze([]);\nvar EMPTY_OBJECT = Object.freeze({});\n\n// \nfunction isFunction(test) {\n return typeof test === 'function';\n}\n\n// \n\nfunction getComponentName(target) {\n return (process.env.NODE_ENV !== 'production' ? typeof target === 'string' && target : false) || target.displayName || target.name || 'Component';\n}\n\n// \nfunction isStatelessFunction(test) {\n return typeof test === 'function' && !(test.prototype && test.prototype.isReactComponent);\n}\n\n// \nfunction isStyledComponent(target) {\n return target && typeof target.styledComponentId === 'string';\n}\n\n// \n\nvar SC_ATTR = typeof process !== 'undefined' && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || 'data-styled';\n\nvar SC_VERSION_ATTR = 'data-styled-version';\n\nvar SC_STREAM_ATTR = 'data-styled-streamed';\n\nvar IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\n\nvar DISABLE_SPEEDY = typeof SC_DISABLE_SPEEDY === 'boolean' && SC_DISABLE_SPEEDY || typeof process !== 'undefined' && (process.env.REACT_APP_SC_DISABLE_SPEEDY || process.env.SC_DISABLE_SPEEDY) || process.env.NODE_ENV !== 'production';\n\n// Shared empty execution context when generating static styles\nvar STATIC_EXECUTION_CONTEXT = {};\n\n// \n\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n */\nvar ERRORS = process.env.NODE_ENV !== 'production' ? {\n \"1\": \"Cannot create styled-component for component: %s.\\n\\n\",\n \"2\": \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n \"3\": \"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",\n \"4\": \"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",\n \"5\": \"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",\n \"6\": \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n \"7\": \"ThemeProvider: Please return an object from your \\\"theme\\\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n\",\n \"8\": \"ThemeProvider: Please make your \\\"theme\\\" prop an object.\\n\\n\",\n \"9\": \"Missing document ``\\n\\n\",\n \"10\": \"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",\n \"11\": \"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",\n \"12\": \"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",\n \"13\": \"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\"\n} : {};\n\n/**\n * super basic version of sprintf\n */\nfunction format() {\n var a = arguments.length <= 0 ? undefined : arguments[0];\n var b = [];\n\n for (var c = 1, len = arguments.length; c < len; c += 1) {\n b.push(arguments.length <= c ? undefined : arguments[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n\n return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n */\n\nvar StyledComponentsError = function (_Error) {\n inherits(StyledComponentsError, _Error);\n\n function StyledComponentsError(code) {\n classCallCheck(this, StyledComponentsError);\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV === 'production') {\n var _this = possibleConstructorReturn(this, _Error.call(this, 'An error occurred. See https://github.com/styled-components/styled-components/blob/master/packages/styled-components/src/utils/errors.md#' + code + ' for more information.' + (interpolations.length > 0 ? ' Additional arguments: ' + interpolations.join(', ') : '')));\n } else {\n var _this = possibleConstructorReturn(this, _Error.call(this, format.apply(undefined, [ERRORS[code]].concat(interpolations)).trim()));\n }\n return possibleConstructorReturn(_this);\n }\n\n return StyledComponentsError;\n}(Error);\n\n// \nvar SC_COMPONENT_ID = /^[^\\S\\n]*?\\/\\* sc-component-id:\\s*(\\S+)\\s+\\*\\//gm;\n\nvar extractComps = (function (maybeCSS) {\n var css = '' + (maybeCSS || ''); // Definitely a string, and a clone\n var existingComponents = [];\n css.replace(SC_COMPONENT_ID, function (match, componentId, matchIndex) {\n existingComponents.push({ componentId: componentId, matchIndex: matchIndex });\n return match;\n });\n return existingComponents.map(function (_ref, i) {\n var componentId = _ref.componentId,\n matchIndex = _ref.matchIndex;\n\n var nextComp = existingComponents[i + 1];\n var cssFromDOM = nextComp ? css.slice(matchIndex, nextComp.matchIndex) : css.slice(matchIndex);\n return { componentId: componentId, cssFromDOM: cssFromDOM };\n });\n});\n\n// \n\nvar COMMENT_REGEX = /^\\s*\\/\\/.*$/gm;\n\n// NOTE: This stylis instance is only used to split rules from SSR'd style tags\nvar stylisSplitter = new Stylis({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: false,\n compress: false,\n semicolon: true\n});\n\nvar stylis = new Stylis({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: true,\n compress: false,\n semicolon: false // NOTE: This means \"autocomplete missing semicolons\"\n});\n\n// Wrap `insertRulePlugin to build a list of rules,\n// and then make our own plugin to return the rules. This\n// makes it easier to hook into the existing SSR architecture\n\nvar parsingRules = [];\n\n// eslint-disable-next-line consistent-return\nvar returnRulesPlugin = function returnRulesPlugin(context) {\n if (context === -2) {\n var parsedRules = parsingRules;\n parsingRules = [];\n return parsedRules;\n }\n};\n\nvar parseRulesPlugin = _insertRulePlugin(function (rule) {\n parsingRules.push(rule);\n});\n\nvar _componentId = void 0;\nvar _selector = void 0;\nvar _selectorRegexp = void 0;\n\nvar selfReferenceReplacer = function selfReferenceReplacer(match, offset, string) {\n if (\n // the first self-ref is always untouched\n offset > 0 &&\n // there should be at least two self-refs to do a replacement (.b > .b)\n string.slice(0, offset).indexOf(_selector) !== -1 &&\n // no consecutive self refs (.b.b); that is a precedence boost and treated differently\n string.slice(offset - _selector.length, offset) !== _selector) {\n return '.' + _componentId;\n }\n\n return match;\n};\n\n/**\n * When writing a style like\n *\n * & + & {\n * color: red;\n * }\n *\n * The second ampersand should be a reference to the static component class. stylis\n * has no knowledge of static class so we have to intelligently replace the base selector.\n */\nvar selfReferenceReplacementPlugin = function selfReferenceReplacementPlugin(context, _, selectors) {\n if (context === 2 && selectors.length && selectors[0].lastIndexOf(_selector) > 0) {\n // eslint-disable-next-line no-param-reassign\n selectors[0] = selectors[0].replace(_selectorRegexp, selfReferenceReplacer);\n }\n};\n\nstylis.use([selfReferenceReplacementPlugin, parseRulesPlugin, returnRulesPlugin]);\nstylisSplitter.use([parseRulesPlugin, returnRulesPlugin]);\n\nvar splitByRules = function splitByRules(css) {\n return stylisSplitter('', css);\n};\n\nfunction stringifyRules(rules, selector, prefix) {\n var componentId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '&';\n\n var flatCSS = rules.join('').replace(COMMENT_REGEX, ''); // replace JS comments\n\n var cssStr = selector && prefix ? prefix + ' ' + selector + ' { ' + flatCSS + ' }' : flatCSS;\n\n // stylis has no concept of state to be passed to plugins\n // but since JS is single=threaded, we can rely on that to ensure\n // these properties stay in sync with the current stylis run\n _componentId = componentId;\n _selector = selector;\n _selectorRegexp = new RegExp('\\\\' + _selector + '\\\\b', 'g');\n\n return stylis(prefix || !selector ? '' : selector, cssStr);\n}\n\n// \n/* eslint-disable camelcase, no-undef */\n\nvar getNonce = (function () {\n return typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n});\n\n// \n/* These are helpers for the StyleTags to keep track of the injected\n * rule names for each (component) ID that they're keeping track of.\n * They're crucial for detecting whether a name has already been\n * injected.\n * (This excludes rehydrated names) */\n\n/* adds a new ID:name pairing to a names dictionary */\nvar addNameForId = function addNameForId(names, id, name) {\n if (name) {\n // eslint-disable-next-line no-param-reassign\n var namesForId = names[id] || (names[id] = Object.create(null));\n namesForId[name] = true;\n }\n};\n\n/* resets an ID entirely by overwriting it in the dictionary */\nvar resetIdNames = function resetIdNames(names, id) {\n // eslint-disable-next-line no-param-reassign\n names[id] = Object.create(null);\n};\n\n/* factory for a names dictionary checking the existance of an ID:name pairing */\nvar hasNameForId = function hasNameForId(names) {\n return function (id, name) {\n return names[id] !== undefined && names[id][name];\n };\n};\n\n/* stringifies names for the html/element output */\nvar stringifyNames = function stringifyNames(names) {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in names) {\n str += Object.keys(names[id]).join(' ') + ' ';\n }\n return str.trim();\n};\n\n/* clones the nested names dictionary */\nvar cloneNames = function cloneNames(names) {\n var clone = Object.create(null);\n // eslint-disable-next-line guard-for-in\n for (var id in names) {\n clone[id] = _extends({}, names[id]);\n }\n return clone;\n};\n\n// \n\n/* These are helpers that deal with the insertRule (aka speedy) API\n * They are used in the StyleTags and specifically the speedy tag\n */\n\n/* retrieve a sheet for a given style tag */\nvar sheetForTag = function sheetForTag(tag) {\n // $FlowFixMe\n if (tag.sheet) return tag.sheet;\n\n /* Firefox quirk requires us to step through all stylesheets to find one owned by the given tag */\n var size = tag.ownerDocument.styleSheets.length;\n for (var i = 0; i < size; i += 1) {\n var sheet = tag.ownerDocument.styleSheets[i];\n // $FlowFixMe\n if (sheet.ownerNode === tag) return sheet;\n }\n\n /* we should always be able to find a tag */\n throw new StyledComponentsError(10);\n};\n\n/* insert a rule safely and return whether it was actually injected */\nvar safeInsertRule = function safeInsertRule(sheet, cssRule, index) {\n /* abort early if cssRule string is falsy */\n if (!cssRule) return false;\n\n var maxIndex = sheet.cssRules.length;\n\n try {\n /* use insertRule and cap passed index with maxIndex (no of cssRules) */\n sheet.insertRule(cssRule, index <= maxIndex ? index : maxIndex);\n } catch (err) {\n /* any error indicates an invalid rule */\n return false;\n }\n\n return true;\n};\n\n/* deletes `size` rules starting from `removalIndex` */\nvar deleteRules = function deleteRules(sheet, removalIndex, size) {\n var lowerBound = removalIndex - size;\n for (var i = removalIndex; i > lowerBound; i -= 1) {\n sheet.deleteRule(i);\n }\n};\n\n// \n\n/* this marker separates component styles and is important for rehydration */\nvar makeTextMarker = function makeTextMarker(id) {\n return '\\n/* sc-component-id: ' + id + ' */\\n';\n};\n\n/* add up all numbers in array up until and including the index */\nvar addUpUntilIndex = function addUpUntilIndex(sizes, index) {\n var totalUpToIndex = 0;\n for (var i = 0; i <= index; i += 1) {\n totalUpToIndex += sizes[i];\n }\n\n return totalUpToIndex;\n};\n\n/* create a new style tag after lastEl */\nvar makeStyleTag = function makeStyleTag(target, tagEl, insertBefore) {\n var targetDocument = document;\n if (target) targetDocument = target.ownerDocument;else if (tagEl) targetDocument = tagEl.ownerDocument;\n\n var el = targetDocument.createElement('style');\n el.setAttribute(SC_ATTR, '');\n el.setAttribute(SC_VERSION_ATTR, \"4.4.0\");\n\n var nonce = getNonce();\n if (nonce) {\n el.setAttribute('nonce', nonce);\n }\n\n /* Work around insertRule quirk in EdgeHTML */\n el.appendChild(targetDocument.createTextNode(''));\n\n if (target && !tagEl) {\n /* Append to target when no previous element was passed */\n target.appendChild(el);\n } else {\n if (!tagEl || !target || !tagEl.parentNode) {\n throw new StyledComponentsError(6);\n }\n\n /* Insert new style tag after the previous one */\n tagEl.parentNode.insertBefore(el, insertBefore ? tagEl : tagEl.nextSibling);\n }\n\n return el;\n};\n\n/* takes a css factory function and outputs an html styled tag factory */\nvar wrapAsHtmlTag = function wrapAsHtmlTag(css, names) {\n return function (additionalAttrs) {\n var nonce = getNonce();\n var attrs = [nonce && 'nonce=\"' + nonce + '\"', SC_ATTR + '=\"' + stringifyNames(names) + '\"', SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"', additionalAttrs];\n\n var htmlAttr = attrs.filter(Boolean).join(' ');\n return '';\n };\n};\n\n/* takes a css factory function and outputs an element factory */\nvar wrapAsElement = function wrapAsElement(css, names) {\n return function () {\n var _props;\n\n var props = (_props = {}, _props[SC_ATTR] = stringifyNames(names), _props[SC_VERSION_ATTR] = \"4.4.0\", _props);\n\n var nonce = getNonce();\n if (nonce) {\n // $FlowFixMe\n props.nonce = nonce;\n }\n\n // eslint-disable-next-line react/no-danger\n return React.createElement('style', _extends({}, props, { dangerouslySetInnerHTML: { __html: css() } }));\n };\n};\n\nvar getIdsFromMarkersFactory = function getIdsFromMarkersFactory(markers) {\n return function () {\n return Object.keys(markers);\n };\n};\n\n/* speedy tags utilise insertRule */\nvar makeSpeedyTag = function makeSpeedyTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var sizes = [];\n\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = sizes.length;\n sizes.push(0);\n resetIdNames(names, id);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var sheet = sheetForTag(el);\n var insertIndex = addUpUntilIndex(sizes, marker);\n\n var injectedRules = 0;\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = cssRules[i];\n var mayHaveImport = extractImport; /* @import rules are reordered to appear first */\n if (mayHaveImport && cssRule.indexOf('@import') !== -1) {\n importRules.push(cssRule);\n } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n mayHaveImport = false;\n injectedRules += 1;\n }\n }\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n\n sizes[marker] += injectedRules; /* add up no of injected rules */\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n // $FlowFixMe\n if (el.isConnected === false) return;\n\n var size = sizes[marker];\n var sheet = sheetForTag(el);\n var removalIndex = addUpUntilIndex(sizes, marker) - 1;\n deleteRules(sheet, removalIndex, size);\n sizes[marker] = 0;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var _sheetForTag = sheetForTag(el),\n cssRules = _sheetForTag.cssRules;\n\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += makeTextMarker(id);\n var marker = markers[id];\n var end = addUpUntilIndex(sizes, marker);\n var size = sizes[marker];\n for (var i = end - size; i < end; i += 1) {\n var rule = cssRules[i];\n if (rule !== undefined) {\n str += rule.cssText;\n }\n }\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeTextNode = function makeTextNode(targetDocument, id) {\n return targetDocument.createTextNode(makeTextMarker(id));\n};\n\nvar makeBrowserTag = function makeBrowserTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n\n var extractImport = getImportRuleTag !== undefined;\n\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = makeTextNode(el.ownerDocument, id);\n el.appendChild(markers[id]);\n names[id] = Object.create(null);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var rule = cssRules[i];\n var mayHaveImport = extractImport;\n if (mayHaveImport && rule.indexOf('@import') !== -1) {\n importRules.push(rule);\n } else {\n mayHaveImport = false;\n var separator = i === cssRulesSize - 1 ? '' : ' ';\n marker.appendData('' + rule + separator);\n }\n }\n\n addNameForId(names, id, name);\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n\n /* create new empty text node and replace the current one */\n var newMarker = makeTextNode(el.ownerDocument, id);\n el.replaceChild(newMarker, marker);\n markers[id] = newMarker;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += markers[id].data;\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeServerTag = function makeServerTag(namesArg, markersArg) {\n var names = namesArg === undefined ? Object.create(null) : namesArg;\n var markers = markersArg === undefined ? Object.create(null) : markersArg;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n return markers[id] = [''];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n marker[0] += cssRules.join(' ');\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n marker[0] = '';\n resetIdNames(names, id);\n };\n\n var css = function css() {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n var cssForId = markers[id][0];\n if (cssForId) {\n str += makeTextMarker(id) + cssForId;\n }\n }\n return str;\n };\n\n var clone = function clone() {\n var namesClone = cloneNames(names);\n var markersClone = Object.create(null);\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n markersClone[id] = [markers[id][0]];\n }\n\n return makeServerTag(namesClone, markersClone);\n };\n\n var tag = {\n clone: clone,\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: null,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n\n return tag;\n};\n\nvar makeTag = function makeTag(target, tagEl, forceServer, insertBefore, getImportRuleTag) {\n if (IS_BROWSER && !forceServer) {\n var el = makeStyleTag(target, tagEl, insertBefore);\n\n if (DISABLE_SPEEDY) {\n return makeBrowserTag(el, getImportRuleTag);\n } else {\n return makeSpeedyTag(el, getImportRuleTag);\n }\n }\n\n return makeServerTag();\n};\n\nvar rehydrate = function rehydrate(tag, els, extracted) {\n /* add all extracted components to the new tag */\n for (var i = 0, len = extracted.length; i < len; i += 1) {\n var _extracted$i = extracted[i],\n componentId = _extracted$i.componentId,\n cssFromDOM = _extracted$i.cssFromDOM;\n\n var cssRules = splitByRules(cssFromDOM);\n tag.insertRules(componentId, cssRules);\n }\n\n /* remove old HTMLStyleElements, since they have been rehydrated */\n for (var _i = 0, _len = els.length; _i < _len; _i += 1) {\n var el = els[_i];\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n};\n\n// \n\nvar SPLIT_REGEX = /\\s+/;\n\n/* determine the maximum number of components before tags are sharded */\nvar MAX_SIZE = void 0;\nif (IS_BROWSER) {\n /* in speedy mode we can keep a lot more rules in a sheet before a slowdown can be expected */\n MAX_SIZE = DISABLE_SPEEDY ? 40 : 1000;\n} else {\n /* for servers we do not need to shard at all */\n MAX_SIZE = -1;\n}\n\nvar sheetRunningId = 0;\nvar master = void 0;\n\nvar StyleSheet = function () {\n\n /* a map from ids to tags */\n\n /* deferred rules for a given id */\n\n /* this is used for not reinjecting rules via hasNameForId() */\n\n /* when rules for an id are removed using remove() we have to ignore rehydratedNames for it */\n\n /* a list of tags belonging to this StyleSheet */\n\n /* a tag for import rules */\n\n /* current capacity until a new tag must be created */\n\n /* children (aka clones) of this StyleSheet inheriting all and future injections */\n\n function StyleSheet() {\n var _this = this;\n\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : IS_BROWSER ? document.head : null;\n var forceServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n classCallCheck(this, StyleSheet);\n\n this.getImportRuleTag = function () {\n var importRuleTag = _this.importRuleTag;\n\n if (importRuleTag !== undefined) {\n return importRuleTag;\n }\n\n var firstTag = _this.tags[0];\n var insertBefore = true;\n\n return _this.importRuleTag = makeTag(_this.target, firstTag ? firstTag.styleTag : null, _this.forceServer, insertBefore);\n };\n\n sheetRunningId += 1;\n this.id = sheetRunningId;\n this.forceServer = forceServer;\n this.target = forceServer ? null : target;\n this.tagMap = {};\n this.deferred = {};\n this.rehydratedNames = {};\n this.ignoreRehydratedNames = {};\n this.tags = [];\n this.capacity = 1;\n this.clones = [];\n }\n\n /* rehydrate all SSR'd style tags */\n\n\n StyleSheet.prototype.rehydrate = function rehydrate$$1() {\n if (!IS_BROWSER || this.forceServer) return this;\n\n var els = [];\n var extracted = [];\n var isStreamed = false;\n\n /* retrieve all of our SSR style elements from the DOM */\n var nodes = document.querySelectorAll('style[' + SC_ATTR + '][' + SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"]');\n\n var nodesSize = nodes.length;\n\n /* abort rehydration if no previous style tags were found */\n if (!nodesSize) return this;\n\n for (var i = 0; i < nodesSize; i += 1) {\n var el = nodes[i];\n\n /* check if style tag is a streamed tag */\n if (!isStreamed) isStreamed = !!el.getAttribute(SC_STREAM_ATTR);\n\n /* retrieve all component names */\n var elNames = (el.getAttribute(SC_ATTR) || '').trim().split(SPLIT_REGEX);\n var elNamesSize = elNames.length;\n for (var j = 0, name; j < elNamesSize; j += 1) {\n name = elNames[j];\n /* add rehydrated name to sheet to avoid re-adding styles */\n this.rehydratedNames[name] = true;\n }\n\n /* extract all components and their CSS */\n extracted.push.apply(extracted, extractComps(el.textContent));\n\n /* store original HTMLStyleElement */\n els.push(el);\n }\n\n /* abort rehydration if nothing was extracted */\n var extractedSize = extracted.length;\n if (!extractedSize) return this;\n\n /* create a tag to be used for rehydration */\n var tag = this.makeTag(null);\n\n rehydrate(tag, els, extracted);\n\n /* reset capacity and adjust MAX_SIZE by the initial size of the rehydration */\n this.capacity = Math.max(1, MAX_SIZE - extractedSize);\n this.tags.push(tag);\n\n /* retrieve all component ids */\n for (var _j = 0; _j < extractedSize; _j += 1) {\n this.tagMap[extracted[_j].componentId] = tag;\n }\n\n return this;\n };\n\n /* retrieve a \"master\" instance of StyleSheet which is typically used when no other is available\n * The master StyleSheet is targeted by createGlobalStyle, keyframes, and components outside of any\n * StyleSheetManager's context */\n\n\n /* reset the internal \"master\" instance */\n StyleSheet.reset = function reset() {\n var forceServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n master = new StyleSheet(undefined, forceServer).rehydrate();\n };\n\n /* adds \"children\" to the StyleSheet that inherit all of the parents' rules\n * while their own rules do not affect the parent */\n\n\n StyleSheet.prototype.clone = function clone() {\n var sheet = new StyleSheet(this.target, this.forceServer);\n\n /* add to clone array */\n this.clones.push(sheet);\n\n /* clone all tags */\n sheet.tags = this.tags.map(function (tag) {\n var ids = tag.getIds();\n var newTag = tag.clone();\n\n /* reconstruct tagMap */\n for (var i = 0; i < ids.length; i += 1) {\n sheet.tagMap[ids[i]] = newTag;\n }\n\n return newTag;\n });\n\n /* clone other maps */\n sheet.rehydratedNames = _extends({}, this.rehydratedNames);\n sheet.deferred = _extends({}, this.deferred);\n\n return sheet;\n };\n\n /* force StyleSheet to create a new tag on the next injection */\n\n\n StyleSheet.prototype.sealAllTags = function sealAllTags() {\n this.capacity = 1;\n\n this.tags.forEach(function (tag) {\n // eslint-disable-next-line no-param-reassign\n tag.sealed = true;\n });\n };\n\n StyleSheet.prototype.makeTag = function makeTag$$1(tag) {\n var lastEl = tag ? tag.styleTag : null;\n var insertBefore = false;\n\n return makeTag(this.target, lastEl, this.forceServer, insertBefore, this.getImportRuleTag);\n };\n\n /* get a tag for a given componentId, assign the componentId to one, or shard */\n StyleSheet.prototype.getTagForId = function getTagForId(id) {\n /* simply return a tag, when the componentId was already assigned one */\n var prev = this.tagMap[id];\n if (prev !== undefined && !prev.sealed) {\n return prev;\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n /* shard (create a new tag) if the tag is exhausted (See MAX_SIZE) */\n this.capacity -= 1;\n\n if (this.capacity === 0) {\n this.capacity = MAX_SIZE;\n tag = this.makeTag(tag);\n this.tags.push(tag);\n }\n\n return this.tagMap[id] = tag;\n };\n\n /* mainly for createGlobalStyle to check for its id */\n\n\n StyleSheet.prototype.hasId = function hasId(id) {\n return this.tagMap[id] !== undefined;\n };\n\n /* caching layer checking id+name to already have a corresponding tag and injected rules */\n\n\n StyleSheet.prototype.hasNameForId = function hasNameForId(id, name) {\n /* exception for rehydrated names which are checked separately */\n if (this.ignoreRehydratedNames[id] === undefined && this.rehydratedNames[name]) {\n return true;\n }\n\n var tag = this.tagMap[id];\n return tag !== undefined && tag.hasNameForId(id, name);\n };\n\n /* registers a componentId and registers it on its tag */\n\n\n StyleSheet.prototype.deferredInject = function deferredInject(id, cssRules) {\n /* don't inject when the id is already registered */\n if (this.tagMap[id] !== undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].deferredInject(id, cssRules);\n }\n\n this.getTagForId(id).insertMarker(id);\n this.deferred[id] = cssRules;\n };\n\n /* injects rules for a given id with a name that will need to be cached */\n\n\n StyleSheet.prototype.inject = function inject(id, cssRules, name) {\n var clones = this.clones;\n\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].inject(id, cssRules, name);\n }\n\n var tag = this.getTagForId(id);\n\n /* add deferred rules for component */\n if (this.deferred[id] !== undefined) {\n // Combine passed cssRules with previously deferred CSS rules\n // NOTE: We cannot mutate the deferred array itself as all clones\n // do the same (see clones[i].inject)\n var rules = this.deferred[id].concat(cssRules);\n tag.insertRules(id, rules, name);\n\n this.deferred[id] = undefined;\n } else {\n tag.insertRules(id, cssRules, name);\n }\n };\n\n /* removes all rules for a given id, which doesn't remove its marker but resets it */\n\n\n StyleSheet.prototype.remove = function remove(id) {\n var tag = this.tagMap[id];\n if (tag === undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].remove(id);\n }\n\n /* remove all rules from the tag */\n tag.removeRules(id);\n\n /* ignore possible rehydrated names */\n this.ignoreRehydratedNames[id] = true;\n\n /* delete possible deferred rules */\n this.deferred[id] = undefined;\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n var id = this.id;\n\n\n return this.tags.map(function (tag, i) {\n var key = 'sc-' + id + '-' + i;\n return cloneElement(tag.toElement(), { key: key });\n });\n };\n\n createClass(StyleSheet, null, [{\n key: 'master',\n get: function get$$1() {\n return master || (master = new StyleSheet().rehydrate());\n }\n\n /* NOTE: This is just for backwards-compatibility with jest-styled-components */\n\n }, {\n key: 'instance',\n get: function get$$1() {\n return StyleSheet.master;\n }\n }]);\n return StyleSheet;\n}();\n\n// \n\nvar Keyframes = function () {\n function Keyframes(name, rules) {\n var _this = this;\n\n classCallCheck(this, Keyframes);\n\n this.inject = function (styleSheet) {\n if (!styleSheet.hasNameForId(_this.id, _this.name)) {\n styleSheet.inject(_this.id, _this.rules, _this.name);\n }\n };\n\n this.toString = function () {\n throw new StyledComponentsError(12, String(_this.name));\n };\n\n this.name = name;\n this.rules = rules;\n\n this.id = 'sc-keyframes-' + name;\n }\n\n Keyframes.prototype.getName = function getName() {\n return this.name;\n };\n\n return Keyframes;\n}();\n\n// \n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\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 * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return string.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\n// \n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nfunction addUnitIfNeeded(name, value) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n}\n\n// \n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nvar isFalsish = function isFalsish(chunk) {\n return chunk === undefined || chunk === null || chunk === false || chunk === '';\n};\n\nvar objToCssArray = function objToCssArray(obj, prevKey) {\n var rules = [];\n var keys = Object.keys(obj);\n\n keys.forEach(function (key) {\n if (!isFalsish(obj[key])) {\n if (isPlainObject(obj[key])) {\n rules.push.apply(rules, objToCssArray(obj[key], key));\n\n return rules;\n } else if (isFunction(obj[key])) {\n rules.push(hyphenateStyleName(key) + ':', obj[key], ';');\n\n return rules;\n }\n rules.push(hyphenateStyleName(key) + ': ' + addUnitIfNeeded(key, obj[key]) + ';');\n }\n return rules;\n });\n\n return prevKey ? [prevKey + ' {'].concat(rules, ['}']) : rules;\n};\n\nfunction flatten(chunk, executionContext, styleSheet) {\n if (Array.isArray(chunk)) {\n var ruleSet = [];\n\n for (var i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet);\n\n if (result === null) continue;else if (Array.isArray(result)) ruleSet.push.apply(ruleSet, result);else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return null;\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return '.' + chunk.styledComponentId;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n var _result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(_result)) {\n // eslint-disable-next-line no-console\n console.warn(getComponentName(chunk) + ' is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.');\n }\n\n return flatten(_result, executionContext, styleSheet);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet);\n return chunk.getName();\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n}\n\n// \n\nfunction css(styles) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return flatten(interleave(EMPTY_ARRAY, [styles].concat(interpolations)));\n }\n\n // $FlowFixMe\n return flatten(interleave(styles, interpolations));\n}\n\n// \n\nfunction constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n if (!isValidElementType(tag)) {\n throw new StyledComponentsError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n var templateFunction = function templateFunction() {\n return componentConstructor(tag, options, css.apply(undefined, arguments));\n };\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean)\n }));\n };\n\n return templateFunction;\n}\n\n// \n// Source: https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash(c) {\n for (var e = c.length | 0, a = e | 0, d = 0, b; e >= 4;) {\n b = c.charCodeAt(d) & 255 | (c.charCodeAt(++d) & 255) << 8 | (c.charCodeAt(++d) & 255) << 16 | (c.charCodeAt(++d) & 255) << 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), b ^= b >>> 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16) ^ b, e -= 4, ++d;\n }\n switch (e) {\n case 3:\n a ^= (c.charCodeAt(d + 2) & 255) << 16;\n case 2:\n a ^= (c.charCodeAt(d + 1) & 255) << 8;\n case 1:\n a ^= c.charCodeAt(d) & 255, a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n }\n a ^= a >>> 13;\n a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n return (a ^ a >>> 15) >>> 0;\n}\n\n// \n/* eslint-disable no-bitwise */\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nvar charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nvar getAlphabeticChar = function getAlphabeticChar(code) {\n return String.fromCharCode(code + (code > 25 ? 39 : 97));\n};\n\n/* input a number, usually a hash and convert it to base-52 */\nfunction generateAlphabeticName(code) {\n var name = '';\n var x = void 0;\n\n /* get a char and divide by alphabet-length */\n for (x = code; x > charsLength; x = Math.floor(x / charsLength)) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return getAlphabeticChar(x % charsLength) + name;\n}\n\n// \n\nfunction hasFunctionObjectKey(obj) {\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in obj) {\n if (isFunction(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isStaticRules(rules, attrs) {\n for (var i = 0; i < rules.length; i += 1) {\n var rule = rules[i];\n\n // recursive case\n if (Array.isArray(rule) && !isStaticRules(rule, attrs)) {\n return false;\n } else if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n if (attrs.some(function (x) {\n return isFunction(x) || hasFunctionObjectKey(x);\n })) return false;\n\n return true;\n}\n\n// \n\n/* combines hashStr (murmurhash) and nameGenerator for convenience */\nvar hasher = function hasher(str) {\n return generateAlphabeticName(murmurhash(str));\n};\n\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\n\nvar ComponentStyle = function () {\n function ComponentStyle(rules, attrs, componentId) {\n classCallCheck(this, ComponentStyle);\n\n this.rules = rules;\n this.isStatic = process.env.NODE_ENV === 'production' && isStaticRules(rules, attrs);\n this.componentId = componentId;\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n\n\n ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) {\n var isStatic = this.isStatic,\n componentId = this.componentId,\n lastClassName = this.lastClassName;\n\n if (IS_BROWSER && isStatic && typeof lastClassName === 'string' && styleSheet.hasNameForId(componentId, lastClassName)) {\n return lastClassName;\n }\n\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var name = hasher(this.componentId + flatCSS.join(''));\n if (!styleSheet.hasNameForId(componentId, name)) {\n styleSheet.inject(this.componentId, stringifyRules(flatCSS, '.' + name, undefined, componentId), name);\n }\n\n this.lastClassName = name;\n return name;\n };\n\n ComponentStyle.generateName = function generateName(str) {\n return hasher(str);\n };\n\n return ComponentStyle;\n}();\n\n// \n\nvar LIMIT = 200;\n\nvar createWarnTooManyClasses = (function (displayName) {\n var generatedClasses = {};\n var warningSeen = false;\n\n return function (className) {\n if (!warningSeen) {\n generatedClasses[className] = true;\n if (Object.keys(generatedClasses).length >= LIMIT) {\n // Unable to find latestRule in test environment.\n /* eslint-disable no-console, prefer-template */\n console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \\n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\\n' + 'Example:\\n' + ' const Component = styled.div.attrs(props => ({\\n' + ' style: {\\n' + ' background: props.background,\\n' + ' },\\n' + ' }))`width: 100%;`\\n\\n' + ' ');\n warningSeen = true;\n generatedClasses = {};\n }\n }\n };\n});\n\n// \n\nvar determineTheme = (function (props, fallbackTheme) {\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types, flowtype-errors/show-errors */\n var isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;\n /* eslint-enable */\n\n return theme;\n});\n\n// \nvar escapeRegex = /[[\\].#*$><+~=|^:(),\"'`-]+/g;\nvar dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nfunction escape(str) {\n return str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n\n// \n\nfunction isTag(target) {\n return typeof target === 'string' && (process.env.NODE_ENV !== 'production' ? target.charAt(0) === target.charAt(0).toLowerCase() : true);\n}\n\n// \n\nfunction generateDisplayName(target) {\n // $FlowFixMe\n return isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')';\n}\n\nvar _TYPE_STATICS;\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDerivedStateFromProps: true,\n propTypes: true,\n type: true\n};\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};\n\nvar TYPE_STATICS = (_TYPE_STATICS = {}, _TYPE_STATICS[ForwardRef] = {\n $$typeof: true,\n render: true\n}, _TYPE_STATICS);\n\nvar defineProperty$1 = Object.defineProperty,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n _Object$getOwnPropert = Object.getOwnPropertySymbols,\n getOwnPropertySymbols = _Object$getOwnPropert === undefined ? function () {\n return [];\n} : _Object$getOwnPropert,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getPrototypeOf = Object.getPrototypeOf,\n objectPrototype = Object.prototype;\nvar arrayPrototype = Array.prototype;\n\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n\n var keys = arrayPrototype.concat(getOwnPropertyNames(sourceComponent),\n // $FlowFixMe\n getOwnPropertySymbols(sourceComponent));\n\n var targetStatics = TYPE_STATICS[targetComponent.$$typeof] || REACT_STATICS;\n\n var sourceStatics = TYPE_STATICS[sourceComponent.$$typeof] || REACT_STATICS;\n\n var i = keys.length;\n var descriptor = void 0;\n var key = void 0;\n\n // eslint-disable-next-line no-plusplus\n while (i--) {\n key = keys[i];\n\n if (\n // $FlowFixMe\n !KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) &&\n // $FlowFixMe\n !(targetStatics && targetStatics[key])) {\n descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n if (descriptor) {\n try {\n // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {\n /* fail silently */\n }\n }\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\n// \nfunction isDerivedReactComponent(fn) {\n return !!(fn && fn.prototype && fn.prototype.isReactComponent);\n}\n\n// \n// Helper to call a given function, only once\nvar once = (function (cb) {\n var called = false;\n\n return function () {\n if (!called) {\n called = true;\n cb.apply(undefined, arguments);\n }\n };\n});\n\n// \n\nvar ThemeContext = createContext();\n\nvar ThemeConsumer = ThemeContext.Consumer;\n\n/**\n * Provide a theme to an entire react component tree via context\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider(props) {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext.bind(_this));\n _this.renderInner = _this.renderInner.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) return null;\n\n return React.createElement(\n ThemeContext.Consumer,\n null,\n this.renderInner\n );\n };\n\n ThemeProvider.prototype.renderInner = function renderInner(outerTheme) {\n var context = this.getContext(this.props.theme, outerTheme);\n\n return React.createElement(\n ThemeContext.Provider,\n { value: context },\n this.props.children\n );\n };\n\n /**\n * Get the theme from the props, supporting both (outerTheme) => {}\n * as well as object notation\n */\n\n\n ThemeProvider.prototype.getTheme = function getTheme(theme, outerTheme) {\n if (isFunction(theme)) {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme === null || Array.isArray(mergedTheme) || (typeof mergedTheme === 'undefined' ? 'undefined' : _typeof(mergedTheme)) !== 'object')) {\n throw new StyledComponentsError(7);\n }\n\n return mergedTheme;\n }\n\n if (theme === null || Array.isArray(theme) || (typeof theme === 'undefined' ? 'undefined' : _typeof(theme)) !== 'object') {\n throw new StyledComponentsError(8);\n }\n\n return _extends({}, outerTheme, theme);\n };\n\n ThemeProvider.prototype.getContext = function getContext(theme, outerTheme) {\n return this.getTheme(theme, outerTheme);\n };\n\n return ThemeProvider;\n}(Component);\n\n// \n\nvar CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nvar ServerStyleSheet = function () {\n function ServerStyleSheet() {\n classCallCheck(this, ServerStyleSheet);\n\n /* The master sheet might be reset, so keep a reference here */\n this.masterSheet = StyleSheet.master;\n this.instance = this.masterSheet.clone();\n this.sealed = false;\n }\n\n /**\n * Mark the ServerStyleSheet as being fully emitted and manually GC it from the\n * StyleSheet singleton.\n */\n\n\n ServerStyleSheet.prototype.seal = function seal() {\n if (!this.sealed) {\n /* Remove sealed StyleSheets from the master sheet */\n var index = this.masterSheet.clones.indexOf(this.instance);\n this.masterSheet.clones.splice(index, 1);\n this.sealed = true;\n }\n };\n\n ServerStyleSheet.prototype.collectStyles = function collectStyles(children) {\n if (this.sealed) {\n throw new StyledComponentsError(2);\n }\n\n return React.createElement(\n StyleSheetManager,\n { sheet: this.instance },\n children\n );\n };\n\n ServerStyleSheet.prototype.getStyleTags = function getStyleTags() {\n this.seal();\n return this.instance.toHTML();\n };\n\n ServerStyleSheet.prototype.getStyleElement = function getStyleElement() {\n this.seal();\n return this.instance.toReactElements();\n };\n\n ServerStyleSheet.prototype.interleaveWithNodeStream = function interleaveWithNodeStream(readableStream) {\n var _this = this;\n\n {\n throw new StyledComponentsError(3);\n }\n\n /* the tag index keeps track of which tags have already been emitted */\n var instance = this.instance;\n\n var instanceTagIndex = 0;\n\n var streamAttr = SC_STREAM_ATTR + '=\"true\"';\n\n var transformer = new stream.Transform({\n transform: function appendStyleChunks(chunk, /* encoding */_, callback) {\n var tags = instance.tags;\n\n var html = '';\n\n /* retrieve html for each new style tag */\n for (; instanceTagIndex < tags.length; instanceTagIndex += 1) {\n var tag = tags[instanceTagIndex];\n html += tag.toHTML(streamAttr);\n }\n\n /* force our StyleSheets to emit entirely new tags */\n instance.sealAllTags();\n\n var renderedHtml = chunk.toString();\n\n /* prepend style html to chunk, unless the start of the chunk is a closing tag in which case append right after that */\n if (CLOSING_TAG_R.test(renderedHtml)) {\n var endOfClosingTag = renderedHtml.indexOf('>');\n\n this.push(renderedHtml.slice(0, endOfClosingTag + 1) + html + renderedHtml.slice(endOfClosingTag + 1));\n } else this.push(html + renderedHtml);\n\n callback();\n }\n });\n\n readableStream.on('end', function () {\n return _this.seal();\n });\n\n readableStream.on('error', function (err) {\n _this.seal();\n\n // forward the error to the transform stream\n transformer.emit('error', err);\n });\n\n return readableStream.pipe(transformer);\n };\n\n return ServerStyleSheet;\n}();\n\n// \n\nvar StyleSheetContext = createContext();\nvar StyleSheetConsumer = StyleSheetContext.Consumer;\n\nvar StyleSheetManager = function (_Component) {\n inherits(StyleSheetManager, _Component);\n\n function StyleSheetManager(props) {\n classCallCheck(this, StyleSheetManager);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext);\n return _this;\n }\n\n StyleSheetManager.prototype.getContext = function getContext(sheet, target) {\n if (sheet) {\n return sheet;\n } else if (target) {\n return new StyleSheet(target);\n } else {\n throw new StyledComponentsError(4);\n }\n };\n\n StyleSheetManager.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n sheet = _props.sheet,\n target = _props.target;\n\n\n return React.createElement(\n StyleSheetContext.Provider,\n { value: this.getContext(sheet, target) },\n process.env.NODE_ENV !== 'production' ? React.Children.only(children) : children\n );\n };\n\n return StyleSheetManager;\n}(Component);\nprocess.env.NODE_ENV !== \"production\" ? StyleSheetManager.propTypes = {\n sheet: PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]),\n\n target: PropTypes.shape({\n appendChild: PropTypes.func.isRequired\n })\n} : void 0;\n\n// \n\nvar THEME_PROP_REGEX = /\\.theme[.[]/;\nvar identifiers = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(_ComponentStyle, _displayName, parentComponentId) {\n var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName);\n\n /**\n * This ensures uniqueness if two components happen to share\n * the same displayName.\n */\n var nr = (identifiers[displayName] || 0) + 1;\n identifiers[displayName] = nr;\n\n var componentId = displayName + '-' + _ComponentStyle.generateName(displayName + nr);\n\n return parentComponentId ? parentComponentId + '-' + componentId : componentId;\n}\n\n// $FlowFixMe\n\nvar StyledComponent = function (_Component) {\n inherits(StyledComponent, _Component);\n\n function StyledComponent() {\n classCallCheck(this, StyledComponent);\n\n var _this = possibleConstructorReturn(this, _Component.call(this));\n\n _this.attrs = {};\n\n _this.renderOuter = _this.renderOuter.bind(_this);\n _this.renderInner = _this.renderInner.bind(_this);\n\n if (process.env.NODE_ENV !== 'production') {\n _this.warnInnerRef = once(function (displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('The \"innerRef\" API has been removed in styled-components v4 in favor of React 16 ref forwarding, use \"ref\" instead like a typical component. \"innerRef\" was detected on component \"' + displayName + '\".')\n );\n });\n\n _this.warnAttrsFnObjectKeyDeprecated = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('Functions as object-form attrs({}) keys are now deprecated and will be removed in a future version of styled-components. Switch to the new attrs(props => ({})) syntax instead for easier and more powerful composition. The attrs key in question is \"' + key + '\" on component \"' + displayName + '\".', '\\n ' + new Error().stack)\n );\n });\n\n _this.warnNonStyledComponentAttrsObjectKey = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('It looks like you\\'ve used a non styled-component as the value for the \"' + key + '\" prop in an object-form attrs constructor of \"' + displayName + '\".\\n' + 'You should use the new function-form attrs constructor which avoids this issue: attrs(props => ({ yourStuff }))\\n' + \"To continue using the deprecated object syntax, you'll need to wrap your component prop in a function to make it available inside the styled component (you'll still get the deprecation warning though.)\\n\" + ('For example, { ' + key + ': () => InnerComponent } instead of { ' + key + ': InnerComponent }'))\n );\n });\n }\n return _this;\n }\n\n StyledComponent.prototype.render = function render() {\n return React.createElement(\n StyleSheetConsumer,\n null,\n this.renderOuter\n );\n };\n\n StyledComponent.prototype.renderOuter = function renderOuter() {\n var styleSheet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : StyleSheet.master;\n\n this.styleSheet = styleSheet;\n\n // No need to subscribe a static component to theme changes, it won't change anything\n if (this.props.forwardedComponent.componentStyle.isStatic) return this.renderInner();\n\n return React.createElement(\n ThemeConsumer,\n null,\n this.renderInner\n );\n };\n\n StyledComponent.prototype.renderInner = function renderInner(theme) {\n var _props$forwardedCompo = this.props.forwardedComponent,\n componentStyle = _props$forwardedCompo.componentStyle,\n defaultProps = _props$forwardedCompo.defaultProps,\n displayName = _props$forwardedCompo.displayName,\n foldedComponentIds = _props$forwardedCompo.foldedComponentIds,\n styledComponentId = _props$forwardedCompo.styledComponentId,\n target = _props$forwardedCompo.target,\n usesTheme = _props$forwardedCompo.usesTheme;\n\n\n var generatedClassName = void 0;\n var rawTheme = void 0;\n\n if (componentStyle.isStatic) {\n generatedClassName = this.generateAndInjectStyles(EMPTY_OBJECT, this.props);\n } else {\n rawTheme = determineTheme(this.props, theme, defaultProps);\n generatedClassName = this.generateAndInjectStyles(rawTheme || EMPTY_OBJECT, this.props);\n\n if (process.env.NODE_ENV !== 'production' && usesTheme && !rawTheme) {\n console.error('Component \\'' +\n // $FlowFixMe\n displayName + '\\' (.' + styledComponentId + ') references the \\'theme\\' prop in its styles but no theme was provided via prop or .');\n }\n }\n\n var elementToBeCreated = this.props.as || this.attrs.as || target;\n var isTargetTag = isTag(elementToBeCreated);\n\n var propsForElement = {};\n var computedProps = _extends({}, this.props, this.attrs);\n\n var key = void 0;\n // eslint-disable-next-line guard-for-in\n for (key in computedProps) {\n if (process.env.NODE_ENV !== 'production' && key === 'innerRef' && isTargetTag) {\n this.warnInnerRef(displayName);\n }\n\n if (key === 'forwardedComponent' || key === 'as') {\n continue;\n } else if (key === 'forwardedRef') propsForElement.ref = computedProps[key];else if (key === 'forwardedAs') propsForElement.as = computedProps[key];else if (!isTargetTag || validAttr(key)) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (this.props.style && this.attrs.style) {\n propsForElement.style = _extends({}, this.attrs.style, this.props.style);\n }\n\n propsForElement.className = Array.prototype.concat(foldedComponentIds, styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : null, this.props.className, this.attrs.className).filter(Boolean).join(' ');\n\n return createElement(elementToBeCreated, propsForElement);\n };\n\n StyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props, attrs) {\n var _this2 = this;\n\n var context = _extends({}, props, { theme: theme });\n\n if (!attrs.length) return context;\n\n this.attrs = {};\n\n attrs.forEach(function (attrDef) {\n var resolvedAttrDef = attrDef;\n var attrDefWasFn = false;\n var attr = void 0;\n var key = void 0;\n\n if (isFunction(resolvedAttrDef)) {\n // $FlowFixMe\n resolvedAttrDef = resolvedAttrDef(context);\n attrDefWasFn = true;\n }\n\n /* eslint-disable guard-for-in */\n // $FlowFixMe\n for (key in resolvedAttrDef) {\n attr = resolvedAttrDef[key];\n\n if (!attrDefWasFn) {\n if (isFunction(attr) && !isDerivedReactComponent(attr) && !isStyledComponent(attr)) {\n if (process.env.NODE_ENV !== 'production') {\n _this2.warnAttrsFnObjectKeyDeprecated(key, props.forwardedComponent.displayName);\n }\n\n attr = attr(context);\n\n if (process.env.NODE_ENV !== 'production' && React.isValidElement(attr)) {\n _this2.warnNonStyledComponentAttrsObjectKey(key, props.forwardedComponent.displayName);\n }\n }\n }\n\n _this2.attrs[key] = attr;\n context[key] = attr;\n }\n /* eslint-enable */\n });\n\n return context;\n };\n\n StyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var _props$forwardedCompo2 = props.forwardedComponent,\n attrs = _props$forwardedCompo2.attrs,\n componentStyle = _props$forwardedCompo2.componentStyle,\n warnTooManyClasses = _props$forwardedCompo2.warnTooManyClasses;\n\n // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n\n if (componentStyle.isStatic && !attrs.length) {\n return componentStyle.generateAndInjectStyles(EMPTY_OBJECT, this.styleSheet);\n }\n\n var className = componentStyle.generateAndInjectStyles(this.buildExecutionContext(theme, props, attrs), this.styleSheet);\n\n if (process.env.NODE_ENV !== 'production' && warnTooManyClasses) warnTooManyClasses(className);\n\n return className;\n };\n\n return StyledComponent;\n}(Component);\n\nfunction createStyledComponent(target, options, rules) {\n var isTargetStyledComp = isStyledComponent(target);\n var isClass = !isTag(target);\n\n var _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? generateDisplayName(target) : _options$displayName,\n _options$componentId = options.componentId,\n componentId = _options$componentId === undefined ? generateId(ComponentStyle, options.displayName, options.parentComponentId) : _options$componentId,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? StyledComponent : _options$ParentCompon,\n _options$attrs = options.attrs,\n attrs = _options$attrs === undefined ? EMPTY_ARRAY : _options$attrs;\n\n\n var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n var finalAttrs =\n // $FlowFixMe\n isTargetStyledComp && target.attrs ? Array.prototype.concat(target.attrs, attrs).filter(Boolean) : attrs;\n\n var componentStyle = new ComponentStyle(isTargetStyledComp ? // fold the underlying StyledComponent rules up (implicit extend)\n // $FlowFixMe\n target.componentStyle.rules.concat(rules) : rules, finalAttrs, styledComponentId);\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n var WrappedStyledComponent = void 0;\n var forwardRef = function forwardRef(props, ref) {\n return React.createElement(ParentComponent, _extends({}, props, { forwardedComponent: WrappedStyledComponent, forwardedRef: ref }));\n };\n forwardRef.displayName = displayName;\n WrappedStyledComponent = React.forwardRef(forwardRef);\n WrappedStyledComponent.displayName = displayName;\n\n // $FlowFixMe\n WrappedStyledComponent.attrs = finalAttrs;\n // $FlowFixMe\n WrappedStyledComponent.componentStyle = componentStyle;\n\n // $FlowFixMe\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp ? // $FlowFixMe\n Array.prototype.concat(target.foldedComponentIds, target.styledComponentId) : EMPTY_ARRAY;\n\n // $FlowFixMe\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n // $FlowFixMe\n WrappedStyledComponent.target = isTargetStyledComp ? target.target : target;\n\n // $FlowFixMe\n WrappedStyledComponent.withComponent = function withComponent(tag) {\n var previousComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['componentId']);\n\n\n var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag)));\n\n var newOptions = _extends({}, optionsToCopy, {\n attrs: finalAttrs,\n componentId: newComponentId,\n ParentComponent: ParentComponent\n });\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n // $FlowFixMe\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get: function get$$1() {\n return this._foldedDefaultProps;\n },\n set: function set$$1(obj) {\n // $FlowFixMe\n this._foldedDefaultProps = isTargetStyledComp ? merge(target.defaultProps, obj) : obj;\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n WrappedStyledComponent.usesTheme = componentStyle.rules.some(function (x) {\n return isFunction(x) && THEME_PROP_REGEX.test(x.toString());\n });\n\n // $FlowFixMe\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName);\n }\n\n // $FlowFixMe\n WrappedStyledComponent.toString = function () {\n return '.' + WrappedStyledComponent.styledComponentId;\n };\n\n if (isClass) {\n hoistNonReactStatics(WrappedStyledComponent, target, {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n styledComponentId: true,\n target: true,\n withComponent: true\n });\n }\n\n return WrappedStyledComponent;\n}\n\n// \n// Thanks to ReactDOMFactories for this handy list!\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr',\n\n// SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'marker', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// \n\nvar styled = function styled(tag) {\n return constructWithOptions(createStyledComponent, tag);\n};\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(function (domElement) {\n styled[domElement] = styled(domElement);\n});\n\n// \n\nvar GlobalStyle = function () {\n function GlobalStyle(rules, componentId) {\n classCallCheck(this, GlobalStyle);\n\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules, EMPTY_ARRAY);\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n GlobalStyle.prototype.createStyles = function createStyles(executionContext, styleSheet) {\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var css = stringifyRules(flatCSS, '');\n\n styleSheet.inject(this.componentId, css);\n };\n\n GlobalStyle.prototype.removeStyles = function removeStyles(styleSheet) {\n var componentId = this.componentId;\n\n if (styleSheet.hasId(componentId)) {\n styleSheet.remove(componentId);\n }\n };\n\n // TODO: overwrite in-place instead of remove+create?\n\n\n GlobalStyle.prototype.renderStyles = function renderStyles(executionContext, styleSheet) {\n this.removeStyles(styleSheet);\n this.createStyles(executionContext, styleSheet);\n };\n\n return GlobalStyle;\n}();\n\n// \n\n// place our cache into shared context so it'll persist between HMRs\nif (IS_BROWSER) {\n window.scCGSHMRCache = {};\n}\n\nfunction createGlobalStyle(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var id = 'sc-global-' + murmurhash(JSON.stringify(rules));\n var style = new GlobalStyle(rules, id);\n\n var GlobalStyleComponent = function (_React$Component) {\n inherits(GlobalStyleComponent, _React$Component);\n\n function GlobalStyleComponent(props) {\n classCallCheck(this, GlobalStyleComponent);\n\n var _this = possibleConstructorReturn(this, _React$Component.call(this, props));\n\n var _this$constructor = _this.constructor,\n globalStyle = _this$constructor.globalStyle,\n styledComponentId = _this$constructor.styledComponentId;\n\n\n if (IS_BROWSER) {\n window.scCGSHMRCache[styledComponentId] = (window.scCGSHMRCache[styledComponentId] || 0) + 1;\n }\n\n /**\n * This fixes HMR compatibility. Don't ask me why, but this combination of\n * caching the closure variables via statics and then persisting the statics in\n * state works across HMR where no other combination did. ¯\\_(ツ)_/¯\n */\n _this.state = {\n globalStyle: globalStyle,\n styledComponentId: styledComponentId\n };\n return _this;\n }\n\n GlobalStyleComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n if (window.scCGSHMRCache[this.state.styledComponentId]) {\n window.scCGSHMRCache[this.state.styledComponentId] -= 1;\n }\n /**\n * Depending on the order \"render\" is called this can cause the styles to be lost\n * until the next render pass of the remaining instance, which may\n * not be immediate.\n */\n if (window.scCGSHMRCache[this.state.styledComponentId] === 0) {\n this.state.globalStyle.removeStyles(this.styleSheet);\n }\n };\n\n GlobalStyleComponent.prototype.render = function render() {\n var _this2 = this;\n\n if (process.env.NODE_ENV !== 'production' && React.Children.count(this.props.children)) {\n // eslint-disable-next-line no-console\n console.warn('The global style component ' + this.state.styledComponentId + ' was given child JSX. createGlobalStyle does not render children.');\n }\n\n return React.createElement(\n StyleSheetConsumer,\n null,\n function (styleSheet) {\n _this2.styleSheet = styleSheet || StyleSheet.master;\n\n var globalStyle = _this2.state.globalStyle;\n\n\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(STATIC_EXECUTION_CONTEXT, _this2.styleSheet);\n\n return null;\n } else {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = _this2.constructor.defaultProps;\n\n\n var context = _extends({}, _this2.props);\n\n if (typeof theme !== 'undefined') {\n context.theme = determineTheme(_this2.props, theme, defaultProps);\n }\n\n globalStyle.renderStyles(context, _this2.styleSheet);\n\n return null;\n }\n );\n }\n }\n );\n };\n\n return GlobalStyleComponent;\n }(React.Component);\n\n GlobalStyleComponent.globalStyle = style;\n GlobalStyleComponent.styledComponentId = id;\n\n\n return GlobalStyleComponent;\n}\n\n// \n\nvar replaceWhitespace = function replaceWhitespace(str) {\n return str.replace(/\\s|\\\\n/g, '');\n};\n\nfunction keyframes(strings) {\n /* Warning if you've used keyframes on React Native */\n if (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn('`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.');\n }\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n\n var name = generateAlphabeticName(murmurhash(replaceWhitespace(JSON.stringify(rules))));\n\n return new Keyframes(name, stringifyRules(rules, name, '@keyframes'));\n}\n\n// \n\nvar withTheme = (function (Component$$1) {\n var WithTheme = React.forwardRef(function (props, ref) {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = Component$$1.defaultProps;\n\n var themeProp = determineTheme(props, theme, defaultProps);\n\n if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + getComponentName(Component$$1) + '\"');\n }\n\n return React.createElement(Component$$1, _extends({}, props, { theme: themeProp, ref: ref }));\n }\n );\n });\n\n hoistNonReactStatics(WithTheme, Component$$1);\n\n WithTheme.displayName = 'WithTheme(' + getComponentName(Component$$1) + ')';\n\n return WithTheme;\n});\n\n// \n\n/* eslint-disable */\nvar __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS = {\n StyleSheet: StyleSheet\n};\n\n// \n\n/* Warning if you've imported this file on React Native */\nif (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like you've imported 'styled-components' on React Native.\\n\" + \"Perhaps you're looking to import 'styled-components/native'?\\n\" + 'Read more about this at https://www.styled-components.com/docs/basics#react-native');\n}\n\n/* Warning if there are several instances of styled-components */\nif (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test' && typeof window !== 'undefined' && typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Node.js') === -1 && navigator.userAgent.indexOf('jsdom') === -1) {\n window['__styled-components-init__'] = window['__styled-components-init__'] || 0;\n\n if (window['__styled-components-init__'] === 1) {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. \" + 'This may cause dynamic styles not rendering properly, errors happening during rehydration process ' + 'and makes your application bigger without a good reason.\\n\\n' + 'See https://s-c.sh/2BAXzed for more info.');\n }\n\n window['__styled-components-init__'] += 1;\n}\n\n//\n\nexport default styled;\nexport { createGlobalStyle, css, isStyledComponent, keyframes, ServerStyleSheet, StyleSheetConsumer, StyleSheetContext, StyleSheetManager, ThemeConsumer, ThemeContext, ThemeProvider, withTheme, __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS };\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","export const colors = {\n PRIMARY: '#ABE2FB',\n SECONDARY: '#E6E6E6',\n DARKER_PRIMARY: '#87ceeb',\n OFF_WHITE: '#15181A',\n GREY: '#D3D3D3',\n RED: '#FF5E5E',\n DARK_GREY: '#535D63'\n};\n\nexport const TRACK_TOTAL_DEG = 270.0;\n\nexport const RADIAN = Math.PI / 180.0;\n\nexport const light = {\n primary: colors.PRIMARY,\n secondary: colors.SECONDARY,\n detail: colors.GREY,\n dark: false\n};\n\nexport const dark = {\n primary: colors.PRIMARY,\n secondary: colors.DARK_GREY,\n detail: colors.DARK_GREY,\n dark: true\n};\n\nexport default {\n dark,\n light,\n colors\n};\n","import { omit } from 'ramda';\n\nexport const getClassName = (componentName, theme) => {\n return 'daq-' + componentName + (theme && theme.dark ? '--dark' : '--light');\n};\n\nexport const getFilteredProps = props => omit(['className', 'id', 'setProps', 'style'], props);\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(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};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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};","import React from 'react';\nimport styled from 'styled-components';\n\nimport Label from './Label.styled';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-around;\n flex-direction: column;\n ${({ fullSize }) => {\n if (fullSize) return 'width: 100%;';\n return '';\n }}\n`;\n\nfunction LabelContainer(props) {\n let labelText = props.label;\n let customLabelStyle = {};\n if (typeof props.label === 'object') {\n labelText = props.label.label;\n customLabelStyle = props.label.style;\n }\n const labelElement = \n // if (labelText && labelText.length) {\n return (\n \n {props.labelPosition == 'top' && labelElement}\n {props.children}\n {props.labelPosition != 'top' && labelElement}\n \n );\n // }\n // return
{props.children}
;\n}\n\nLabelContainer.defaultProps = {\n labelPosition: 'bottom'\n};\n\nexport default LabelContainer;\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = 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 (0, _defineProperty2.default)(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}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","(function() { module.exports = window[\"ReactDOM\"]; }());","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n\tvar _react = __webpack_require__(1);\n\n\tvar _react2 = _interopRequireDefault(_react);\n\n\tvar _propTypes = __webpack_require__(2);\n\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\tvar KEYCODE_UP = 38;\n\tvar KEYCODE_DOWN = 40;\n\tvar IS_BROWSER = typeof document != 'undefined';\n\tvar RE_NUMBER = /^[+-]?((\\.\\d+)|(\\d+(\\.\\d+)?))$/;\n\tvar RE_INCOMPLETE_NUMBER = /^([+-]|\\.0*|[+-]\\.0*|[+-]?\\d+\\.)?$/;\n\n\tfunction addClass(element, className) {\n\t if (element.classList) {\n\t return element.classList.add(className);\n\t }\n\t if (!element.className.search(new RegExp(\"\\\\b\" + className + \"\\\\b\"))) {\n\t element.className = \" \" + className;\n\t }\n\t}\n\n\tfunction removeClass(element, className) {\n\t if (element.className) {\n\t if (element.classList) {\n\t return element.classList.remove(className);\n\t }\n\n\t element.className = element.className.replace(new RegExp(\"\\\\b\" + className + \"\\\\b\", \"g\"), \"\");\n\t }\n\t}\n\n\tfunction access(object, prop, defaultValue) {\n\t var result = object[prop];\n\t if (typeof result == \"function\") {\n\t for (var _len = arguments.length, args = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n\t args[_key - 3] = arguments[_key];\n\t }\n\n\t result = result.apply(undefined, args);\n\t }\n\t return result === undefined ? defaultValue : result;\n\t}\n\n\tvar NumericInput = function (_Component) {\n\t _inherits(NumericInput, _Component);\n\n\t function NumericInput() {\n\t var _ref;\n\n\t _classCallCheck(this, NumericInput);\n\n\t for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t args[_key2] = arguments[_key2];\n\t }\n\n\t var _this = _possibleConstructorReturn(this, (_ref = NumericInput.__proto__ || Object.getPrototypeOf(NumericInput)).call.apply(_ref, [this].concat(args)));\n\n\t _this._isStrict = !!_this.props.strict;\n\n\t _this.state = _extends({\n\t btnDownHover: false,\n\t btnDownActive: false,\n\t btnUpHover: false,\n\t btnUpActive: false,\n\t stringValue: \"\"\n\t }, _this._propsToState(_this.props));\n\t _this.stop = _this.stop.bind(_this);\n\t _this.onTouchEnd = _this.onTouchEnd.bind(_this);\n\t _this.refsInput = {};\n\t _this.refsWrapper = {};\n\t return _this;\n\t }\n\n\t _createClass(NumericInput, [{\n\t key: '_propsToState',\n\t value: function _propsToState(props) {\n\t var out = {};\n\n\t if (props.hasOwnProperty(\"value\")) {\n\t out.stringValue = String(props.value || props.value === 0 ? props.value : '').trim();\n\n\t out.value = out.stringValue !== '' ? this._parse(props.value) : null;\n\t } else if (!this._isMounted && props.hasOwnProperty(\"defaultValue\")) {\n\t out.stringValue = String(props.defaultValue || props.defaultValue === 0 ? props.defaultValue : '').trim();\n\n\t out.value = props.defaultValue !== '' ? this._parse(props.defaultValue) : null;\n\t }\n\n\t return out;\n\t }\n\t }, {\n\t key: 'componentWillReceiveProps',\n\t value: function componentWillReceiveProps(props) {\n\t var _this2 = this;\n\n\t this._isStrict = !!props.strict;\n\t var nextState = this._propsToState(props);\n\t if (Object.keys(nextState).length) {\n\t this._ignoreValueChange = true;\n\t this.setState(nextState, function () {\n\t _this2._ignoreValueChange = false;\n\t });\n\t }\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate() {\n\t this.saveSelection();\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate(prevProps, prevState) {\n\t if (!this._ignoreValueChange && prevState.value !== this.state.value && (!isNaN(this.state.value) || this.state.value === null)) {\n\t this._invokeEventCallback(\"onChange\", this.state.value, this.refsInput.value, this.refsInput);\n\t }\n\n\t if (this._inputFocus) {\n\t this.refsInput.focus();\n\n\t if (this.state.selectionStart || this.state.selectionStart === 0) {\n\t this.refsInput.selectionStart = this.state.selectionStart;\n\t }\n\n\t if (this.state.selectionEnd || this.state.selectionEnd === 0) {\n\t this.refsInput.selectionEnd = this.state.selectionEnd;\n\t }\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t this._isMounted = false;\n\t this.stop();\n\t }\n\t }, {\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var _this3 = this;\n\n\t this._isMounted = true;\n\t this.refsInput.getValueAsNumber = function () {\n\t return _this3.state.value || 0;\n\t };\n\n\t this.refsInput.setValue = function (value) {\n\t _this3.setState({\n\t value: _this3._parse(value),\n\t stringValue: value\n\t });\n\t };\n\n\t if (!this._inputFocus && IS_BROWSER && document.activeElement === this.refsInput) {\n\t this._inputFocus = true;\n\t this.refsInput.focus();\n\t this._invokeEventCallback(\"onFocus\", {\n\t target: this.refsInput,\n\t type: \"focus\"\n\t });\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'saveSelection',\n\t value: function saveSelection() {\n\t this.state.selectionStart = this.refsInput.selectionStart;\n\t this.state.selectionEnd = this.refsInput.selectionEnd;\n\t }\n\t }, {\n\t key: 'checkValidity',\n\t value: function checkValidity() {\n\t var valid = void 0,\n\t validationError = \"\";\n\n\t var supportsValidation = !!this.refsInput.checkValidity;\n\n\t var noValidate = !!(this.props.noValidate && this.props.noValidate != \"false\");\n\n\t this.refsInput.noValidate = noValidate;\n\n\t valid = noValidate || !supportsValidation;\n\n\t if (valid) {\n\t validationError = \"\";\n\t } else {\n\t if (this.refsInput.pattern === \"\") {\n\t this.refsInput.pattern = this.props.required ? \".+\" : \".*\";\n\t }\n\n\t if (supportsValidation) {\n\t this.refsInput.checkValidity();\n\t valid = this.refsInput.validity.valid;\n\n\t if (!valid) {\n\t validationError = this.refsInput.validationMessage;\n\t }\n\t }\n\n\t if (valid && supportsValidation && this.props.maxLength) {\n\t if (this.refsInput.value.length > this.props.maxLength) {\n\t validationError = \"This value is too long\";\n\t }\n\t }\n\t }\n\n\t validationError = validationError || (valid ? \"\" : this.refsInput.validationMessage || \"Unknown Error\");\n\n\t var validStateChanged = this._valid !== validationError;\n\t this._valid = validationError;\n\t if (validationError) {\n\t addClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onInvalid\", validationError, this.state.value, this.refsInput.value);\n\t }\n\t } else {\n\t removeClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onValid\", this.state.value, this.refsInput.value);\n\t }\n\t }\n\t }\n\t }, {\n\t key: '_toNumber',\n\t value: function _toNumber(x) {\n\t var n = parseFloat(x);\n\t if (isNaN(n) || !isFinite(n)) {\n\t n = 0;\n\t }\n\n\t if (this._isStrict) {\n\t var precision = access(this.props, \"precision\", null, this);\n\t var q = Math.pow(10, precision === null ? 10 : precision);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t n = Math.min(Math.max(n, _min), _max);\n\t n = Math.round(n * q) / q;\n\t }\n\n\t return n;\n\t }\n\t }, {\n\t key: '_parse',\n\t value: function _parse(x) {\n\t x = String(x);\n\t if (typeof this.props.parse == 'function') {\n\t return parseFloat(this.props.parse(x));\n\t }\n\t return parseFloat(x);\n\t }\n\t }, {\n\t key: '_format',\n\t value: function _format(n) {\n\t var _n = this._toNumber(n);\n\t var precision = access(this.props, \"precision\", null, this);\n\t if (precision !== null) {\n\t _n = n.toFixed(precision);\n\t }\n\n\t _n += \"\";\n\n\t if (this.props.format) {\n\t return this.props.format(_n);\n\t }\n\n\t return _n;\n\t }\n\t }, {\n\t key: '_step',\n\t value: function _step(n, callback) {\n\t var _isStrict = this._isStrict;\n\t this._isStrict = true;\n\n\t var _step = +access(this.props, \"step\", NumericInput.defaultProps.step, this, n > 0 ? NumericInput.DIRECTION_UP : NumericInput.DIRECTION_DOWN);\n\n\t var _n = this._toNumber((this.state.value || 0) + _step * n);\n\n\t if (this.props.snap) {\n\t _n = Math.round(_n / _step) * _step;\n\t }\n\n\t this._isStrict = _isStrict;\n\n\t if (_n !== this.state.value) {\n\t this.setState({ value: _n, stringValue: _n + \"\" }, callback);\n\t return true;\n\t }\n\n\t return false;\n\t }\n\t }, {\n\t key: '_onKeyDown',\n\t value: function _onKeyDown() {\n\t for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n\t args[_key3] = arguments[_key3];\n\t }\n\n\t args[0].persist();\n\t this._invokeEventCallback.apply(this, [\"onKeyDown\"].concat(args));\n\t var e = args[0];\n\t if (!e.isDefaultPrevented()) {\n\t if (e.keyCode === KEYCODE_UP) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? 0.1 : e.shiftKey ? 10 : 1);\n\t } else if (e.keyCode === KEYCODE_DOWN) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? -0.1 : e.shiftKey ? -10 : -1);\n\t } else {\n\t var _value = this.refsInput.value,\n\t length = _value.length;\n\t if (e.keyCode === 8) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd > 0 && _value.length && _value.charAt(this.refsInput.selectionEnd - 1) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd - 1;\n\t }\n\t } else if (e.keyCode === 46) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd < length + 1 && _value.length && _value.charAt(this.refsInput.selectionEnd) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd + 1;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'stop',\n\t value: function stop() {\n\t if (this._timer) {\n\t clearTimeout(this._timer);\n\t }\n\t }\n\t }, {\n\t key: 'increase',\n\t value: function increase() {\n\t var _this4 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(1, callback);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t if (isNaN(this.state.value) || +this.state.value < _max) {\n\t this._timer = setTimeout(function () {\n\t _this4.increase(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'decrease',\n\t value: function decrease() {\n\t var _this5 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(-1, callback);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t if (isNaN(this.state.value) || +this.state.value > _min) {\n\t this._timer = setTimeout(function () {\n\t _this5.decrease(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'onMouseDown',\n\t value: function onMouseDown(dir, callback) {\n\t if (dir == 'down') {\n\t this.decrease(false, callback);\n\t } else if (dir == 'up') {\n\t this.increase(false, callback);\n\t }\n\t }\n\t }, {\n\t key: 'onTouchStart',\n\t value: function onTouchStart(dir, e) {\n\t e.preventDefault();\n\t if (dir == 'down') {\n\t this.decrease();\n\t } else if (dir == 'up') {\n\t this.increase();\n\t }\n\t }\n\t }, {\n\t key: 'onTouchEnd',\n\t value: function onTouchEnd(e) {\n\t e.preventDefault();\n\t this.stop();\n\t }\n\t }, {\n\t key: '_invokeEventCallback',\n\t value: function _invokeEventCallback(callbackName) {\n\t if (typeof this.props[callbackName] == \"function\") {\n\t var _props$callbackName;\n\n\t for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n\t args[_key4 - 1] = arguments[_key4];\n\t }\n\n\t (_props$callbackName = this.props[callbackName]).call.apply(_props$callbackName, [null].concat(args));\n\t }\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _this6 = this;\n\n\t var props = this.props;\n\t var state = this.state;\n\t var css = {};\n\n\t var _props = this.props,\n\t step = _props.step,\n\t min = _props.min,\n\t max = _props.max,\n\t precision = _props.precision,\n\t parse = _props.parse,\n\t format = _props.format,\n\t mobile = _props.mobile,\n\t snap = _props.snap,\n\t componentClass = _props.componentClass,\n\t value = _props.value,\n\t type = _props.type,\n\t style = _props.style,\n\t defaultValue = _props.defaultValue,\n\t onInvalid = _props.onInvalid,\n\t onValid = _props.onValid,\n\t strict = _props.strict,\n\t noStyle = _props.noStyle,\n\t rest = _objectWithoutProperties(_props, ['step', 'min', 'max', 'precision', 'parse', 'format', 'mobile', 'snap', 'componentClass', 'value', 'type', 'style', 'defaultValue', 'onInvalid', 'onValid', 'strict', 'noStyle']);\n\n\t noStyle = noStyle || style === false;\n\n\t for (var x in NumericInput.style) {\n\t css[x] = _extends({}, NumericInput.style[x], style ? style[x] || {} : {});\n\t }\n\n\t var hasFormControl = props.className && /\\bform-control\\b/.test(props.className);\n\n\t if (mobile == 'auto') {\n\t mobile = IS_BROWSER && 'ontouchstart' in document;\n\t }\n\n\t if (typeof mobile == \"function\") {\n\t mobile = mobile.call(this);\n\t }\n\t mobile = !!mobile;\n\n\t var attrs = {\n\t wrap: {\n\t style: noStyle ? null : css.wrap,\n\t className: 'react-numeric-input',\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsWrapper = e;\n\t }\n\t },\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined\n\t },\n\t input: _extends({\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsInput = e;\n\t }\n\t },\n\t type: 'text',\n\t style: noStyle ? null : _extends({}, css.input, !hasFormControl ? css['input:not(.form-control)'] : {}, this._inputFocus ? css['input:focus'] : {})\n\t }, rest),\n\t btnUp: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnUp, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnUpActive ? css['btn:active'] : state.btnUpHover ? css['btn:hover'] : {})\n\t },\n\t btnDown: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnDown, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnDownActive ? css['btn:active'] : state.btnDownHover ? css['btn:hover'] : {})\n\t }\n\t };\n\n\t var stringValue = String(state.stringValue || (state.value || state.value === 0 ? state.value : \"\") || \"\");\n\n\t var loose = !this._isStrict && (this._inputFocus || !this._isMounted);\n\n\t if (loose && RE_INCOMPLETE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (loose && stringValue && !RE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (state.value || state.value === 0) {\n\t attrs.input.value = this._format(state.value);\n\t } else {\n\t attrs.input.value = \"\";\n\t }\n\n\t if (hasFormControl && !noStyle) {\n\t _extends(attrs.wrap.style, css['wrap.hasFormControl']);\n\t }\n\n\t if (mobile && !noStyle) {\n\t _extends(attrs.input.style, css['input.mobile']);\n\t _extends(attrs.btnUp.style, css['btnUp.mobile']);\n\t _extends(attrs.btnDown.style, css['btnDown.mobile']);\n\t }\n\n\t if (!props.disabled && !props.readOnly) {\n\t _extends(attrs.wrap, {\n\t onMouseUp: this.stop,\n\t onMouseLeave: this.stop\n\t });\n\n\t _extends(attrs.btnUp, {\n\t onTouchStart: this.onTouchStart.bind(this, 'up'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnUpHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnUpHover: false,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n\t args[_key5] = arguments[_key5];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('up');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.btnDown, {\n\t onTouchStart: this.onTouchStart.bind(this, 'down'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnDownHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnDownHover: false,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n\t args[_key6] = arguments[_key6];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('down');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.input, {\n\t onChange: function onChange(e) {\n\t var original = e.target.value;\n\t var val = _this6._parse(original);\n\t if (isNaN(val)) {\n\t val = null;\n\t }\n\t _this6.setState({\n\t value: _this6._isStrict ? _this6._toNumber(val) : val,\n\t stringValue: original\n\t });\n\t },\n\t onKeyDown: this._onKeyDown.bind(this),\n\t onInput: function onInput() {\n\t for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n\t args[_key7] = arguments[_key7];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onInput\"].concat(args));\n\t },\n\t onSelect: function onSelect() {\n\t for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n\t args[_key8] = arguments[_key8];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onSelect\"].concat(args));\n\t },\n\t onFocus: function onFocus() {\n\t for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n\t args[_key9] = arguments[_key9];\n\t }\n\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val,\n\t stringValue: val || val === 0 ? val + \"\" : \"\"\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t });\n\t },\n\t onBlur: function onBlur() {\n\t for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n\t args[_key10] = arguments[_key10];\n\t }\n\n\t var _isStrict = _this6._isStrict;\n\t _this6._isStrict = true;\n\t args[0].persist();\n\t _this6._inputFocus = false;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onBlur\"].concat(args));\n\t _this6._isStrict = _isStrict;\n\t });\n\t }\n\t });\n\t } else {\n\t if (!noStyle && props.disabled) {\n\t _extends(attrs.input.style, css['input:disabled']);\n\t }\n\t }\n\n\t var InputTag = componentClass || 'input';\n\n\t if (mobile) {\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus }),\n\t _react2.default.createElement('i', { style: noStyle ? null : css.plus })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus })\n\t )\n\t );\n\t }\n\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowUp })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowDown })\n\t )\n\t );\n\t }\n\t }]);\n\n\t return NumericInput;\n\t}(_react.Component);\n\n\tNumericInput.propTypes = {\n\t step: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t min: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t max: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t precision: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t maxLength: _propTypes2.default.number,\n\t parse: _propTypes2.default.func,\n\t format: _propTypes2.default.func,\n\t className: _propTypes2.default.string,\n\t disabled: _propTypes2.default.bool,\n\t readOnly: _propTypes2.default.bool,\n\t required: _propTypes2.default.bool,\n\t snap: _propTypes2.default.bool,\n\t noValidate: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n\t style: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),\n\t noStyle: _propTypes2.default.bool,\n\t type: _propTypes2.default.string,\n\t pattern: _propTypes2.default.string,\n\t onFocus: _propTypes2.default.func,\n\t onBlur: _propTypes2.default.func,\n\t onKeyDown: _propTypes2.default.func,\n\t onChange: _propTypes2.default.func,\n\t onInvalid: _propTypes2.default.func,\n\t onValid: _propTypes2.default.func,\n\t onInput: _propTypes2.default.func,\n\t onSelect: _propTypes2.default.func,\n\t size: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t strict: _propTypes2.default.bool,\n\t componentClass: _propTypes2.default.string,\n\t mobile: function mobile(props, propName) {\n\t var prop = props[propName];\n\t if (prop !== true && prop !== false && prop !== 'auto' && typeof prop != 'function') {\n\t return new Error('The \"mobile\" prop must be true, false, \"auto\" or a function');\n\t }\n\t }\n\t};\n\tNumericInput.defaultProps = {\n\t step: 1,\n\t min: Number.MIN_SAFE_INTEGER || -9007199254740991,\n\t max: Number.MAX_SAFE_INTEGER || 9007199254740991,\n\t precision: null,\n\t parse: null,\n\t format: null,\n\t mobile: 'auto',\n\t strict: false,\n\t componentClass: \"input\",\n\t style: {}\n\t};\n\tNumericInput.style = {\n\t wrap: {\n\t position: 'relative',\n\t display: 'inline-block'\n\t },\n\n\t 'wrap.hasFormControl': {\n\t display: 'block'\n\t },\n\n\t arrowUp: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0 0.6ex 0.6ex 0.6ex',\n\t borderColor: 'transparent transparent rgba(0, 0, 0, 0.7)',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t arrowDown: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0.6ex 0.6ex 0 0.6ex',\n\t borderColor: 'rgba(0, 0, 0, 0.7) transparent transparent',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t plus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 2,\n\t height: 10,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-5px 0 0 -1px'\n\t },\n\n\t minus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 10,\n\t height: 2,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-1px 0 0 -5px'\n\t },\n\n\t btn: {\n\t position: 'absolute',\n\t right: 2,\n\t width: '2.26ex',\n\t borderColor: 'rgba(0,0,0,.1)',\n\t borderStyle: 'solid',\n\t textAlign: 'center',\n\t cursor: 'default',\n\t transition: 'all 0.1s',\n\t background: 'rgba(0,0,0,.1)',\n\t boxShadow: '-1px -1px 3px rgba(0,0,0,.1) inset,' + '1px 1px 3px rgba(255,255,255,.7) inset'\n\t },\n\n\t btnUp: {\n\t top: 2,\n\t bottom: '50%',\n\t borderRadius: '2px 2px 0 0',\n\t borderWidth: '1px 1px 0 1px'\n\t },\n\n\t 'btnUp.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t btnDown: {\n\t top: '50%',\n\t bottom: 2,\n\t borderRadius: '0 0 2px 2px',\n\t borderWidth: '0 1px 1px 1px'\n\t },\n\n\t 'btnDown.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t left: 2,\n\t top: 2,\n\t right: 'auto',\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t 'btn:hover': {\n\t background: 'rgba(0,0,0,.2)'\n\t },\n\n\t 'btn:active': {\n\t background: 'rgba(0,0,0,.3)',\n\t boxShadow: '0 1px 3px rgba(0,0,0,.2) inset,' + '-1px -1px 4px rgba(255,255,255,.5) inset'\n\t },\n\n\t 'btn:disabled': {\n\t opacity: 0.5,\n\t boxShadow: 'none',\n\t cursor: 'not-allowed'\n\t },\n\n\t input: {\n\t paddingRight: '3ex',\n\t boxSizing: 'border-box',\n\t fontSize: 'inherit'\n\t },\n\n\t 'input:not(.form-control)': {\n\t border: '1px solid #ccc',\n\t borderRadius: 2,\n\t paddingLeft: 4,\n\t display: 'block',\n\t WebkitAppearance: 'none',\n\t lineHeight: 'normal'\n\t },\n\n\t 'input.mobile': {\n\t paddingLeft: ' 3.4ex',\n\t paddingRight: '3.4ex',\n\t textAlign: 'center'\n\t },\n\n\t 'input:focus': {},\n\n\t 'input:disabled': {\n\t color: 'rgba(0, 0, 0, 0.3)',\n\t textShadow: '0 1px 0 rgba(255, 255, 255, 0.8)'\n\t }\n\t};\n\tNumericInput.SPEED = 50;\n\tNumericInput.DELAY = 500;\n\tNumericInput.DIRECTION_UP = \"up\";\n\tNumericInput.DIRECTION_DOWN = \"down\";\n\n\n\tmodule.exports = NumericInput;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"react\");\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"prop-types\");\n\n/***/ })\n/******/ ]);","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","/**\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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (typeof obj === 'undefined') {\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from './_curry1';\nimport _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _isArrayLike from './_isArrayLike';\nimport _xwrap from './_xwrap';\nimport bind from '../bind';\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from './_has';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n};\n\nexport default _isArguments;","import _curry1 from './internal/_curry1';\nimport _has from './internal/_has';\nimport _isArguments from './internal/_isArguments';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar _keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n} : function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n};\nvar keys = /*#__PURE__*/_curry1(_keys);\nexport default keys;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","import _objectAssign from './_objectAssign';\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _curry1 from './internal/_curry1';\nimport _of from './internal/_of';\n\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\nvar of = /*#__PURE__*/_curry1(_of);\nexport default of;","import _curry2 from './internal/_curry2';\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\nvar omit = /*#__PURE__*/_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nexport default omit;","import _cloneRegExp from './internal/_cloneRegExp';\nimport _curry2 from './internal/_curry2';\nimport _isRegExp from './internal/_isRegExp';\nimport toString from './toString';\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\nvar test = /*#__PURE__*/_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n return _cloneRegExp(pattern).test(str);\n});\nexport default test;","import _curry1 from './internal/_curry1';\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\nvar _trim = !hasProtoTrim || /*#__PURE__*/ws.trim() || ! /*#__PURE__*/zeroWidth.trim() ? function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n} : function trim(str) {\n return str.trim();\n};\nvar trim = /*#__PURE__*/_curry1(_trim);\nexport default trim;","export { default as F } from './F';\nexport { default as T } from './T';\nexport { default as __ } from './__';\nexport { default as add } from './add';\nexport { default as addIndex } from './addIndex';\nexport { default as adjust } from './adjust';\nexport { default as all } from './all';\nexport { default as allPass } from './allPass';\nexport { default as always } from './always';\nexport { default as and } from './and';\nexport { default as any } from './any';\nexport { default as anyPass } from './anyPass';\nexport { default as ap } from './ap';\nexport { default as aperture } from './aperture';\nexport { default as append } from './append';\nexport { default as apply } from './apply';\nexport { default as applySpec } from './applySpec';\nexport { default as applyTo } from './applyTo';\nexport { default as ascend } from './ascend';\nexport { default as assoc } from './assoc';\nexport { default as assocPath } from './assocPath';\nexport { default as binary } from './binary';\nexport { default as bind } from './bind';\nexport { default as both } from './both';\nexport { default as call } from './call';\nexport { default as chain } from './chain';\nexport { default as clamp } from './clamp';\nexport { default as clone } from './clone';\nexport { default as comparator } from './comparator';\nexport { default as complement } from './complement';\nexport { default as compose } from './compose';\nexport { default as composeK } from './composeK';\nexport { default as composeP } from './composeP';\nexport { default as concat } from './concat';\nexport { default as cond } from './cond';\nexport { default as construct } from './construct';\nexport { default as constructN } from './constructN';\nexport { default as contains } from './contains';\nexport { default as converge } from './converge';\nexport { default as countBy } from './countBy';\nexport { default as curry } from './curry';\nexport { default as curryN } from './curryN';\nexport { default as dec } from './dec';\nexport { default as defaultTo } from './defaultTo';\nexport { default as descend } from './descend';\nexport { default as difference } from './difference';\nexport { default as differenceWith } from './differenceWith';\nexport { default as dissoc } from './dissoc';\nexport { default as dissocPath } from './dissocPath';\nexport { default as divide } from './divide';\nexport { default as drop } from './drop';\nexport { default as dropLast } from './dropLast';\nexport { default as dropLastWhile } from './dropLastWhile';\nexport { default as dropRepeats } from './dropRepeats';\nexport { default as dropRepeatsWith } from './dropRepeatsWith';\nexport { default as dropWhile } from './dropWhile';\nexport { default as either } from './either';\nexport { default as empty } from './empty';\nexport { default as endsWith } from './endsWith';\nexport { default as eqBy } from './eqBy';\nexport { default as eqProps } from './eqProps';\nexport { default as equals } from './equals';\nexport { default as evolve } from './evolve';\nexport { default as filter } from './filter';\nexport { default as find } from './find';\nexport { default as findIndex } from './findIndex';\nexport { default as findLast } from './findLast';\nexport { default as findLastIndex } from './findLastIndex';\nexport { default as flatten } from './flatten';\nexport { default as flip } from './flip';\nexport { default as forEach } from './forEach';\nexport { default as forEachObjIndexed } from './forEachObjIndexed';\nexport { default as fromPairs } from './fromPairs';\nexport { default as groupBy } from './groupBy';\nexport { default as groupWith } from './groupWith';\nexport { default as gt } from './gt';\nexport { default as gte } from './gte';\nexport { default as has } from './has';\nexport { default as hasIn } from './hasIn';\nexport { default as head } from './head';\nexport { default as identical } from './identical';\nexport { default as identity } from './identity';\nexport { default as ifElse } from './ifElse';\nexport { default as inc } from './inc';\nexport { default as indexBy } from './indexBy';\nexport { default as indexOf } from './indexOf';\nexport { default as init } from './init';\nexport { default as innerJoin } from './innerJoin';\nexport { default as insert } from './insert';\nexport { default as insertAll } from './insertAll';\nexport { default as intersection } from './intersection';\nexport { default as intersperse } from './intersperse';\nexport { default as into } from './into';\nexport { default as invert } from './invert';\nexport { default as invertObj } from './invertObj';\nexport { default as invoker } from './invoker';\nexport { default as is } from './is';\nexport { default as isEmpty } from './isEmpty';\nexport { default as isNil } from './isNil';\nexport { default as join } from './join';\nexport { default as juxt } from './juxt';\nexport { default as keys } from './keys';\nexport { default as keysIn } from './keysIn';\nexport { default as last } from './last';\nexport { default as lastIndexOf } from './lastIndexOf';\nexport { default as length } from './length';\nexport { default as lens } from './lens';\nexport { default as lensIndex } from './lensIndex';\nexport { default as lensPath } from './lensPath';\nexport { default as lensProp } from './lensProp';\nexport { default as lift } from './lift';\nexport { default as liftN } from './liftN';\nexport { default as lt } from './lt';\nexport { default as lte } from './lte';\nexport { default as map } from './map';\nexport { default as mapAccum } from './mapAccum';\nexport { default as mapAccumRight } from './mapAccumRight';\nexport { default as mapObjIndexed } from './mapObjIndexed';\nexport { default as match } from './match';\nexport { default as mathMod } from './mathMod';\nexport { default as max } from './max';\nexport { default as maxBy } from './maxBy';\nexport { default as mean } from './mean';\nexport { default as median } from './median';\nexport { default as memoize } from './memoize';\nexport { default as memoizeWith } from './memoizeWith';\nexport { default as merge } from './merge';\nexport { default as mergeAll } from './mergeAll';\nexport { default as mergeDeepLeft } from './mergeDeepLeft';\nexport { default as mergeDeepRight } from './mergeDeepRight';\nexport { default as mergeDeepWith } from './mergeDeepWith';\nexport { default as mergeDeepWithKey } from './mergeDeepWithKey';\nexport { default as mergeWith } from './mergeWith';\nexport { default as mergeWithKey } from './mergeWithKey';\nexport { default as min } from './min';\nexport { default as minBy } from './minBy';\nexport { default as modulo } from './modulo';\nexport { default as multiply } from './multiply';\nexport { default as nAry } from './nAry';\nexport { default as negate } from './negate';\nexport { default as none } from './none';\nexport { default as not } from './not';\nexport { default as nth } from './nth';\nexport { default as nthArg } from './nthArg';\nexport { default as o } from './o';\nexport { default as objOf } from './objOf';\nexport { default as of } from './of';\nexport { default as omit } from './omit';\nexport { default as once } from './once';\nexport { default as or } from './or';\nexport { default as over } from './over';\nexport { default as pair } from './pair';\nexport { default as partial } from './partial';\nexport { default as partialRight } from './partialRight';\nexport { default as partition } from './partition';\nexport { default as path } from './path';\nexport { default as pathEq } from './pathEq';\nexport { default as pathOr } from './pathOr';\nexport { default as pathSatisfies } from './pathSatisfies';\nexport { default as pick } from './pick';\nexport { default as pickAll } from './pickAll';\nexport { default as pickBy } from './pickBy';\nexport { default as pipe } from './pipe';\nexport { default as pipeK } from './pipeK';\nexport { default as pipeP } from './pipeP';\nexport { default as pluck } from './pluck';\nexport { default as prepend } from './prepend';\nexport { default as product } from './product';\nexport { default as project } from './project';\nexport { default as prop } from './prop';\nexport { default as propEq } from './propEq';\nexport { default as propIs } from './propIs';\nexport { default as propOr } from './propOr';\nexport { default as propSatisfies } from './propSatisfies';\nexport { default as props } from './props';\nexport { default as range } from './range';\nexport { default as reduce } from './reduce';\nexport { default as reduceBy } from './reduceBy';\nexport { default as reduceRight } from './reduceRight';\nexport { default as reduceWhile } from './reduceWhile';\nexport { default as reduced } from './reduced';\nexport { default as reject } from './reject';\nexport { default as remove } from './remove';\nexport { default as repeat } from './repeat';\nexport { default as replace } from './replace';\nexport { default as reverse } from './reverse';\nexport { default as scan } from './scan';\nexport { default as sequence } from './sequence';\nexport { default as set } from './set';\nexport { default as slice } from './slice';\nexport { default as sort } from './sort';\nexport { default as sortBy } from './sortBy';\nexport { default as sortWith } from './sortWith';\nexport { default as split } from './split';\nexport { default as splitAt } from './splitAt';\nexport { default as splitEvery } from './splitEvery';\nexport { default as splitWhen } from './splitWhen';\nexport { default as startsWith } from './startsWith';\nexport { default as subtract } from './subtract';\nexport { default as sum } from './sum';\nexport { default as symmetricDifference } from './symmetricDifference';\nexport { default as symmetricDifferenceWith } from './symmetricDifferenceWith';\nexport { default as tail } from './tail';\nexport { default as take } from './take';\nexport { default as takeLast } from './takeLast';\nexport { default as takeLastWhile } from './takeLastWhile';\nexport { default as takeWhile } from './takeWhile';\nexport { default as tap } from './tap';\nexport { default as test } from './test';\nexport { default as times } from './times';\nexport { default as toLower } from './toLower';\nexport { default as toPairs } from './toPairs';\nexport { default as toPairsIn } from './toPairsIn';\nexport { default as toString } from './toString';\nexport { default as toUpper } from './toUpper';\nexport { default as transduce } from './transduce';\nexport { default as transpose } from './transpose';\nexport { default as traverse } from './traverse';\nexport { default as trim } from './trim';\nexport { default as tryCatch } from './tryCatch';\nexport { default as type } from './type';\nexport { default as unapply } from './unapply';\nexport { default as unary } from './unary';\nexport { default as uncurryN } from './uncurryN';\nexport { default as unfold } from './unfold';\nexport { default as union } from './union';\nexport { default as unionWith } from './unionWith';\nexport { default as uniq } from './uniq';\nexport { default as uniqBy } from './uniqBy';\nexport { default as uniqWith } from './uniqWith';\nexport { default as unless } from './unless';\nexport { default as unnest } from './unnest';\nexport { default as until } from './until';\nexport { default as update } from './update';\nexport { default as useWith } from './useWith';\nexport { default as values } from './values';\nexport { default as valuesIn } from './valuesIn';\nexport { default as view } from './view';\nexport { default as when } from './when';\nexport { default as where } from './where';\nexport { default as whereEq } from './whereEq';\nexport { default as without } from './without';\nexport { default as xprod } from './xprod';\nexport { default as zip } from './zip';\nexport { default as zipObj } from './zipObj';\nexport { default as zipWith } from './zipWith';","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","module.exports = {};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","module.exports = true;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","exports.f = {}.propertyIsEnumerable;\n","import styled, { css } from 'styled-components';\n\nexport default styled.label`\n display: block;\n font-size: 14px;\n ${({ position }) =>\n position === 'top'\n ? css`\n margin-bottom: 8px;\n `\n : css`\n margin-top: 8px;\n `}\n ${props =>\n css`\n ${props.css}\n `}\n`;\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _getPrototypeOf = require(\"../core-js/object/get-prototype-of\");\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _getOwnPropertyDescriptor = require(\"../core-js/object/get-own-property-descriptor\");\n\nvar _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = (0, _getOwnPropertyDescriptor2.default)(object, property);\n\n if (desc === undefined) {\n var parent = (0, _getPrototypeOf2.default)(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};","/**\n * CSS conic-gradient() polyfill\n * By Lea Verou — http://lea.verou.me\n * MIT license\n */\n\n(function(){\n\nvar π = Math.PI;\nvar τ = 2 * π;\nvar ε = .00001;\nvar deg = π/180;\n\nvar dummy = document.createElement(\"div\");\ndocument.head.appendChild(dummy);\n\nvar _ = self.ConicGradient = function(o) {\n\tvar me = this;\n\t_.all.push(this);\n\n\to = o || {};\n\n\tthis.canvas = document.createElement(\"canvas\");\n\tthis.context = this.canvas.getContext(\"2d\");\n\n\tthis.repeating = !!o.repeating;\n\n\tthis.size = o.size || Math.max(innerWidth, innerHeight);\n\n\tthis.canvas.width = this.canvas.height = this.size;\n\n\tvar stops = o.stops;\n\n\tthis.stops = (stops || \"\").split(/\\s*,(?![^(]*\\))\\s*/); // commas that are not followed by a ) without a ( first\n\n\tthis.from = 0;\n\n\tfor (var i=0; i 0) {\n\t\tvar first = this.stops[0].clone();\n\t\tfirst.pos = 0;\n\t\tthis.stops.unshift(first);\n\t}\n\n\t// Add dummy last stop or set first stop’s position to 100% if it doesn’t have one\n\tif (this.stops[this.stops.length - 1].pos === undefined) {\n\t\tthis.stops[this.stops.length - 1].pos = 1;\n\t}\n\telse if (!this.repeating && this.stops[this.stops.length - 1].pos < 1) {\n\t\tvar last = this.stops[this.stops.length - 1].clone();\n\t\tlast.pos = 1;\n\t\tthis.stops.push(last);\n\t}\n\n\tthis.stops.forEach(function(stop, i){\n\t\tif (stop.pos === undefined) {\n\t\t\t// Evenly space color stops with no position\n\t\t\tfor (var j=i+1; this[j]; j++) {\n\t\t\t\tif (this[j].pos !== undefined) {\n\t\t\t\t\tstop.pos = this[i-1].pos + (this[j].pos - this[i-1].pos)/(j-i+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (i > 0) {\n\t\t\t// Normalize color stops whose position is smaller than the position of the stop before them\n\t\t\tstop.pos = Math.max(stop.pos, this[i-1].pos);\n\t\t}\n\t}, this.stops);\n\n\tif (this.repeating) {\n\t\t// Repeat color stops until >= 1\n\t\tvar stops = this.stops.slice();\n\t\tvar lastStop = stops[stops.length-1];\n\t\tvar difference = lastStop.pos - stops[0].pos;\n\n\t\tfor (var i=0; this.stops[this.stops.length-1].pos < 1 && i<10000; i++) {\n\t\t\tfor (var j=0; j' +\n\t\t\t'' +\n\t\t\t'';\n\t},\n\n\tget png() {\n\t\treturn this.canvas.toDataURL();\n\t},\n\n\tget r() {\n\t\treturn Math.sqrt(2) * this.size / 2;\n\t},\n\n\t// Paint the conical gradient on the canvas\n\t// Algorithm inspired from http://jsdo.it/akm2/yr9B\n\tpaint: function() {\n\t\tvar c = this.context;\n\n\t\tvar radius = this.r;\n\t\tvar x = this.size / 2;\n\n\t\tvar stopIndex = 0; // The index of the current color\n\t\tvar stop = this.stops[stopIndex], prevStop;\n\n\t\tvar diff, t;\n\n\t\t// Transform coordinate system so that angles start from the top left, like in CSS\n\t\tc.translate(this.size/2, this.size/2);\n\t\tc.rotate(-90*deg);\n\t\tc.rotate(this.from*deg);\n\t\tc.translate(-this.size/2, -this.size/2);\n\n\t\tfor (var i = 0; i < 360;) {\n\t\t\tif (i/360 + ε >= stop.pos) {\n\t\t\t\t// Switch color stop\n\t\t\t\tdo {\n\t\t\t\t\tprevStop = stop;\n\n\t\t\t\t\tstopIndex++;\n\t\t\t\t\tstop = this.stops[stopIndex];\n\t\t\t\t} while(stop && stop != prevStop && stop.pos === prevStop.pos);\n\n\t\t\t\tif (!stop) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tvar sameColor = prevStop.color + \"\" === stop.color + \"\" && prevStop != stop;\n\n\t\t\t\tdiff = prevStop.color.map(function(c, i){\n\t\t\t\t\treturn stop.color[i] - c;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tt = (i/360 - prevStop.pos) / (stop.pos - prevStop.pos);\n\n\t\t\tvar interpolated = sameColor? stop.color : diff.map(function(d,i){\n\t\t\t\tvar ret = d * t + prevStop.color[i];\n\n\t\t\t\treturn i < 3? ret & 255 : ret;\n\t\t\t});\n\n\t\t\t// Draw a series of arcs, 1deg each\n\t\t\tc.fillStyle = 'rgba(' + interpolated.join(\",\") + ')';\n\t\t\tc.beginPath();\n\t\t\tc.moveTo(x, x);\n\n\t\t\tif (sameColor) {\n\t\t\t\tvar θ = 360 * (stop.pos - prevStop.pos);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar θ = .5;\n\t\t\t}\n\n\t\t\tvar beginArg = i*deg;\n\t\t\tbeginArg = Math.min(360*deg, beginArg);\n\n\t\t\t// .02: To prevent empty blank line and corresponding moire\n\t\t\t// only non-alpha colors are cared now\n\t\t\tvar endArg = beginArg + θ*deg;\n\t\t\tendArg = Math.min(360*deg, endArg + .02);\n\n\t\t\tc.arc(x, x, radius, beginArg, endArg);\n\n\t\t\tc.closePath();\n\t\t\tc.fill();\n\n\t\t\ti += θ;\n\t\t}\n\t}\n};\n\n_.ColorStop = function(gradient, stop) {\n\tthis.gradient = gradient;\n\n\tif (stop) {\n\t\tvar parts = stop.match(/^(.+?)(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?\\s*$/);\n\n\t\tthis.color = _.ColorStop.colorToRGBA(parts[1]);\n\n\t\tif (parts[2]) {\n\t\t\tvar unit = parts[3];\n\n\t\t\tif (unit == \"%\" || parts[2] === \"0\" && !unit) {\n\t\t\t\tthis.pos = parts[2]/100;\n\t\t\t}\n\t\t\telse if (unit == \"turn\") {\n\t\t\t\tthis.pos = +parts[2];\n\t\t\t}\n\t\t\telse if (unit == \"deg\") {\n\t\t\t\tthis.pos = parts[2] / 360;\n\t\t\t}\n\t\t\telse if (unit == \"grad\") {\n\t\t\t\tthis.pos = parts[2] / 400;\n\t\t\t}\n\t\t\telse if (unit == \"rad\") {\n\t\t\t\tthis.pos = parts[2] / τ;\n\t\t\t}\n\t\t}\n\n\t\tif (parts[4]) {\n\t\t\tthis.next = new _.ColorStop(gradient, parts[1] + \" \" + parts[4] + parts[5]);\n\t\t}\n\t}\n}\n\n_.ColorStop.prototype = {\n\tclone: function() {\n\t\tvar ret = new _.ColorStop(this.gradient);\n\t\tret.color = this.color;\n\t\tret.pos = this.pos;\n\n\t\treturn ret;\n\t},\n\n\ttoString: function() {\n\t\treturn \"rgba(\" + this.color.join(\", \") + \") \" + this.pos * 100 + \"%\";\n\t}\n};\n\n_.ColorStop.colorToRGBA = function(color) {\n\tif (!Array.isArray(color) && color.indexOf(\"from\") == -1) {\n\t\tdummy.style.color = color;\n\n\t\tvar rgba = getComputedStyle(dummy).color.match(/rgba?\\(([\\d.]+), ([\\d.]+), ([\\d.]+)(?:, ([\\d.]+))?\\)/);\n\n\t\tif (rgba) {\n\t\t\trgba.shift();\n\t\t\trgba = rgba.map(function(a) { return +a });\n\t\t\trgba[3] = isNaN(rgba[3])? 1 : rgba[3];\n\t\t}\n\n\t\treturn rgba || [0,0,0,0];\n\t}\n\n\treturn color;\n};\n\n})();\n\nif (self.StyleFix) {\n\t// Test if conic gradients are supported first:\n\t(function(){\n\t\tvar dummy = document.createElement(\"p\");\n\t\tdummy.style.backgroundImage = \"conic-gradient(white, black)\";\n\t\tdummy.style.backgroundImage = PrefixFree.prefix + \"conic-gradient(white, black)\";\n\n\t\tif (!dummy.style.backgroundImage) {\n\t\t\t// Not supported, use polyfill\n\t\t\tStyleFix.register(function(css, raw) {\n\t\t\t\tif (css.indexOf(\"conic-gradient\") > -1) {\n\t\t\t\t\tcss = css.replace(/(?:repeating-)?conic-gradient\\(\\s*((?:\\([^()]+\\)|[^;()}])+?)\\)/g, function(gradient, stops) {\n\t\t\t\t\t\treturn new ConicGradient({\n\t\t\t\t\t\t\tstops: stops,\n\t\t\t\t\t\t\trepeating: gradient.indexOf(\"repeating-\") > -1\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn css;\n\t\t\t});\n\t\t}\n\t})();\n}\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","!function(e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(null):\"function\"==typeof define&&define.amd?define(e(null)):window.stylis=e(null)}(function e(a){\"use strict\";var r=/^\\0+/g,c=/[\\0\\r\\f]/g,s=/: */g,t=/zoo|gra/,i=/([,: ])(transform)/g,f=/,+\\s*(?![^(]*[)])/g,n=/ +\\s*(?![^(]*[)])/g,l=/ *[\\0] */g,o=/,\\r+?/g,h=/([\\t\\r\\n ])*\\f?&/g,u=/:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g,d=/\\W+/g,b=/@(k\\w+)\\s*(\\S*)\\s*/,p=/::(place)/g,k=/:(read-only)/g,g=/\\s+(?=[{\\];=:>])/g,A=/([[}=:>])\\s+/g,C=/(\\{[^{]+?);(?=\\})/g,w=/\\s{2,}/g,v=/([^\\(])(:+) */g,m=/[svh]\\w+-[tblr]{2}/,x=/\\(\\s*(.*)\\s*\\)/g,$=/([\\s\\S]*?);/g,y=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\\w-]+)[^]*/,j=/stretch|:\\s*\\w+\\-(?:conte|avail)/,z=/([^-])(image-set\\()/,N=\"-webkit-\",S=\"-moz-\",F=\"-ms-\",W=59,q=125,B=123,D=40,E=41,G=91,H=93,I=10,J=13,K=9,L=64,M=32,P=38,Q=45,R=95,T=42,U=44,V=58,X=39,Y=34,Z=47,_=62,ee=43,ae=126,re=0,ce=12,se=11,te=107,ie=109,fe=115,ne=112,le=111,oe=105,he=99,ue=100,de=112,be=1,pe=1,ke=0,ge=1,Ae=1,Ce=1,we=0,ve=0,me=0,xe=[],$e=[],ye=0,Oe=null,je=-2,ze=-1,Ne=0,Se=1,Fe=2,We=3,qe=0,Be=1,De=\"\",Ee=\"\",Ge=\"\";function He(e,a,s,t,i){for(var f,n,o=0,h=0,u=0,d=0,g=0,A=0,C=0,w=0,m=0,$=0,y=0,O=0,j=0,z=0,R=0,we=0,$e=0,Oe=0,je=0,ze=s.length,Je=ze-1,Re=\"\",Te=\"\",Ue=\"\",Ve=\"\",Xe=\"\",Ye=\"\";R0)Te=Te.replace(c,\"\");if(Te.trim().length>0){switch(C){case M:case K:case W:case J:case I:break;default:Te+=s.charAt(R)}C=W}}if(1===$e)switch(C){case B:case q:case W:case Y:case X:case D:case E:case U:$e=0;case K:case J:case I:case M:break;default:for($e=0,je=R,g=C,R--,C=W;je0)++R,C=g;case B:je=ze}}switch(C){case B:for(g=(Te=Te.trim()).charCodeAt(0),y=1,je=++R;R0)Te=Te.replace(c,\"\");switch(A=Te.charCodeAt(1)){case ue:case ie:case fe:case Q:f=a;break;default:f=xe}if(je=(Ue=He(a,f,Ue,A,i+1)).length,me>0&&0===je)je=Te.length;if(ye>0)if(f=Ie(xe,Te,Oe),n=Pe(We,Ue,f,a,pe,be,je,A,i,t),Te=f.join(\"\"),void 0!==n)if(0===(je=(Ue=n.trim()).length))A=0,Ue=\"\";if(je>0)switch(A){case fe:Te=Te.replace(x,Me);case ue:case ie:case Q:Ue=Te+\"{\"+Ue+\"}\";break;case te:if(Ue=(Te=Te.replace(b,\"$1 $2\"+(Be>0?De:\"\")))+\"{\"+Ue+\"}\",1===Ae||2===Ae&&Le(\"@\"+Ue,3))Ue=\"@\"+N+Ue+\"@\"+Ue;else Ue=\"@\"+Ue;break;default:if(Ue=Te+Ue,t===de)Ve+=Ue,Ue=\"\"}else Ue=\"\";break;default:Ue=He(a,Ie(a,Te,Oe),Ue,t,i+1)}Xe+=Ue,O=0,$e=0,z=0,we=0,Oe=0,j=0,Te=\"\",Ue=\"\",C=s.charCodeAt(++R);break;case q:case W:if((je=(Te=(we>0?Te.replace(c,\"\"):Te).trim()).length)>1){if(0===z)if((g=Te.charCodeAt(0))===Q||g>96&&g<123)je=(Te=Te.replace(\" \",\":\")).length;if(ye>0)if(void 0!==(n=Pe(Se,Te,a,e,pe,be,Ve.length,t,i,t)))if(0===(je=(Te=n.trim()).length))Te=\"\\0\\0\";switch(g=Te.charCodeAt(0),A=Te.charCodeAt(1),g){case re:break;case L:if(A===oe||A===he){Ye+=Te+s.charAt(R);break}default:if(Te.charCodeAt(je-1)===V)break;Ve+=Ke(Te,g,A,Te.charCodeAt(2))}}O=0,$e=0,z=0,we=0,Oe=0,Te=\"\",C=s.charCodeAt(++R)}}switch(C){case J:case I:if(h+d+u+o+ve===0)switch($){case E:case X:case Y:case L:case ae:case _:case T:case ee:case Z:case Q:case V:case U:case W:case B:case q:break;default:if(z>0)$e=1}if(h===Z)h=0;else if(ge+O===0&&t!==te&&Te.length>0)we=1,Te+=\"\\0\";if(ye*qe>0)Pe(Ne,Te,a,e,pe,be,Ve.length,t,i,t);be=1,pe++;break;case W:case q:if(h+d+u+o===0){be++;break}default:switch(be++,Re=s.charAt(R),C){case K:case M:if(d+o+h===0)switch(w){case U:case V:case K:case M:Re=\"\";break;default:if(C!==M)Re=\" \"}break;case re:Re=\"\\\\0\";break;case ce:Re=\"\\\\f\";break;case se:Re=\"\\\\v\";break;case P:if(d+h+o===0&&ge>0)Oe=1,we=1,Re=\"\\f\"+Re;break;case 108:if(d+h+o+ke===0&&z>0)switch(R-z){case 2:if(w===ne&&s.charCodeAt(R-3)===V)ke=w;case 8:if(m===le)ke=m}break;case V:if(d+h+o===0)z=R;break;case U:if(h+u+d+o===0)we=1,Re+=\"\\r\";break;case Y:case X:if(0===h)d=d===C?0:0===d?C:d;break;case G:if(d+h+u===0)o++;break;case H:if(d+h+u===0)o--;break;case E:if(d+h+o===0)u--;break;case D:if(d+h+o===0){if(0===O)switch(2*w+3*m){case 533:break;default:y=0,O=1}u++}break;case L:if(h+u+d+o+z+j===0)j=1;break;case T:case Z:if(d+o+u>0)break;switch(h){case 0:switch(2*C+3*s.charCodeAt(R+1)){case 235:h=Z;break;case 220:je=R,h=T}break;case T:if(C===Z&&w===T&&je+2!==R){if(33===s.charCodeAt(je+2))Ve+=s.substring(je,R+1);Re=\"\",h=0}}}if(0===h){if(ge+d+o+j===0&&t!==te&&C!==W)switch(C){case U:case ae:case _:case ee:case E:case D:if(0===O){switch(w){case K:case M:case I:case J:Re+=\"\\0\";break;default:Re=\"\\0\"+Re+(C===U?\"\":\"\\0\")}we=1}else switch(C){case D:if(z+7===R&&108===w)z=0;O=++y;break;case E:if(0==(O=--y))we=1,Re+=\"\\0\"}break;case K:case M:switch(w){case re:case B:case q:case W:case U:case ce:case K:case M:case I:case J:break;default:if(0===O)we=1,Re+=\"\\0\"}}if(Te+=Re,C!==M&&C!==K)$=C}}m=w,w=C,R++}if(je=Ve.length,me>0)if(0===je&&0===Xe.length&&0===a[0].length==false)if(t!==ie||1===a.length&&(ge>0?Ee:Ge)===a[0])je=a.join(\",\").length+2;if(je>0){if(f=0===ge&&t!==te?function(e){for(var a,r,s=0,t=e.length,i=Array(t);s1)continue;if(u=n.charCodeAt(n.length-1),d=r.charCodeAt(0),a=\"\",0!==o)switch(u){case T:case ae:case _:case ee:case M:case D:break;default:a=\" \"}switch(d){case P:r=a+Ee;case ae:case _:case ee:case M:case E:case D:break;case G:r=a+r+Ee;break;case V:switch(2*r.charCodeAt(1)+3*r.charCodeAt(2)){case 530:if(Ce>0){r=a+r.substring(8,h-1);break}default:if(o<1||f[o-1].length<1)r=a+Ee+r}break;case U:a=\"\";default:if(h>1&&r.indexOf(\":\")>0)r=a+r.replace(v,\"$1\"+Ee+\"$2\");else r=a+r+Ee}n+=r}i[s]=n.replace(c,\"\").trim()}return i}(a):a,ye>0)if(void 0!==(n=Pe(Fe,Ve,f,e,pe,be,je,t,i,t))&&0===(Ve=n).length)return Ye+Ve+Xe;if(Ve=f.join(\",\")+\"{\"+Ve+\"}\",Ae*ke!=0){if(2===Ae&&!Le(Ve,2))ke=0;switch(ke){case le:Ve=Ve.replace(k,\":\"+S+\"$1\")+Ve;break;case ne:Ve=Ve.replace(p,\"::\"+N+\"input-$1\")+Ve.replace(p,\"::\"+S+\"$1\")+Ve.replace(p,\":\"+F+\"input-$1\")+Ve}ke=0}}return Ye+Ve+Xe}function Ie(e,a,r){var c=a.trim().split(o),s=c,t=c.length,i=e.length;switch(i){case 0:case 1:for(var f=0,n=0===i?\"\":e[0]+\" \";f0&&ge>0)return s.replace(u,\"$1\").replace(h,\"$1\"+Ge);break;default:return e.trim()+s.replace(h,\"$1\"+e.trim())}default:if(r*ge>0&&s.indexOf(\"\\f\")>0)return s.replace(h,(e.charCodeAt(0)===V?\"\":\"$1\")+e.trim())}return e+s}function Ke(e,a,r,c){var l,o=0,h=e+\";\",u=2*a+3*r+4*c;if(944===u)return function(e){var a=e.length,r=e.indexOf(\":\",9)+1,c=e.substring(0,r).trim(),s=e.substring(r,a-1).trim();switch(e.charCodeAt(9)*Be){case 0:break;case Q:if(110!==e.charCodeAt(10))break;default:for(var t=s.split((s=\"\",f)),i=0,r=0,a=t.length;iL&&h<90||h>96&&h<123||h===R||h===Q&&l.charCodeAt(1)!==Q))switch(isNaN(parseFloat(l))+(-1!==l.indexOf(\"(\"))){case 1:switch(l){case\"infinite\":case\"alternate\":case\"backwards\":case\"running\":case\"normal\":case\"forwards\":case\"both\":case\"none\":case\"linear\":case\"ease\":case\"ease-in\":case\"ease-out\":case\"ease-in-out\":case\"paused\":case\"reverse\":case\"alternate-reverse\":case\"inherit\":case\"initial\":case\"unset\":case\"step-start\":case\"step-end\":break;default:l+=De}}o[r++]=l}s+=(0===i?\"\":\",\")+o.join(\" \")}}if(s=c+s+\";\",1===Ae||2===Ae&&Le(s,1))return N+s+s;return s}(h);else if(0===Ae||2===Ae&&!Le(h,1))return h;switch(u){case 1015:return 97===h.charCodeAt(10)?N+h+h:h;case 951:return 116===h.charCodeAt(3)?N+h+h:h;case 963:return 110===h.charCodeAt(5)?N+h+h:h;case 1009:if(100!==h.charCodeAt(4))break;case 969:case 942:return N+h+h;case 978:return N+h+S+h+h;case 1019:case 983:return N+h+S+h+F+h+h;case 883:if(h.charCodeAt(8)===Q)return N+h+h;if(h.indexOf(\"image-set(\",11)>0)return h.replace(z,\"$1\"+N+\"$2\")+h;return h;case 932:if(h.charCodeAt(4)===Q)switch(h.charCodeAt(5)){case 103:return N+\"box-\"+h.replace(\"-grow\",\"\")+N+h+F+h.replace(\"grow\",\"positive\")+h;case 115:return N+h+F+h.replace(\"shrink\",\"negative\")+h;case 98:return N+h+F+h.replace(\"basis\",\"preferred-size\")+h}return N+h+F+h+h;case 964:return N+h+F+\"flex-\"+h+h;case 1023:if(99!==h.charCodeAt(8))break;return l=h.substring(h.indexOf(\":\",15)).replace(\"flex-\",\"\").replace(\"space-between\",\"justify\"),N+\"box-pack\"+l+N+h+F+\"flex-pack\"+l+h;case 1005:return t.test(h)?h.replace(s,\":\"+N)+h.replace(s,\":\"+S)+h:h;case 1e3:switch(o=(l=h.substring(13).trim()).indexOf(\"-\")+1,l.charCodeAt(0)+l.charCodeAt(o)){case 226:l=h.replace(m,\"tb\");break;case 232:l=h.replace(m,\"tb-rl\");break;case 220:l=h.replace(m,\"lr\");break;default:return h}return N+h+F+l+h;case 1017:if(-1===h.indexOf(\"sticky\",9))return h;case 975:switch(o=(h=e).length-10,u=(l=(33===h.charCodeAt(o)?h.substring(0,o):h).substring(e.indexOf(\":\",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(l.charCodeAt(8)<111)break;case 115:h=h.replace(l,N+l)+\";\"+h;break;case 207:case 102:h=h.replace(l,N+(u>102?\"inline-\":\"\")+\"box\")+\";\"+h.replace(l,N+l)+\";\"+h.replace(l,F+l+\"box\")+\";\"+h}return h+\";\";case 938:if(h.charCodeAt(5)===Q)switch(h.charCodeAt(6)){case 105:return l=h.replace(\"-items\",\"\"),N+h+N+\"box-\"+l+F+\"flex-\"+l+h;case 115:return N+h+F+\"flex-item-\"+h.replace(y,\"\")+h;default:return N+h+F+\"flex-line-pack\"+h.replace(\"align-content\",\"\").replace(y,\"\")+h}break;case 973:case 989:if(h.charCodeAt(3)!==Q||122===h.charCodeAt(4))break;case 931:case 953:if(true===j.test(e))if(115===(l=e.substring(e.indexOf(\":\")+1)).charCodeAt(0))return Ke(e.replace(\"stretch\",\"fill-available\"),a,r,c).replace(\":fill-available\",\":stretch\");else return h.replace(l,N+l)+h.replace(l,S+l.replace(\"fill-\",\"\"))+h;break;case 962:if(h=N+h+(102===h.charCodeAt(5)?F+h:\"\")+h,r+c===211&&105===h.charCodeAt(13)&&h.indexOf(\"transform\",10)>0)return h.substring(0,h.indexOf(\";\",27)+1).replace(i,\"$1\"+N+\"$2\")+h}return h}function Le(e,a){var r=e.indexOf(1===a?\":\":\"{\"),c=e.substring(0,3!==a?r:10),s=e.substring(r+1,e.length-1);return Oe(2!==a?c:c.replace(O,\"$1\"),s,a)}function Me(e,a){var r=Ke(a,a.charCodeAt(0),a.charCodeAt(1),a.charCodeAt(2));return r!==a+\";\"?r.replace($,\" or ($1)\").substring(4):\"(\"+a+\")\"}function Pe(e,a,r,c,s,t,i,f,n,l){for(var o,h=0,u=a;h0)De=s.replace(d,t===G?\"\":\"-\");if(t=1,1===ge)Ge=s;else Ee=s;var i,f=[Ge];if(ye>0)if(void 0!==(i=Pe(ze,r,f,f,pe,be,0,0,0,0))&&\"string\"==typeof i)r=i;var n=He(xe,f,r,0,0);if(ye>0)if(void 0!==(i=Pe(je,n,f,f,pe,be,n.length,0,0,0))&&\"string\"!=typeof(n=i))t=0;return De=\"\",Ge=\"\",Ee=\"\",ke=0,pe=1,be=1,we*t==0?n:n.replace(c,\"\").replace(g,\"\").replace(A,\"$1\").replace(C,\"$1\").replace(w,\" \")}if(Te.use=function e(a){switch(a){case void 0:case null:ye=$e.length=0;break;default:if(\"function\"==typeof a)$e[ye++]=a;else if(\"object\"==typeof a)for(var r=0,c=a.length;r\n import(/* webpackChunkName: \"colorpicker\" */ '../fragments/ColorPicker.react')\n);\n/**\n * A color picker.\n */\nexport default class ColorPicker extends Component {\n render() {\n return (\n \n \n \n );\n }\n}\n\nColorPicker.defaultProps = {\n size: 225,\n theme: light,\n labelPosition: 'top',\n persisted_props: ['value'],\n persistence_type: 'local'\n};\n\nColorPicker.propTypes = {\n /**\n * The ID used to identify the color picker in Dash callbacks\n */\n id: PropTypes.string,\n\n /**\n * Color value of the picker\n */\n value: PropTypes.shape({\n /**\n * Hex string\n */\n hex: PropTypes.string,\n\n /**\n * RGB/RGBA object\n */\n rbg: PropTypes.shape({\n r: PropTypes.number,\n g: PropTypes.number,\n b: PropTypes.number,\n a: PropTypes.number\n })\n }),\n\n /**\n * If true, color cannot be picked.\n */\n disabled: PropTypes.bool,\n\n /**\n * Size (width) of the component in pixels\n */\n size: PropTypes.number,\n\n /**\n * Theme configuration to be set by a ThemeProvider\n */\n theme: PropTypes.object,\n\n /**\n * Description to be displayed alongside the control. To control styling,\n * pass an object with label and style properties\n */\n label: PropTypes.oneOfType([\n /**\n * Label to be displayed\n */\n PropTypes.string,\n\n /**\n * The style and label\n */\n PropTypes.shape({\n style: PropTypes.object,\n label: PropTypes.string\n })\n ]),\n\n /**\n * Where the indicator label is positioned\n */\n labelPosition: PropTypes.oneOf(['top', 'bottom']),\n\n /**\n * Class to apply to the root component element\n */\n className: PropTypes.string,\n\n /**\n * Dash-assigned callback that gets fired when\n * the color picker's value changes\n */\n setProps: PropTypes.func,\n\n /**\n * Style to apply to the root component element\n */\n style: PropTypes.object,\n\n /**\n * Used to allow user interactions in this component to be persisted when\n * the component - or the page - is refreshed. If `persisted` is truthy and\n * hasn't changed from its previous value, a `value` that the user has\n * changed while using the app will keep that change, as long as\n * the new `value` also matches what was given originally.\n * Used in conjunction with `persistence_type`.\n */\n persistence: PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.number]),\n\n /**\n * Properties whose user interactions will persist after refreshing the\n * component or the page. Since only `value` is allowed this prop can\n * normally be ignored.\n */\n persisted_props: PropTypes.arrayOf(PropTypes.oneOf(['value'])),\n\n /**\n * Where persisted user changes will be stored:\n * memory: only kept in memory, reset on page refresh.\n * local: window.localStorage, data is kept after the browser quit.\n * session: window.sessionStorage, data is cleared once the browser quit.\n */\n persistence_type: PropTypes.oneOf(['local', 'session', 'memory'])\n};\n\nexport const defaultProps = ColorPicker.defaultProps;\nexport const propTypes = ColorPicker.propTypes;\n","// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","// 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","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = require('./_hide');\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","(function (factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory()) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory()) :\n\t\t\t(window['stylisRuleSheet'] = factory())\n}(function () {\n\n\t'use strict'\n\n\treturn function (insertRule) {\n\t\tvar delimiter = '/*|*/'\n\t\tvar needle = delimiter+'}'\n\n\t\tfunction toSheet (block) {\n\t\t\tif (block)\n\t\t\t\ttry {\n\t\t\t\t\tinsertRule(block + '}')\n\t\t\t\t} catch (e) {}\n\t\t}\n\n\t\treturn function ruleSheet (context, content, selectors, parents, line, column, length, ns, depth, at) {\n\t\t\tswitch (context) {\n\t\t\t\t// property\n\t\t\t\tcase 1:\n\t\t\t\t\t// @import\n\t\t\t\t\tif (depth === 0 && content.charCodeAt(0) === 64)\n\t\t\t\t\t\treturn insertRule(content+';'), ''\n\t\t\t\t\tbreak\n\t\t\t\t// selector\n\t\t\t\tcase 2:\n\t\t\t\t\tif (ns === 0)\n\t\t\t\t\t\treturn content + delimiter\n\t\t\t\t\tbreak\n\t\t\t\t// at-rule\n\t\t\t\tcase 3:\n\t\t\t\t\tswitch (ns) {\n\t\t\t\t\t\t// @font-face, @page\n\t\t\t\t\t\tcase 102:\n\t\t\t\t\t\tcase 112:\n\t\t\t\t\t\t\treturn insertRule(selectors[0]+content), ''\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn content + (at === 0 ? delimiter : '')\n\t\t\t\t\t}\n\t\t\t\tcase -2:\n\t\t\t\t\tcontent.split(needle).forEach(toSheet)\n\t\t\t}\n\t\t}\n\t}\n}))\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","/*!\n * TinyGradient 0.4.3\n * Copyright 2014-2018 Damien \"Mistic\" Sorel (http://www.strangeplanet.fr)\n * Licensed under MIT (http://opensource.org/licenses/MIT)\n */\n\n(function (root, factory) {\n if (typeof module !== \"undefined\" && module.exports) {\n module.exports = factory(require('tinycolor2'));\n }\n else if (typeof define === 'function' && define.amd) {\n define(['tinycolor2'], factory);\n }\n else {\n root.tinygradient = factory(root.tinycolor);\n }\n}(this, function (tinycolor) {\n \"use strict\";\n\n var RGBA_MAX = {r: 256, g: 256, b: 256, a: 1};\n var HSVA_MAX = {h: 360, s: 1, v: 1, a: 1};\n\n /**\n * Linearly compute the step size between start and end (not normalized)\n * @param {Object} start - rgba or hsva\n * @param {Object} end - rgba or hsva\n * @param {int} steps - number of desired steps\n * @return {Object} rgba or hsva\n */\n function stepize(start, end, steps) {\n var step = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n step[k] = steps === 0 ? 0 : (end[k] - start[k]) / steps;\n }\n }\n\n return step;\n }\n\n /**\n * Compute the final step color\n * @param {Object} step - rgba or hsva from `stepize`\n * @param {Object} start - rgba or hsva\n * @param {int} i - color index\n * @param {Object} max - rgba or hsva of maximum values for each channel\n * @return {Object} rgba or hsva\n */\n function interpolate(step, start, i, max) {\n var color = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n color[k] = step[k] * i + start[k];\n color[k] = color[k] < 0 ? color[k] + max[k] : ( max[k] !== 1 ? color[k] % max[k] : color[k] );\n }\n }\n\n return color;\n }\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateRgb(stop1, stop2, steps) {\n var start = stop1.color.toRgb(),\n end = stop2.color.toRgb(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n color;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, RGBA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @param {Boolean} trigonometric - true to step in trigonometric order\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateHsv(stop1, stop2, steps, trigonometric) {\n var start = stop1.color.toHsv(),\n end = stop2.color.toHsv(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n diff, color;\n\n // recompute hue\n if ((start.h <= end.h && !trigonometric) || (start.h >= end.h && trigonometric)) {\n diff = end.h - start.h;\n }\n else if (trigonometric) {\n diff = 360 - end.h + start.h;\n }\n else {\n diff = 360 - start.h + end.h;\n }\n step.h = Math.pow(-1, trigonometric ? 1 : 0) * Math.abs(diff) / steps;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, HSVA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Compute substeps between each stops\n * @param {Object[]} stops\n * @param {int} steps\n * @return {int[]}\n */\n function computeSubsteps(stops, steps) {\n var l = stops.length;\n\n // validation\n steps = parseInt(steps);\n\n if (isNaN(steps) || steps < 2) {\n throw new Error('Invalid number of steps (< 2)');\n }\n if (steps < l) {\n throw new Error('Number of steps cannot be inferior to number of stops');\n }\n\n // compute substeps from stop positions\n var substeps = [];\n\n for (var i = 1; i < l; i++) {\n var step = (steps - 1) * (stops[i].pos - stops[i - 1].pos);\n substeps.push(Math.max(1, Math.round(step)));\n }\n\n // adjust number of steps\n var totalSubsteps = 1;\n for (var n = l - 1; n--;) totalSubsteps += substeps[n];\n\n while (totalSubsteps !== steps) {\n if (totalSubsteps < steps) {\n var min = Math.min.apply(null, substeps);\n substeps[substeps.indexOf(min)]++;\n totalSubsteps++;\n }\n else {\n var max = Math.max.apply(null, substeps);\n substeps[substeps.indexOf(max)]--;\n totalSubsteps--;\n }\n }\n\n return substeps;\n }\n\n /**\n * Compute the color at a specific position\n * @param {Object[]} stops\n * @param {float} pos\n * @param {string} method\n * @param {Object} max\n * @returns {tinycolor}\n */\n function computeAt(stops, pos, method, max) {\n if (pos < 0 || pos > 1) {\n throw new Error('Position must be between 0 and 1');\n }\n\n var start, end;\n for (var i = 0, l = stops.length; i < l - 1; i++) {\n if (pos >= stops[i].pos && pos < stops[i + 1].pos) {\n start = stops[i];\n end = stops[i + 1];\n break;\n }\n }\n\n if (!start) {\n start = end = stops[stops.length - 1];\n }\n\n var step = stepize(start.color[method](), end.color[method](), (end.pos - start.pos) * 100);\n var color = interpolate(step, start.color[method](), Math.round((pos - start.pos) * 100), max);\n return tinycolor(color);\n }\n\n /**\n * @class tinygradient\n * @param {*} stops\n */\n var TinyGradient = function (stops) {\n // varargs\n if (arguments.length === 1) {\n if (!(arguments[0] instanceof Array)) {\n throw new Error('\"stops\" is not an array');\n }\n stops = arguments[0];\n }\n else {\n stops = Array.prototype.slice.call(arguments);\n }\n\n // if we are called as a function, call using new instead\n if (!(this instanceof TinyGradient)) {\n return new TinyGradient(stops);\n }\n\n // validation\n if (stops.length < 2) {\n throw new Error('Invalid number of stops (< 2)');\n }\n\n var havingPositions = stops[0].pos !== undefined,\n l = stops.length,\n p = -1;\n // create tinycolor objects and clean positions\n this.stops = stops.map(function (stop, i) {\n var hasPosition = stop.pos !== undefined;\n if (havingPositions ^ hasPosition) {\n throw new Error('Cannot mix positionned and not posionned color stops');\n }\n\n if (hasPosition) {\n stop = {\n color: tinycolor(stop.color),\n pos : stop.pos\n };\n\n if (stop.pos < 0 || stop.pos > 1) {\n throw new Error('Color stops positions must be between 0 and 1');\n }\n else if (stop.pos <= p) {\n throw new Error('Color stops positions are not ordered');\n }\n p = stop.pos;\n }\n else {\n stop = {\n color: tinycolor(stop),\n pos : i / (l - 1)\n };\n }\n\n return stop;\n });\n\n if (this.stops[0].pos !== 0) {\n this.stops.unshift({\n color: this.stops[0].color,\n pos : 0\n });\n }\n if (this.stops[this.stops.length - 1].pos !== 1) {\n this.stops.push({\n color: this.stops[this.stops.length - 1].color,\n pos : 1\n });\n }\n };\n\n /**\n * Return new instance with reversed stops\n * @return {tinygradient}\n */\n TinyGradient.prototype.reverse = function () {\n var stops = [];\n\n this.stops.forEach(function (stop) {\n stops.push({\n color: stop.color,\n pos : 1 - stop.pos\n });\n });\n\n return new TinyGradient(stops.reverse());\n };\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {int} steps\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.rgb = function (steps) {\n var substeps = computeSubsteps(this.stops, steps),\n gradient = [];\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {int} steps\n * @param {Boolean|String} [mode=false]\n * - false to step in clockwise\n * - true to step in trigonometric order\n * - 'short' to use the shortest way\n * - 'long' to use the longest way\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.hsv = function (steps, mode) {\n var substeps = computeSubsteps(this.stops, steps),\n trigonometric = mode === true,\n parametrized = typeof mode === 'string',\n gradient = [],\n start, end, trig;\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n start = this.stops[i].color.toHsv();\n end = this.stops[i + 1].color.toHsv();\n\n if (parametrized) {\n trig = (start.h < end.h && end.h - start.h < 180) || (start.h > end.h && start.h - end.h > 180);\n }\n\n // rgb interpolation if one of the steps in grayscale\n if (start.s === 0 || end.s === 0) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n else {\n gradient = gradient.concat(interpolateHsv(this.stops[i], this.stops[i + 1], substeps[i],\n (mode === 'long' && trig) || (mode === 'short' && !trig) || (!parametrized && trigonometric)\n ));\n }\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate CSS3 command (no prefix) for this gradient\n * @param {String} [mode=linear] - 'linear' or 'radial'\n * @param {String} [direction] - default is 'to right' or 'ellipse at center'\n * @return {String}\n */\n TinyGradient.prototype.css = function (mode, direction) {\n mode = mode || 'linear';\n direction = direction || (mode === 'linear' ? 'to right' : 'ellipse at center');\n\n var css = mode + '-gradient(' + direction;\n this.stops.forEach(function (stop) {\n css += ', ' + stop.color.toRgbString() + ' ' + (stop.pos * 100) + '%';\n });\n css += ')';\n return css;\n };\n\n /**\n * Returns the color at specific position with RGBa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.rgbAt = function (pos) {\n return computeAt(this.stops, pos, 'toRgb', RGBA_MAX);\n };\n\n /**\n * Returns the color at specific position with HSVa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.hsvAt = function (pos) {\n return computeAt(this.stops, pos, 'toHsv', HSVA_MAX);\n };\n\n var STATIC_FNS = {\n 'rgb' : 1,\n 'hsv' : 2,\n 'css' : 2,\n 'rgbAt': 1,\n 'hsvAt': 1\n };\n\n Object.keys(STATIC_FNS).forEach(function (fn) {\n TinyGradient[fn] = function () {\n var colors = Array.prototype.slice.call(arguments);\n var args = colors.splice(-STATIC_FNS[fn]);\n var gradient = new TinyGradient(colors);\n return gradient[fn].apply(gradient, args);\n };\n });\n\n // export\n return TinyGradient;\n}));","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = addEventListener;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventObject = require('./EventObject');\n\nvar _EventObject2 = _interopRequireDefault(_EventObject);\n\nfunction addEventListener(target, eventType, callback, option) {\n function wrapCallback(e) {\n var ne = new _EventObject2['default'](e);\n callback.call(target, ne);\n }\n\n if (target.addEventListener) {\n var _ret = (function () {\n var useCapture = false;\n if (typeof option === 'object') {\n useCapture = option.capture || false;\n } else if (typeof option === 'boolean') {\n useCapture = option;\n }\n\n target.addEventListener(eventType, wrapCallback, option || false);\n\n return {\n v: {\n remove: function remove() {\n target.removeEventListener(eventType, wrapCallback, useCapture);\n }\n }\n };\n })();\n\n if (typeof _ret === 'object') return _ret.v;\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, wrapCallback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, wrapCallback);\n }\n };\n }\n}\n\nmodule.exports = exports['default'];","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\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 }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.nipplejs = f()}})(function(){var define,module,exports;\n'use strict';\n\n// Constants\nvar isTouch = !!('ontouchstart' in window);\nvar isPointer = window.PointerEvent ? true : false;\nvar isMSPointer = window.MSPointerEvent ? true : false;\nvar events = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend, touchcancel'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n },\n pointer: {\n start: 'pointerdown',\n move: 'pointermove',\n end: 'pointerup, pointercancel'\n },\n MSPointer: {\n start: 'MSPointerDown',\n move: 'MSPointerMove',\n end: 'MSPointerUp'\n }\n};\nvar toBind;\nvar secondBind = {};\nif (isPointer) {\n toBind = events.pointer;\n} else if (isMSPointer) {\n toBind = events.MSPointer;\n} else if (isTouch) {\n toBind = events.touch;\n secondBind = events.mouse;\n} else {\n toBind = events.mouse;\n}\n\n///////////////////////\n/// UTILS ///\n///////////////////////\n\nvar u = {};\nu.distance = function (p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return Math.sqrt((dx * dx) + (dy * dy));\n};\n\nu.angle = function(p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return u.degrees(Math.atan2(dy, dx));\n};\n\nu.findCoord = function(p, d, a) {\n var b = {x: 0, y: 0};\n a = u.radians(a);\n b.x = p.x - d * Math.cos(a);\n b.y = p.y - d * Math.sin(a);\n return b;\n};\n\nu.radians = function(a) {\n return a * (Math.PI / 180);\n};\n\nu.degrees = function(a) {\n return a * (180 / Math.PI);\n};\n\nu.bindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.addEventListener) {\n el.addEventListener(type, handler, false);\n } else if (el.attachEvent) {\n el.attachEvent(type, handler);\n }\n }\n};\n\nu.unbindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.removeEventListener) {\n el.removeEventListener(type, handler);\n } else if (el.detachEvent) {\n el.detachEvent(type, handler);\n }\n }\n};\n\nu.trigger = function (el, type, data) {\n var evt = new CustomEvent(type, data);\n el.dispatchEvent(evt);\n};\n\nu.prepareEvent = function (evt) {\n evt.preventDefault();\n return evt.type.match(/^touch/) ? evt.changedTouches : evt;\n};\n\nu.getScroll = function () {\n var x = (window.pageXOffset !== undefined) ?\n window.pageXOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollLeft;\n\n var y = (window.pageYOffset !== undefined) ?\n window.pageYOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollTop;\n return {\n x: x,\n y: y\n };\n};\n\nu.applyPosition = function (el, pos) {\n if (pos.top || pos.right || pos.bottom || pos.left) {\n el.style.top = pos.top;\n el.style.right = pos.right;\n el.style.bottom = pos.bottom;\n el.style.left = pos.left;\n } else {\n el.style.left = pos.x + 'px';\n el.style.top = pos.y + 'px';\n }\n};\n\nu.getTransitionStyle = function (property, values, time) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (typeof values === 'string') {\n obj[i] = values + ' ' + time;\n } else {\n var st = '';\n for (var j = 0, max = values.length; j < max; j += 1) {\n st += values[j] + ' ' + time + ', ';\n }\n obj[i] = st.slice(0, -2);\n }\n }\n }\n return obj;\n};\n\nu.getVendorStyle = function (property, value) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n obj[i] = value;\n }\n }\n return obj;\n};\n\nu.configStylePropertyObject = function (prop) {\n var obj = {};\n obj[prop] = '';\n var vendors = ['webkit', 'Moz', 'o'];\n vendors.forEach(function (vendor) {\n obj[vendor + prop.charAt(0).toUpperCase() + prop.slice(1)] = '';\n });\n return obj;\n};\n\nu.extend = function (objA, objB) {\n for (var i in objB) {\n if (objB.hasOwnProperty(i)) {\n objA[i] = objB[i];\n }\n }\n return objA;\n};\n\n// Overwrite only what's already present\nu.safeExtend = function (objA, objB) {\n var obj = {};\n for (var i in objA) {\n if (objA.hasOwnProperty(i) && objB.hasOwnProperty(i)) {\n obj[i] = objB[i];\n } else if (objA.hasOwnProperty(i)) {\n obj[i] = objA[i];\n }\n }\n return obj;\n};\n\n// Map for array or unique item.\nu.map = function (ar, fn) {\n if (ar.length) {\n for (var i = 0, max = ar.length; i < max; i += 1) {\n fn(ar[i]);\n }\n } else {\n fn(ar);\n }\n};\n\n///////////////////////\n/// SUPER CLASS ///\n///////////////////////\n\nfunction Super () {};\n\n// Basic event system.\nSuper.prototype.on = function (arg, cb) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n self._handlers_[type] = self._handlers_[type] || [];\n self._handlers_[type].push(cb);\n }\n return self;\n};\n\nSuper.prototype.off = function (type, cb) {\n var self = this;\n self._handlers_ = self._handlers_ || {};\n\n if (type === undefined) {\n self._handlers_ = {};\n } else if (cb === undefined) {\n self._handlers_[type] = null;\n } else if (self._handlers_[type] &&\n self._handlers_[type].indexOf(cb) >= 0) {\n self._handlers_[type].splice(self._handlers_[type].indexOf(cb), 1);\n }\n\n return self;\n};\n\nSuper.prototype.trigger = function (arg, data) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (self._handlers_[type] && self._handlers_[type].length) {\n self._handlers_[type].forEach(function (handler) {\n handler.call(self, {\n type: type,\n target: self\n }, data);\n });\n }\n }\n};\n\n// Configuration\nSuper.prototype.config = function (options) {\n var self = this;\n self.options = self.defaults || {};\n if (options) {\n self.options = u.safeExtend(self.options, options);\n }\n};\n\n// Bind internal events.\nSuper.prototype.bindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n self._domHandlers_[type] = function () {\n if (typeof self['on' + type] === 'function') {\n self['on' + type].apply(self, arguments);\n } else {\n console.warn('[WARNING] : Missing \"on' + type + '\" handler.');\n }\n };\n\n u.bindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.bindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n return self;\n};\n\n// Unbind dom events.\nSuper.prototype.unbindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n u.unbindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.unbindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n delete self._domHandlers_[type];\n\n return this;\n};\n\n///////////////////////\n/// THE NIPPLE ///\n///////////////////////\n\nfunction Nipple (collection, options) {\n this.identifier = options.identifier;\n this.position = options.position;\n this.frontPosition = options.frontPosition;\n this.collection = collection;\n\n // Defaults\n this.defaults = {\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n mode: 'dynamic',\n zone: document.body,\n lockX: false,\n lockY: false\n };\n\n this.config(options);\n\n // Overwrites\n if (this.options.mode === 'dynamic') {\n this.options.restOpacity = 0;\n }\n\n this.id = Nipple.id;\n Nipple.id += 1;\n this.buildEl()\n .stylize();\n\n // Nipple's API.\n this.instance = {\n el: this.ui.el,\n on: this.on.bind(this),\n off: this.off.bind(this),\n show: this.show.bind(this),\n hide: this.hide.bind(this),\n add: this.addToDom.bind(this),\n remove: this.removeFromDom.bind(this),\n destroy: this.destroy.bind(this),\n resetDirection: this.resetDirection.bind(this),\n computeDirection: this.computeDirection.bind(this),\n trigger: this.trigger.bind(this),\n position: this.position,\n frontPosition: this.frontPosition,\n ui: this.ui,\n identifier: this.identifier,\n id: this.id,\n options: this.options\n };\n\n return this.instance;\n};\n\nNipple.prototype = new Super();\nNipple.constructor = Nipple;\nNipple.id = 0;\n\n// Build the dom element of the Nipple instance.\nNipple.prototype.buildEl = function (options) {\n this.ui = {};\n\n if (this.options.dataOnly) {\n return this;\n }\n\n this.ui.el = document.createElement('div');\n this.ui.back = document.createElement('div');\n this.ui.front = document.createElement('div');\n\n this.ui.el.className = 'nipple collection_' + this.collection.id;\n this.ui.back.className = 'back';\n this.ui.front.className = 'front';\n\n this.ui.el.setAttribute('id', 'nipple_' + this.collection.id +\n '_' + this.id);\n\n this.ui.el.appendChild(this.ui.back);\n this.ui.el.appendChild(this.ui.front);\n\n return this;\n};\n\n// Apply CSS to the Nipple instance.\nNipple.prototype.stylize = function () {\n if (this.options.dataOnly) {\n return this;\n }\n var animTime = this.options.fadeTime + 'ms';\n var borderStyle = u.getVendorStyle('borderRadius', '50%');\n var transitStyle = u.getTransitionStyle('transition', 'opacity', animTime);\n var styles = {};\n styles.el = {\n position: 'absolute',\n opacity: this.options.restOpacity,\n display: 'block',\n 'zIndex': 999\n };\n\n styles.back = {\n position: 'absolute',\n display: 'block',\n width: this.options.size + 'px',\n height: this.options.size + 'px',\n marginLeft: -this.options.size / 2 + 'px',\n marginTop: -this.options.size / 2 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n styles.front = {\n width: this.options.size / 2 + 'px',\n height: this.options.size / 2 + 'px',\n position: 'absolute',\n display: 'block',\n marginLeft: -this.options.size / 4 + 'px',\n marginTop: -this.options.size / 4 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n u.extend(styles.el, transitStyle);\n u.extend(styles.back, borderStyle);\n u.extend(styles.front, borderStyle);\n\n this.applyStyles(styles);\n\n return this;\n};\n\nNipple.prototype.applyStyles = function (styles) {\n // Apply styles\n for (var i in this.ui) {\n if (this.ui.hasOwnProperty(i)) {\n for (var j in styles[i]) {\n this.ui[i].style[j] = styles[i][j];\n }\n }\n }\n\n return this;\n};\n\n// Inject the Nipple instance into DOM.\nNipple.prototype.addToDom = function () {\n // We're not adding it if we're dataOnly or already in dom.\n if (this.options.dataOnly || document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.appendChild(this.ui.el);\n return this;\n};\n\n// Remove the Nipple instance from DOM.\nNipple.prototype.removeFromDom = function () {\n if (this.options.dataOnly || !document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.removeChild(this.ui.el);\n return this;\n};\n\n// Entirely destroy this nipple\nNipple.prototype.destroy = function () {\n clearTimeout(this.removeTimeout);\n clearTimeout(this.showTimeout);\n clearTimeout(this.restTimeout);\n this.trigger('destroyed', this.instance);\n this.removeFromDom();\n this.off();\n};\n\n// Fade in the Nipple instance.\nNipple.prototype.show = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.addToDom();\n\n self.restCallback();\n\n setTimeout(function () {\n self.ui.el.style.opacity = 1;\n }, 0);\n\n self.showTimeout = setTimeout(function () {\n self.trigger('shown', self.instance);\n if (typeof cb === 'function') {\n cb.call(this);\n }\n }, self.options.fadeTime);\n\n return self;\n};\n\n// Fade out the Nipple instance.\nNipple.prototype.hide = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n self.ui.el.style.opacity = self.options.restOpacity;\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.removeTimeout = setTimeout(\n function () {\n var display = self.options.mode === 'dynamic' ? 'none' : 'block';\n self.ui.el.style.display = display;\n if (typeof cb === 'function') {\n cb.call(self);\n }\n\n self.trigger('hidden', self.instance);\n },\n self.options.fadeTime\n );\n if (self.options.restJoystick) {\n self.restPosition();\n }\n\n return self;\n};\n\nNipple.prototype.restPosition = function (cb) {\n var self = this;\n self.frontPosition = {\n x: 0,\n y: 0\n };\n var animTime = self.options.fadeTime + 'ms';\n\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition',\n ['top', 'left'], animTime);\n\n var styles = {front: {}};\n styles.front = {\n left: self.frontPosition.x + 'px',\n top: self.frontPosition.y + 'px'\n };\n\n self.applyStyles(transitStyle);\n self.applyStyles(styles);\n\n self.restTimeout = setTimeout(\n function () {\n if (typeof cb === 'function') {\n cb.call(self);\n }\n self.restCallback();\n },\n self.options.fadeTime\n );\n};\n\nNipple.prototype.restCallback = function () {\n var self = this;\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition', 'none', '');\n self.applyStyles(transitStyle);\n self.trigger('rested', self.instance);\n};\n\nNipple.prototype.resetDirection = function () {\n // Fully rebuild the object to let the iteration possible.\n this.direction = {\n x: false,\n y: false,\n angle: false\n };\n};\n\nNipple.prototype.computeDirection = function (obj) {\n var rAngle = obj.angle.radian;\n var angle45 = Math.PI / 4;\n var angle90 = Math.PI / 2;\n var direction, directionX, directionY;\n\n // Angular direction\n // \\ UP /\n // \\ /\n // LEFT RIGHT\n // / \\\n // /DOWN \\\n //\n if (\n rAngle > angle45 &&\n rAngle < (angle45 * 3) &&\n !obj.lockX\n ) {\n direction = 'up';\n } else if (\n rAngle > -angle45 &&\n rAngle <= angle45 &&\n !obj.lockY\n ) {\n direction = 'left';\n } else if (\n rAngle > (-angle45 * 3) &&\n rAngle <= -angle45 &&\n !obj.lockX\n ) {\n direction = 'down';\n } else if (!obj.lockY) {\n direction = 'right';\n }\n\n // Plain direction\n // UP |\n // _______ | RIGHT\n // LEFT |\n // DOWN |\n if (!obj.lockY) {\n if (rAngle > -angle90 && rAngle < angle90) {\n directionX = 'left';\n } else {\n directionX = 'right';\n }\n }\n\n if (!obj.lockX) {\n if (rAngle > 0) {\n directionY = 'up';\n } else {\n directionY = 'down';\n }\n }\n\n if (obj.force > this.options.threshold) {\n var oldDirection = {};\n for (var i in this.direction) {\n if (this.direction.hasOwnProperty(i)) {\n oldDirection[i] = this.direction[i];\n }\n }\n\n var same = {};\n\n this.direction = {\n x: directionX,\n y: directionY,\n angle: direction\n };\n\n obj.direction = this.direction;\n\n for (var i in oldDirection) {\n if (oldDirection[i] === this.direction[i]) {\n same[i] = true;\n }\n }\n\n // If all 3 directions are the same, we don't trigger anything.\n if (same.x && same.y && same.angle) {\n return obj;\n }\n\n if (!same.x || !same.y) {\n this.trigger('plain', obj);\n }\n\n if (!same.x) {\n this.trigger('plain:' + directionX, obj);\n }\n\n if (!same.y) {\n this.trigger('plain:' + directionY, obj);\n }\n\n if (!same.angle) {\n this.trigger('dir dir:' + direction, obj);\n }\n }\n return obj;\n};\n\n/* global Nipple, Super */\n\n///////////////////////////\n/// THE COLLECTION ///\n///////////////////////////\n\nfunction Collection (manager, options) {\n var self = this;\n self.nipples = [];\n self.idles = [];\n self.actives = [];\n self.ids = [];\n self.pressureIntervals = {};\n self.manager = manager;\n self.id = Collection.id;\n Collection.id += 1;\n\n // Defaults\n self.defaults = {\n zone: document.body,\n multitouch: false,\n maxNumberOfNipples: 10,\n mode: 'dynamic',\n position: {top: 0, left: 0},\n catchDistance: 200,\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n lockX: false,\n lockY: false\n };\n\n self.config(options);\n\n // Overwrites\n if (self.options.mode === 'static' || self.options.mode === 'semi') {\n self.options.multitouch = false;\n }\n\n if (!self.options.multitouch) {\n self.options.maxNumberOfNipples = 1;\n }\n\n self.updateBox();\n self.prepareNipples();\n self.bindings();\n self.begin();\n\n return self.nipples;\n}\n\nCollection.prototype = new Super();\nCollection.constructor = Collection;\nCollection.id = 0;\n\nCollection.prototype.prepareNipples = function () {\n var self = this;\n var nips = self.nipples;\n\n // Public API Preparation.\n nips.on = self.on.bind(self);\n nips.off = self.off.bind(self);\n nips.options = self.options;\n nips.destroy = self.destroy.bind(self);\n nips.ids = self.ids;\n nips.id = self.id;\n nips.processOnMove = self.processOnMove.bind(self);\n nips.processOnEnd = self.processOnEnd.bind(self);\n nips.get = function (id) {\n if (id === undefined) {\n return nips[0];\n }\n for (var i = 0, max = nips.length; i < max; i += 1) {\n if (nips[i].identifier === id) {\n return nips[i];\n }\n }\n return false;\n };\n};\n\nCollection.prototype.bindings = function () {\n var self = this;\n // Touch start event.\n self.bindEvt(self.options.zone, 'start');\n // Avoid native touch actions (scroll, zoom etc...) on the zone.\n self.options.zone.style.touchAction = 'none';\n self.options.zone.style.msTouchAction = 'none';\n};\n\nCollection.prototype.begin = function () {\n var self = this;\n var opts = self.options;\n\n // We place our static nipple\n // if needed.\n if (opts.mode === 'static') {\n var nipple = self.createNipple(\n opts.position,\n self.manager.getIdentifier()\n );\n // Add it to the dom.\n nipple.add();\n // Store it in idles.\n self.idles.push(nipple);\n }\n};\n\n// Nipple Factory\nCollection.prototype.createNipple = function (position, identifier) {\n var self = this;\n var scroll = u.getScroll();\n var toPutOn = {};\n var opts = self.options;\n\n if (position.x && position.y) {\n toPutOn = {\n x: position.x -\n (scroll.x + self.box.left),\n y: position.y -\n (scroll.y + self.box.top)\n };\n } else if (\n position.top ||\n position.right ||\n position.bottom ||\n position.left\n ) {\n\n // We need to compute the position X / Y of the joystick.\n var dumb = document.createElement('DIV');\n dumb.style.display = 'hidden';\n dumb.style.top = position.top;\n dumb.style.right = position.right;\n dumb.style.bottom = position.bottom;\n dumb.style.left = position.left;\n dumb.style.position = 'absolute';\n\n opts.zone.appendChild(dumb);\n var dumbBox = dumb.getBoundingClientRect();\n opts.zone.removeChild(dumb);\n\n toPutOn = position;\n position = {\n x: dumbBox.left + scroll.x,\n y: dumbBox.top + scroll.y\n };\n }\n\n var nipple = new Nipple(self, {\n color: opts.color,\n size: opts.size,\n threshold: opts.threshold,\n fadeTime: opts.fadeTime,\n dataOnly: opts.dataOnly,\n restJoystick: opts.restJoystick,\n restOpacity: opts.restOpacity,\n mode: opts.mode,\n identifier: identifier,\n position: position,\n zone: opts.zone,\n frontPosition: {\n x: 0,\n y: 0\n }\n });\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.el, toPutOn);\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n self.nipples.push(nipple);\n self.trigger('added ' + nipple.identifier + ':added', nipple);\n self.manager.trigger('added ' + nipple.identifier + ':added', nipple);\n\n self.bindNipple(nipple);\n\n return nipple;\n};\n\nCollection.prototype.updateBox = function () {\n var self = this;\n self.box = self.options.zone.getBoundingClientRect();\n};\n\nCollection.prototype.bindNipple = function (nipple) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's id.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed.\n nipple.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n nipple.on('shown hidden rested dir plain', handler);\n nipple.on('dir:up dir:right dir:down dir:left', handler);\n nipple.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nCollection.prototype.pressureFn = function (touch, nipple, identifier) {\n var self = this;\n var previousPressure = 0;\n clearInterval(self.pressureIntervals[identifier]);\n // Create an interval that will read the pressure every 100ms\n self.pressureIntervals[identifier] = setInterval(function () {\n var pressure = touch.force || touch.pressure ||\n touch.webkitForce || 0;\n if (pressure !== previousPressure) {\n nipple.trigger('pressure', pressure);\n self.trigger('pressure ' +\n nipple.identifier + ':pressure', pressure);\n previousPressure = pressure;\n }\n }.bind(self), 100);\n};\n\nCollection.prototype.onstart = function (evt) {\n var self = this;\n var opts = self.options;\n evt = u.prepareEvent(evt);\n\n // Update the box position\n self.updateBox();\n\n var process = function (touch) {\n // If we can create new nipples\n // meaning we don't have more active nipples than we should.\n if (self.actives.length < opts.maxNumberOfNipples) {\n self.processOnStart(touch);\n }\n };\n\n u.map(evt, process);\n\n // We ask upstream to bind the document\n // on 'move' and 'end'\n self.manager.bindDocument();\n return false;\n};\n\nCollection.prototype.processOnStart = function (evt) {\n var self = this;\n var opts = self.options;\n var indexInIdles;\n var identifier = self.manager.getIdentifier(evt);\n var pressure = evt.force || evt.pressure || evt.webkitForce || 0;\n var position = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var nipple = self.getOrCreate(identifier, position);\n\n // Update its touch identifier\n if (nipple.identifier !== identifier) {\n self.manager.removeIdentifier(nipple.identifier);\n }\n nipple.identifier = identifier;\n\n var process = function (nip) {\n // Trigger the start.\n nip.trigger('start', nip);\n self.trigger('start ' + nip.id + ':start', nip);\n\n nip.show();\n if (pressure > 0) {\n self.pressureFn(evt, nip, nip.identifier);\n }\n // Trigger the first move event.\n self.processOnMove(evt);\n };\n\n // Transfer it from idles to actives.\n if ((indexInIdles = self.idles.indexOf(nipple)) >= 0) {\n self.idles.splice(indexInIdles, 1);\n }\n\n // Store the nipple in the actives array\n self.actives.push(nipple);\n self.ids.push(nipple.identifier);\n\n if (opts.mode !== 'semi') {\n process(nipple);\n } else {\n // In semi we check the distance of the touch\n // to decide if we have to reset the nipple\n var distance = u.distance(position, nipple.position);\n if (distance <= opts.catchDistance) {\n process(nipple);\n } else {\n nipple.destroy();\n self.processOnStart(evt);\n return;\n }\n }\n\n return nipple;\n};\n\nCollection.prototype.getOrCreate = function (identifier, position) {\n var self = this;\n var opts = self.options;\n var nipple;\n\n // If we're in static or semi, we might already have an active.\n if (/(semi|static)/.test(opts.mode)) {\n // Get the active one.\n // TODO: Multi-touche for semi and static will start here.\n // Return the nearest one.\n nipple = self.idles[0];\n if (nipple) {\n self.idles.splice(0, 1);\n return nipple;\n }\n\n if (opts.mode === 'semi') {\n // If we're in semi mode, we need to create one.\n return self.createNipple(position, identifier);\n }\n\n console.warn('Coudln\\'t find the needed nipple.');\n return false;\n }\n // In dynamic, we create a new one.\n nipple = self.createNipple(position, identifier);\n return nipple;\n};\n\nCollection.prototype.processOnMove = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n\n if (!nipple) {\n // This is here just for safety.\n // It shouldn't happen.\n console.error('Found zombie joystick with ID ' + identifier);\n self.manager.removeIdentifier(identifier);\n return;\n }\n\n nipple.identifier = identifier;\n\n var size = nipple.options.size / 2;\n var pos = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var dist = u.distance(pos, nipple.position);\n var angle = u.angle(pos, nipple.position);\n var rAngle = u.radians(angle);\n var force = dist / size;\n\n // If distance is bigger than nipple's size\n // we clamp the position.\n if (dist > size) {\n dist = size;\n pos = u.findCoord(nipple.position, dist, angle);\n }\n\n var xPosition = pos.x - nipple.position.x\n var yPosition = pos.y - nipple.position.y\n\n if (opts.lockX){\n yPosition = 0\n }\n if (opts.lockY) {\n xPosition = 0\n }\n\n nipple.frontPosition = {\n x: xPosition,\n y: yPosition\n };\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n\n // Prepare event's datas.\n var toSend = {\n identifier: nipple.identifier,\n position: pos,\n force: force,\n pressure: evt.force || evt.pressure || evt.webkitForce || 0,\n distance: dist,\n angle: {\n radian: rAngle,\n degree: angle\n },\n instance: nipple,\n lockX: opts.lockX,\n lockY: opts.lockY\n };\n\n // Compute the direction's datas.\n toSend = nipple.computeDirection(toSend);\n\n // Offset angles to follow units circle.\n toSend.angle = {\n radian: u.radians(180 - angle),\n degree: 180 - angle\n };\n\n // Send everything to everyone.\n nipple.trigger('move', toSend);\n self.trigger('move ' + nipple.id + ':move', toSend);\n};\n\nCollection.prototype.processOnEnd = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n var removedIdentifier = self.manager.removeIdentifier(nipple.identifier);\n\n if (!nipple) {\n return;\n }\n\n if (!opts.dataOnly) {\n nipple.hide(function () {\n if (opts.mode === 'dynamic') {\n nipple.trigger('removed', nipple);\n self.trigger('removed ' + nipple.id + ':removed', nipple);\n self.manager\n .trigger('removed ' + nipple.id + ':removed', nipple);\n nipple.destroy();\n }\n });\n }\n\n // Clear the pressure interval reader\n clearInterval(self.pressureIntervals[nipple.identifier]);\n\n // Reset the direciton of the nipple, to be able to trigger a new direction\n // on start.\n nipple.resetDirection();\n\n nipple.trigger('end', nipple);\n self.trigger('end ' + nipple.id + ':end', nipple);\n\n // Remove identifier from our bank.\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Clean our actives array.\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n\n if (/(semi|static)/.test(opts.mode)) {\n // Transfer nipple from actives to idles\n // if we're in semi or static mode.\n self.idles.push(nipple);\n } else if (self.nipples.indexOf(nipple) >= 0) {\n // Only if we're not in semi or static mode\n // we can remove the instance.\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n\n // We unbind move and end.\n self.manager.unbindDocument();\n\n // We add back the identifier of the idle nipple;\n if (/(semi|static)/.test(opts.mode)) {\n self.manager.ids[removedIdentifier.id] = removedIdentifier.identifier;\n }\n};\n\n// Remove destroyed nipple from the lists\nCollection.prototype.onDestroyed = function(evt, nipple) {\n var self = this;\n if (self.nipples.indexOf(nipple) >= 0) {\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n if (self.idles.indexOf(nipple) >= 0) {\n self.idles.splice(self.idles.indexOf(nipple), 1);\n }\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Remove the identifier from our bank\n self.manager.removeIdentifier(nipple.identifier);\n\n // We unbind move and end.\n self.manager.unbindDocument();\n};\n\n// Cleanly destroy the manager\nCollection.prototype.destroy = function () {\n var self = this;\n self.unbindEvt(self.options.zone, 'start');\n\n // Destroy nipples.\n self.nipples.forEach(function(nipple) {\n nipple.destroy();\n });\n\n // Clean 3DTouch intervals.\n for (var i in self.pressureIntervals) {\n if (self.pressureIntervals.hasOwnProperty(i)) {\n clearInterval(self.pressureIntervals[i]);\n }\n }\n\n // Notify the manager passing the instance\n self.trigger('destroyed', self.nipples);\n // We unbind move and end.\n self.manager.unbindDocument();\n // Unbind everything.\n self.off();\n};\n\n/* global u, Super, Collection */\n\n///////////////////////\n/// MANAGER ///\n///////////////////////\n\nfunction Manager (options) {\n var self = this;\n self.ids = {};\n self.index = 0;\n self.collections = [];\n\n self.config(options);\n self.prepareCollections();\n\n // Listen for resize, to reposition every joysticks\n var resizeTimer;\n u.bindEvt(window, 'resize', function (evt) {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(function () {\n var pos;\n var scroll = u.getScroll();\n self.collections.forEach(function (collection) {\n collection.forEach(function (nipple) {\n pos = nipple.el.getBoundingClientRect();\n nipple.position = {\n x: scroll.x + pos.left,\n y: scroll.y + pos.top\n };\n });\n });\n }, 100);\n });\n\n return self.collections;\n};\n\nManager.prototype = new Super();\nManager.constructor = Manager;\n\nManager.prototype.prepareCollections = function () {\n var self = this;\n // Public API Preparation.\n self.collections.create = self.create.bind(self);\n // Listen to anything\n self.collections.on = self.on.bind(self);\n // Unbind general events\n self.collections.off = self.off.bind(self);\n // Destroy everything\n self.collections.destroy = self.destroy.bind(self);\n // Get any nipple\n self.collections.get = function (id) {\n var nipple;\n self.collections.every(function (collection) {\n if (nipple = collection.get(id)) {\n return false;\n }\n return true;\n });\n return nipple;\n };\n};\n\nManager.prototype.create = function (options) {\n return this.createCollection(options);\n};\n\n// Collection Factory\nManager.prototype.createCollection = function (options) {\n var self = this;\n var collection = new Collection(self, options);\n\n self.bindCollection(collection);\n self.collections.push(collection);\n\n return collection;\n};\n\nManager.prototype.bindCollection = function (collection) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's identifier.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed we clean.\n collection.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n collection.on('shown hidden rested dir plain', handler);\n collection.on('dir:up dir:right dir:down dir:left', handler);\n collection.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nManager.prototype.bindDocument = function () {\n var self = this;\n // Bind only if not already binded\n if (!self.binded) {\n self.bindEvt(document, 'move')\n .bindEvt(document, 'end');\n self.binded = true;\n }\n};\n\nManager.prototype.unbindDocument = function (force) {\n var self = this;\n // If there are no touch left\n // unbind the document.\n if (!Object.keys(self.ids).length || force === true) {\n self.unbindEvt(document, 'move')\n .unbindEvt(document, 'end');\n self.binded = false;\n }\n};\n\nManager.prototype.getIdentifier = function (evt) {\n var id;\n // If no event, simple increment\n if (!evt) {\n id = this.index;\n } else {\n // Extract identifier from event object.\n // Unavailable in mouse events so replaced by latest increment.\n id = evt.identifier === undefined ? evt.pointerId : evt.identifier;\n if (id === undefined) {\n id = this.latest || 0;\n }\n }\n\n if (this.ids[id] === undefined) {\n this.ids[id] = this.index;\n this.index += 1;\n }\n\n // Keep the latest id used in case we're using an unidentified mouseEvent\n this.latest = id;\n return this.ids[id];\n};\n\nManager.prototype.removeIdentifier = function (identifier) {\n var removed = {};\n for (var id in this.ids) {\n if (this.ids[id] === identifier) {\n removed.id = id;\n removed.identifier = this.ids[id];\n delete this.ids[id];\n break;\n }\n }\n return removed;\n};\n\nManager.prototype.onmove = function (evt) {\n var self = this;\n self.onAny('move', evt);\n return false;\n};\n\nManager.prototype.onend = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.oncancel = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.onAny = function (which, evt) {\n var self = this;\n var id;\n var processFn = 'processOn' + which.charAt(0).toUpperCase() +\n which.slice(1);\n evt = u.prepareEvent(evt);\n var processColl = function (e, id, coll) {\n if (coll.ids.indexOf(id) >= 0) {\n coll[processFn](e);\n // Mark the event to avoid cleaning it later.\n e._found_ = true;\n }\n };\n var processEvt = function (e) {\n id = self.getIdentifier(e);\n u.map(self.collections, processColl.bind(null, e, id));\n // If the event isn't handled by any collection,\n // we need to clean its identifier.\n if (!e._found_) {\n self.removeIdentifier(id);\n }\n };\n\n u.map(evt, processEvt);\n\n return false;\n};\n\n// Cleanly destroy the manager\nManager.prototype.destroy = function () {\n var self = this;\n self.unbindDocument(true);\n self.ids = {};\n self.index = 0;\n self.collections.forEach(function(collection) {\n collection.destroy();\n });\n self.off();\n};\n\n// When a collection gets destroyed\n// we clean behind.\nManager.prototype.onDestroyed = function (evt, coll) {\n var self = this;\n if (self.collections.indexOf(coll) < 0) {\n return false;\n }\n self.collections.splice(self.collections.indexOf(coll), 1);\n};\n\nvar factory = new Manager();\nreturn {\n create: function (options) {\n return factory.create(options);\n },\n factory: factory\n};\n\n});\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","/**\r\n * Returns the object type of the given payload\r\n *\r\n * @param {*} payload\r\n * @returns {string}\r\n */\r\nfunction getType(payload) {\r\n return Object.prototype.toString.call(payload).slice(8, -1);\r\n}\r\n/**\r\n * Returns whether the payload is undefined\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isUndefined(payload) {\r\n return getType(payload) === 'Undefined';\r\n}\r\n/**\r\n * Returns whether the payload is null\r\n *\r\n * @param {*} payload\r\n * @returns {payload is null}\r\n */\r\nfunction isNull(payload) {\r\n return getType(payload) === 'Null';\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isPlainObject(payload) {\r\n if (getType(payload) !== 'Object')\r\n return false;\r\n return (payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype);\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isObject(payload) {\r\n return isPlainObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isAnyObject(payload) {\r\n return getType(payload) === 'Object';\r\n}\r\n/**\r\n * Returns whether the payload is an object like a type passed in < >\r\n *\r\n * Usage: isObjectLike<{id: any}>(payload) // will make sure it's an object and has an `id` prop.\r\n *\r\n * @template T this must be passed in < >\r\n * @param {*} payload\r\n * @returns {payload is T}\r\n */\r\nfunction isObjectLike(payload) {\r\n return isAnyObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a function\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Function}\r\n */\r\nfunction isFunction(payload) {\r\n return getType(payload) === 'Function';\r\n}\r\n/**\r\n * Returns whether the payload is an array\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isArray(payload) {\r\n return getType(payload) === 'Array';\r\n}\r\n/**\r\n * Returns whether the payload is a string\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isString(payload) {\r\n return getType(payload) === 'String';\r\n}\r\n/**\r\n * Returns whether the payload is a string, BUT returns false for ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isFullString(payload) {\r\n return isString(payload) && payload !== '';\r\n}\r\n/**\r\n * Returns whether the payload is ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isEmptyString(payload) {\r\n return payload === '';\r\n}\r\n/**\r\n * Returns whether the payload is a number\r\n *\r\n * This will return false for NaN\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\r\nfunction isNumber(payload) {\r\n return (getType(payload) === 'Number' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a boolean\r\n *\r\n * @param {*} payload\r\n * @returns {payload is boolean}\r\n */\r\nfunction isBoolean(payload) {\r\n return getType(payload) === 'Boolean';\r\n}\r\n/**\r\n * Returns whether the payload is a regular expression\r\n *\r\n * @param {*} payload\r\n * @returns {payload is RegExp}\r\n */\r\nfunction isRegExp(payload) {\r\n return getType(payload) === 'RegExp';\r\n}\r\n/**\r\n * Returns whether the payload is a date, and that the date is Valid\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Date}\r\n */\r\nfunction isDate(payload) {\r\n return (getType(payload) === 'Date' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a Symbol\r\n *\r\n * @param {*} payload\r\n * @returns {payload is symbol}\r\n */\r\nfunction isSymbol(payload) {\r\n return (getType(payload) === 'Symbol');\r\n}\r\n/**\r\n * Returns whether the payload is a primitive type (eg. Boolean | Null | Undefined | Number | String | Symbol)\r\n *\r\n * @param {*} payload\r\n * @returns {(payload is boolean | null | undefined | number | string | symbol)}\r\n */\r\nfunction isPrimitive(payload) {\r\n return (isBoolean(payload) ||\r\n isNull(payload) ||\r\n isUndefined(payload) ||\r\n isNumber(payload) ||\r\n isString(payload) ||\r\n isSymbol(payload));\r\n}\r\n/**\r\n * Does a generic check to check that the given payload is of a given type.\r\n * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!);\r\n * It will, however, differentiate between object and null\r\n *\r\n * @template T\r\n * @param {*} payload\r\n * @param {T} type\r\n * @throws {TypeError} Will throw type error if type is an invalid type\r\n * @returns {payload is T}\r\n */\r\nfunction isType(payload, type) {\r\n if (!(type instanceof Function)) {\r\n throw new TypeError('Type must be a function');\r\n }\r\n if (!type.hasOwnProperty('prototype')) {\r\n throw new TypeError('Type is not a class');\r\n }\r\n // Classes usually have names (as functions usually have names)\r\n var name = type.name;\r\n return (getType(payload) === name) || Boolean(payload && (payload.constructor === type));\r\n}\n\nexport { getType, isUndefined, isNull, isPlainObject, isObject, isAnyObject, isObjectLike, isFunction, isArray, isString, isFullString, isEmptyString, isNumber, isBoolean, isRegExp, isDate, isSymbol, isPrimitive, isType };\n","import { isArray, isPlainObject, isSymbol } from 'is-what';\n\nfunction assignProp(carry, key, newVal, originalObject) {\r\n var propType = originalObject.propertyIsEnumerable(key)\r\n ? 'enumerable'\r\n : 'nonenumerable';\r\n if (propType === 'enumerable')\r\n carry[key] = newVal;\r\n if (propType === 'nonenumerable') {\r\n Object.defineProperty(carry, key, {\r\n value: newVal,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n });\r\n }\r\n}\r\nfunction mergeRecursively(origin, newComer, extensions) {\r\n // work directly on newComer if its not an object\r\n if (!isPlainObject(newComer)) {\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newComer = extend(origin, newComer);\r\n });\r\n }\r\n return newComer;\r\n }\r\n // define newObject to merge all values upon\r\n var newObject = {};\r\n if (isPlainObject(origin)) {\r\n var props_1 = Object.getOwnPropertyNames(origin);\r\n var symbols_1 = Object.getOwnPropertySymbols(origin);\r\n newObject = props_1.concat(symbols_1).reduce(function (carry, key) {\r\n // @ts-ignore\r\n var targetVal = origin[key];\r\n if ((!isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key)) ||\r\n (isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key))) {\r\n assignProp(carry, key, targetVal, origin);\r\n }\r\n return carry;\r\n }, {});\r\n }\r\n var props = Object.getOwnPropertyNames(newComer);\r\n var symbols = Object.getOwnPropertySymbols(newComer);\r\n var result = props.concat(symbols).reduce(function (carry, key) {\r\n // re-define the origin and newComer as targetVal and newVal\r\n var newVal = newComer[key];\r\n var targetVal = (isPlainObject(origin))\r\n // @ts-ignore\r\n ? origin[key]\r\n : undefined;\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newVal = extend(targetVal, newVal);\r\n });\r\n }\r\n // When newVal is an object do the merge recursively\r\n if (targetVal !== undefined && isPlainObject(newVal)) {\r\n newVal = mergeRecursively(targetVal, newVal, extensions);\r\n }\r\n assignProp(carry, key, newVal, newComer);\r\n return carry;\r\n }, newObject);\r\n return result;\r\n}\r\n/**\r\n * Merge anything recursively.\r\n * Objects get merged, special objects (classes etc.) are re-assigned \"as is\".\r\n * Basic types overwrite objects or other basic types.\r\n *\r\n * @param {(IConfig | any)} origin\r\n * @param {...any[]} newComers\r\n * @returns the result\r\n */\r\nfunction merge(origin) {\r\n var newComers = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n newComers[_i - 1] = arguments[_i];\r\n }\r\n var extensions = null;\r\n var base = origin;\r\n if (isPlainObject(origin) && origin.extensions && Object.keys(origin).length === 1) {\r\n base = {};\r\n extensions = origin.extensions;\r\n }\r\n return newComers.reduce(function (result, newComer) {\r\n return mergeRecursively(result, newComer, extensions);\r\n }, base);\r\n}\n\nfunction concatArrays(originVal, newVal) {\r\n if (isArray(originVal) && isArray(newVal)) {\r\n // concat logic\r\n return originVal.concat(newVal);\r\n }\r\n return newVal; // always return newVal as fallback!!\r\n}\n\nexport default merge;\nexport { merge, concatArrays };\n","/** @license React v16.8.6\n * react-is.production.min.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'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (colorNames.hasOwnProperty(name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar keyword = /(\\D+)/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\n\t\tif (!rgb) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = (parseFloat(match[1]) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = num.toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function () { /* empty */ };\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","/**\n * @ignore\n * event object for dom\n * @author yiminghe@gmail.com\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventBaseObject = require('./EventBaseObject');\n\nvar _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar TRUE = true;\nvar FALSE = false;\nvar commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];\n\nfunction isNullOrUndefined(w) {\n return w === null || w === undefined;\n}\n\nvar eventNormalizers = [{\n reg: /^key/,\n props: ['char', 'charCode', 'key', 'keyCode', 'which'],\n fix: function fix(event, nativeEvent) {\n if (isNullOrUndefined(event.which)) {\n event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;\n }\n\n // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)\n if (event.metaKey === undefined) {\n event.metaKey = event.ctrlKey;\n }\n }\n}, {\n reg: /^touch/,\n props: ['touches', 'changedTouches', 'targetTouches']\n}, {\n reg: /^hashchange$/,\n props: ['newURL', 'oldURL']\n}, {\n reg: /^gesturechange$/i,\n props: ['rotation', 'scale']\n}, {\n reg: /^(mousewheel|DOMMouseScroll)$/,\n props: [],\n fix: function fix(event, nativeEvent) {\n var deltaX = undefined;\n var deltaY = undefined;\n var delta = undefined;\n var wheelDelta = nativeEvent.wheelDelta;\n var axis = nativeEvent.axis;\n var wheelDeltaY = nativeEvent.wheelDeltaY;\n var wheelDeltaX = nativeEvent.wheelDeltaX;\n var detail = nativeEvent.detail;\n\n // ie/webkit\n if (wheelDelta) {\n delta = wheelDelta / 120;\n }\n\n // gecko\n if (detail) {\n // press control e.detail == 1 else e.detail == 3\n delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);\n }\n\n // Gecko\n if (axis !== undefined) {\n if (axis === event.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = 0 - delta;\n } else if (axis === event.VERTICAL_AXIS) {\n deltaX = 0;\n deltaY = delta;\n }\n }\n\n // Webkit\n if (wheelDeltaY !== undefined) {\n deltaY = wheelDeltaY / 120;\n }\n if (wheelDeltaX !== undefined) {\n deltaX = -1 * wheelDeltaX / 120;\n }\n\n // 默认 deltaY (ie)\n if (!deltaX && !deltaY) {\n deltaY = delta;\n }\n\n if (deltaX !== undefined) {\n /**\n * deltaX of mousewheel event\n * @property deltaX\n * @member Event.DomEvent.Object\n */\n event.deltaX = deltaX;\n }\n\n if (deltaY !== undefined) {\n /**\n * deltaY of mousewheel event\n * @property deltaY\n * @member Event.DomEvent.Object\n */\n event.deltaY = deltaY;\n }\n\n if (delta !== undefined) {\n /**\n * delta of mousewheel event\n * @property delta\n * @member Event.DomEvent.Object\n */\n event.delta = delta;\n }\n }\n}, {\n reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,\n props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],\n fix: function fix(event, nativeEvent) {\n var eventDoc = undefined;\n var doc = undefined;\n var body = undefined;\n var target = event.target;\n var button = nativeEvent.button;\n\n // Calculate pageX/Y if missing and clientX/Y available\n if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {\n eventDoc = target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // which for click: 1 === left; 2 === middle; 3 === right\n // do not use button\n if (!event.which && button !== undefined) {\n if (button & 1) {\n event.which = 1;\n } else if (button & 2) {\n event.which = 3;\n } else if (button & 4) {\n event.which = 2;\n } else {\n event.which = 0;\n }\n }\n\n // add relatedTarget, if necessary\n if (!event.relatedTarget && event.fromElement) {\n event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;\n }\n\n return event;\n }\n}];\n\nfunction retTrue() {\n return TRUE;\n}\n\nfunction retFalse() {\n return FALSE;\n}\n\nfunction DomEventObject(nativeEvent) {\n var type = nativeEvent.type;\n\n var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';\n\n _EventBaseObject2['default'].call(this);\n\n this.nativeEvent = nativeEvent;\n\n // in case dom event has been mark as default prevented by lower dom node\n var isDefaultPrevented = retFalse;\n if ('defaultPrevented' in nativeEvent) {\n isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;\n } else if ('getPreventDefault' in nativeEvent) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=691151\n isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;\n } else if ('returnValue' in nativeEvent) {\n isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;\n }\n\n this.isDefaultPrevented = isDefaultPrevented;\n\n var fixFns = [];\n var fixFn = undefined;\n var l = undefined;\n var prop = undefined;\n var props = commonProps.concat();\n\n eventNormalizers.forEach(function (normalizer) {\n if (type.match(normalizer.reg)) {\n props = props.concat(normalizer.props);\n if (normalizer.fix) {\n fixFns.push(normalizer.fix);\n }\n }\n });\n\n l = props.length;\n\n // clone properties of the original event object\n while (l) {\n prop = props[--l];\n this[prop] = nativeEvent[prop];\n }\n\n // fix target property, if necessary\n if (!this.target && isNative) {\n this.target = nativeEvent.srcElement || document; // srcElement might not be defined either\n }\n\n // check if target is a text node (safari)\n if (this.target && this.target.nodeType === 3) {\n this.target = this.target.parentNode;\n }\n\n l = fixFns.length;\n\n while (l) {\n fixFn = fixFns[--l];\n fixFn(this, nativeEvent);\n }\n\n this.timeStamp = nativeEvent.timeStamp || Date.now();\n}\n\nvar EventBaseObjectProto = _EventBaseObject2['default'].prototype;\n\n(0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {\n constructor: DomEventObject,\n\n preventDefault: function preventDefault() {\n var e = this.nativeEvent;\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n // otherwise set the returnValue property of the original event to FALSE (IE)\n e.returnValue = FALSE;\n }\n\n EventBaseObjectProto.preventDefault.call(this);\n },\n\n stopPropagation: function stopPropagation() {\n var e = this.nativeEvent;\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n } else {\n // otherwise set the cancelBubble property of the original event to TRUE (IE)\n e.cancelBubble = TRUE;\n }\n\n EventBaseObjectProto.stopPropagation.call(this);\n }\n});\n\nexports['default'] = DomEventObject;\nmodule.exports = exports['default'];","/**\n * @ignore\n * base event object for custom and dom event.\n * @author yiminghe@gmail.com\n */\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction returnFalse() {\n return false;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction EventBaseObject() {\n this.timeStamp = Date.now();\n this.target = undefined;\n this.currentTarget = undefined;\n}\n\nEventBaseObject.prototype = {\n isEventObject: 1,\n\n constructor: EventBaseObject,\n\n isDefaultPrevented: returnFalse,\n\n isPropagationStopped: returnFalse,\n\n isImmediatePropagationStopped: returnFalse,\n\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n },\n\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n },\n\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n // fixed 1.2\n // call stopPropagation implicitly\n this.stopPropagation();\n },\n\n halt: function halt(immediate) {\n if (immediate) {\n this.stopImmediatePropagation();\n } else {\n this.stopPropagation();\n }\n this.preventDefault();\n }\n};\n\nexports[\"default\"] = EventBaseObject;\nmodule.exports = exports[\"default\"];","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\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","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n","var api = require(\"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../css-loader/dist/cjs.js!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function insertAtTop(element) {\n\t\t\t\t document.head.insertBefore(element, document.head.firstElementChild);\n\t\t\t\t};\noptions.singleton = false;\n\nvar update = api(content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;","\"use strict\";\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 = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\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 && btoa) {\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 ';\n };\n};\n\n/* takes a css factory function and outputs an element factory */\nvar wrapAsElement = function wrapAsElement(css, names) {\n return function () {\n var _props;\n\n var props = (_props = {}, _props[SC_ATTR] = stringifyNames(names), _props[SC_VERSION_ATTR] = \"4.4.0\", _props);\n\n var nonce = getNonce();\n if (nonce) {\n // $FlowFixMe\n props.nonce = nonce;\n }\n\n // eslint-disable-next-line react/no-danger\n return React.createElement('style', _extends({}, props, { dangerouslySetInnerHTML: { __html: css() } }));\n };\n};\n\nvar getIdsFromMarkersFactory = function getIdsFromMarkersFactory(markers) {\n return function () {\n return Object.keys(markers);\n };\n};\n\n/* speedy tags utilise insertRule */\nvar makeSpeedyTag = function makeSpeedyTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var sizes = [];\n\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = sizes.length;\n sizes.push(0);\n resetIdNames(names, id);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var sheet = sheetForTag(el);\n var insertIndex = addUpUntilIndex(sizes, marker);\n\n var injectedRules = 0;\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = cssRules[i];\n var mayHaveImport = extractImport; /* @import rules are reordered to appear first */\n if (mayHaveImport && cssRule.indexOf('@import') !== -1) {\n importRules.push(cssRule);\n } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n mayHaveImport = false;\n injectedRules += 1;\n }\n }\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n\n sizes[marker] += injectedRules; /* add up no of injected rules */\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n // $FlowFixMe\n if (el.isConnected === false) return;\n\n var size = sizes[marker];\n var sheet = sheetForTag(el);\n var removalIndex = addUpUntilIndex(sizes, marker) - 1;\n deleteRules(sheet, removalIndex, size);\n sizes[marker] = 0;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var _sheetForTag = sheetForTag(el),\n cssRules = _sheetForTag.cssRules;\n\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += makeTextMarker(id);\n var marker = markers[id];\n var end = addUpUntilIndex(sizes, marker);\n var size = sizes[marker];\n for (var i = end - size; i < end; i += 1) {\n var rule = cssRules[i];\n if (rule !== undefined) {\n str += rule.cssText;\n }\n }\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeTextNode = function makeTextNode(targetDocument, id) {\n return targetDocument.createTextNode(makeTextMarker(id));\n};\n\nvar makeBrowserTag = function makeBrowserTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n\n var extractImport = getImportRuleTag !== undefined;\n\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = makeTextNode(el.ownerDocument, id);\n el.appendChild(markers[id]);\n names[id] = Object.create(null);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var rule = cssRules[i];\n var mayHaveImport = extractImport;\n if (mayHaveImport && rule.indexOf('@import') !== -1) {\n importRules.push(rule);\n } else {\n mayHaveImport = false;\n var separator = i === cssRulesSize - 1 ? '' : ' ';\n marker.appendData('' + rule + separator);\n }\n }\n\n addNameForId(names, id, name);\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n\n /* create new empty text node and replace the current one */\n var newMarker = makeTextNode(el.ownerDocument, id);\n el.replaceChild(newMarker, marker);\n markers[id] = newMarker;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += markers[id].data;\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeServerTag = function makeServerTag(namesArg, markersArg) {\n var names = namesArg === undefined ? Object.create(null) : namesArg;\n var markers = markersArg === undefined ? Object.create(null) : markersArg;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n return markers[id] = [''];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n marker[0] += cssRules.join(' ');\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n marker[0] = '';\n resetIdNames(names, id);\n };\n\n var css = function css() {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n var cssForId = markers[id][0];\n if (cssForId) {\n str += makeTextMarker(id) + cssForId;\n }\n }\n return str;\n };\n\n var clone = function clone() {\n var namesClone = cloneNames(names);\n var markersClone = Object.create(null);\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n markersClone[id] = [markers[id][0]];\n }\n\n return makeServerTag(namesClone, markersClone);\n };\n\n var tag = {\n clone: clone,\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: null,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n\n return tag;\n};\n\nvar makeTag = function makeTag(target, tagEl, forceServer, insertBefore, getImportRuleTag) {\n if (IS_BROWSER && !forceServer) {\n var el = makeStyleTag(target, tagEl, insertBefore);\n\n if (DISABLE_SPEEDY) {\n return makeBrowserTag(el, getImportRuleTag);\n } else {\n return makeSpeedyTag(el, getImportRuleTag);\n }\n }\n\n return makeServerTag();\n};\n\nvar rehydrate = function rehydrate(tag, els, extracted) {\n /* add all extracted components to the new tag */\n for (var i = 0, len = extracted.length; i < len; i += 1) {\n var _extracted$i = extracted[i],\n componentId = _extracted$i.componentId,\n cssFromDOM = _extracted$i.cssFromDOM;\n\n var cssRules = splitByRules(cssFromDOM);\n tag.insertRules(componentId, cssRules);\n }\n\n /* remove old HTMLStyleElements, since they have been rehydrated */\n for (var _i = 0, _len = els.length; _i < _len; _i += 1) {\n var el = els[_i];\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n};\n\n// \n\nvar SPLIT_REGEX = /\\s+/;\n\n/* determine the maximum number of components before tags are sharded */\nvar MAX_SIZE = void 0;\nif (IS_BROWSER) {\n /* in speedy mode we can keep a lot more rules in a sheet before a slowdown can be expected */\n MAX_SIZE = DISABLE_SPEEDY ? 40 : 1000;\n} else {\n /* for servers we do not need to shard at all */\n MAX_SIZE = -1;\n}\n\nvar sheetRunningId = 0;\nvar master = void 0;\n\nvar StyleSheet = function () {\n\n /* a map from ids to tags */\n\n /* deferred rules for a given id */\n\n /* this is used for not reinjecting rules via hasNameForId() */\n\n /* when rules for an id are removed using remove() we have to ignore rehydratedNames for it */\n\n /* a list of tags belonging to this StyleSheet */\n\n /* a tag for import rules */\n\n /* current capacity until a new tag must be created */\n\n /* children (aka clones) of this StyleSheet inheriting all and future injections */\n\n function StyleSheet() {\n var _this = this;\n\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : IS_BROWSER ? document.head : null;\n var forceServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n classCallCheck(this, StyleSheet);\n\n this.getImportRuleTag = function () {\n var importRuleTag = _this.importRuleTag;\n\n if (importRuleTag !== undefined) {\n return importRuleTag;\n }\n\n var firstTag = _this.tags[0];\n var insertBefore = true;\n\n return _this.importRuleTag = makeTag(_this.target, firstTag ? firstTag.styleTag : null, _this.forceServer, insertBefore);\n };\n\n sheetRunningId += 1;\n this.id = sheetRunningId;\n this.forceServer = forceServer;\n this.target = forceServer ? null : target;\n this.tagMap = {};\n this.deferred = {};\n this.rehydratedNames = {};\n this.ignoreRehydratedNames = {};\n this.tags = [];\n this.capacity = 1;\n this.clones = [];\n }\n\n /* rehydrate all SSR'd style tags */\n\n\n StyleSheet.prototype.rehydrate = function rehydrate$$1() {\n if (!IS_BROWSER || this.forceServer) return this;\n\n var els = [];\n var extracted = [];\n var isStreamed = false;\n\n /* retrieve all of our SSR style elements from the DOM */\n var nodes = document.querySelectorAll('style[' + SC_ATTR + '][' + SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"]');\n\n var nodesSize = nodes.length;\n\n /* abort rehydration if no previous style tags were found */\n if (!nodesSize) return this;\n\n for (var i = 0; i < nodesSize; i += 1) {\n var el = nodes[i];\n\n /* check if style tag is a streamed tag */\n if (!isStreamed) isStreamed = !!el.getAttribute(SC_STREAM_ATTR);\n\n /* retrieve all component names */\n var elNames = (el.getAttribute(SC_ATTR) || '').trim().split(SPLIT_REGEX);\n var elNamesSize = elNames.length;\n for (var j = 0, name; j < elNamesSize; j += 1) {\n name = elNames[j];\n /* add rehydrated name to sheet to avoid re-adding styles */\n this.rehydratedNames[name] = true;\n }\n\n /* extract all components and their CSS */\n extracted.push.apply(extracted, extractComps(el.textContent));\n\n /* store original HTMLStyleElement */\n els.push(el);\n }\n\n /* abort rehydration if nothing was extracted */\n var extractedSize = extracted.length;\n if (!extractedSize) return this;\n\n /* create a tag to be used for rehydration */\n var tag = this.makeTag(null);\n\n rehydrate(tag, els, extracted);\n\n /* reset capacity and adjust MAX_SIZE by the initial size of the rehydration */\n this.capacity = Math.max(1, MAX_SIZE - extractedSize);\n this.tags.push(tag);\n\n /* retrieve all component ids */\n for (var _j = 0; _j < extractedSize; _j += 1) {\n this.tagMap[extracted[_j].componentId] = tag;\n }\n\n return this;\n };\n\n /* retrieve a \"master\" instance of StyleSheet which is typically used when no other is available\n * The master StyleSheet is targeted by createGlobalStyle, keyframes, and components outside of any\n * StyleSheetManager's context */\n\n\n /* reset the internal \"master\" instance */\n StyleSheet.reset = function reset() {\n var forceServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n master = new StyleSheet(undefined, forceServer).rehydrate();\n };\n\n /* adds \"children\" to the StyleSheet that inherit all of the parents' rules\n * while their own rules do not affect the parent */\n\n\n StyleSheet.prototype.clone = function clone() {\n var sheet = new StyleSheet(this.target, this.forceServer);\n\n /* add to clone array */\n this.clones.push(sheet);\n\n /* clone all tags */\n sheet.tags = this.tags.map(function (tag) {\n var ids = tag.getIds();\n var newTag = tag.clone();\n\n /* reconstruct tagMap */\n for (var i = 0; i < ids.length; i += 1) {\n sheet.tagMap[ids[i]] = newTag;\n }\n\n return newTag;\n });\n\n /* clone other maps */\n sheet.rehydratedNames = _extends({}, this.rehydratedNames);\n sheet.deferred = _extends({}, this.deferred);\n\n return sheet;\n };\n\n /* force StyleSheet to create a new tag on the next injection */\n\n\n StyleSheet.prototype.sealAllTags = function sealAllTags() {\n this.capacity = 1;\n\n this.tags.forEach(function (tag) {\n // eslint-disable-next-line no-param-reassign\n tag.sealed = true;\n });\n };\n\n StyleSheet.prototype.makeTag = function makeTag$$1(tag) {\n var lastEl = tag ? tag.styleTag : null;\n var insertBefore = false;\n\n return makeTag(this.target, lastEl, this.forceServer, insertBefore, this.getImportRuleTag);\n };\n\n /* get a tag for a given componentId, assign the componentId to one, or shard */\n StyleSheet.prototype.getTagForId = function getTagForId(id) {\n /* simply return a tag, when the componentId was already assigned one */\n var prev = this.tagMap[id];\n if (prev !== undefined && !prev.sealed) {\n return prev;\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n /* shard (create a new tag) if the tag is exhausted (See MAX_SIZE) */\n this.capacity -= 1;\n\n if (this.capacity === 0) {\n this.capacity = MAX_SIZE;\n tag = this.makeTag(tag);\n this.tags.push(tag);\n }\n\n return this.tagMap[id] = tag;\n };\n\n /* mainly for createGlobalStyle to check for its id */\n\n\n StyleSheet.prototype.hasId = function hasId(id) {\n return this.tagMap[id] !== undefined;\n };\n\n /* caching layer checking id+name to already have a corresponding tag and injected rules */\n\n\n StyleSheet.prototype.hasNameForId = function hasNameForId(id, name) {\n /* exception for rehydrated names which are checked separately */\n if (this.ignoreRehydratedNames[id] === undefined && this.rehydratedNames[name]) {\n return true;\n }\n\n var tag = this.tagMap[id];\n return tag !== undefined && tag.hasNameForId(id, name);\n };\n\n /* registers a componentId and registers it on its tag */\n\n\n StyleSheet.prototype.deferredInject = function deferredInject(id, cssRules) {\n /* don't inject when the id is already registered */\n if (this.tagMap[id] !== undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].deferredInject(id, cssRules);\n }\n\n this.getTagForId(id).insertMarker(id);\n this.deferred[id] = cssRules;\n };\n\n /* injects rules for a given id with a name that will need to be cached */\n\n\n StyleSheet.prototype.inject = function inject(id, cssRules, name) {\n var clones = this.clones;\n\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].inject(id, cssRules, name);\n }\n\n var tag = this.getTagForId(id);\n\n /* add deferred rules for component */\n if (this.deferred[id] !== undefined) {\n // Combine passed cssRules with previously deferred CSS rules\n // NOTE: We cannot mutate the deferred array itself as all clones\n // do the same (see clones[i].inject)\n var rules = this.deferred[id].concat(cssRules);\n tag.insertRules(id, rules, name);\n\n this.deferred[id] = undefined;\n } else {\n tag.insertRules(id, cssRules, name);\n }\n };\n\n /* removes all rules for a given id, which doesn't remove its marker but resets it */\n\n\n StyleSheet.prototype.remove = function remove(id) {\n var tag = this.tagMap[id];\n if (tag === undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].remove(id);\n }\n\n /* remove all rules from the tag */\n tag.removeRules(id);\n\n /* ignore possible rehydrated names */\n this.ignoreRehydratedNames[id] = true;\n\n /* delete possible deferred rules */\n this.deferred[id] = undefined;\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n var id = this.id;\n\n\n return this.tags.map(function (tag, i) {\n var key = 'sc-' + id + '-' + i;\n return cloneElement(tag.toElement(), { key: key });\n });\n };\n\n createClass(StyleSheet, null, [{\n key: 'master',\n get: function get$$1() {\n return master || (master = new StyleSheet().rehydrate());\n }\n\n /* NOTE: This is just for backwards-compatibility with jest-styled-components */\n\n }, {\n key: 'instance',\n get: function get$$1() {\n return StyleSheet.master;\n }\n }]);\n return StyleSheet;\n}();\n\n// \n\nvar Keyframes = function () {\n function Keyframes(name, rules) {\n var _this = this;\n\n classCallCheck(this, Keyframes);\n\n this.inject = function (styleSheet) {\n if (!styleSheet.hasNameForId(_this.id, _this.name)) {\n styleSheet.inject(_this.id, _this.rules, _this.name);\n }\n };\n\n this.toString = function () {\n throw new StyledComponentsError(12, String(_this.name));\n };\n\n this.name = name;\n this.rules = rules;\n\n this.id = 'sc-keyframes-' + name;\n }\n\n Keyframes.prototype.getName = function getName() {\n return this.name;\n };\n\n return Keyframes;\n}();\n\n// \n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\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 * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return string.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\n// \n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nfunction addUnitIfNeeded(name, value) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n}\n\n// \n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nvar isFalsish = function isFalsish(chunk) {\n return chunk === undefined || chunk === null || chunk === false || chunk === '';\n};\n\nvar objToCssArray = function objToCssArray(obj, prevKey) {\n var rules = [];\n var keys = Object.keys(obj);\n\n keys.forEach(function (key) {\n if (!isFalsish(obj[key])) {\n if (isPlainObject(obj[key])) {\n rules.push.apply(rules, objToCssArray(obj[key], key));\n\n return rules;\n } else if (isFunction(obj[key])) {\n rules.push(hyphenateStyleName(key) + ':', obj[key], ';');\n\n return rules;\n }\n rules.push(hyphenateStyleName(key) + ': ' + addUnitIfNeeded(key, obj[key]) + ';');\n }\n return rules;\n });\n\n return prevKey ? [prevKey + ' {'].concat(rules, ['}']) : rules;\n};\n\nfunction flatten(chunk, executionContext, styleSheet) {\n if (Array.isArray(chunk)) {\n var ruleSet = [];\n\n for (var i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet);\n\n if (result === null) continue;else if (Array.isArray(result)) ruleSet.push.apply(ruleSet, result);else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return null;\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return '.' + chunk.styledComponentId;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n var _result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(_result)) {\n // eslint-disable-next-line no-console\n console.warn(getComponentName(chunk) + ' is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.');\n }\n\n return flatten(_result, executionContext, styleSheet);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet);\n return chunk.getName();\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n}\n\n// \n\nfunction css(styles) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return flatten(interleave(EMPTY_ARRAY, [styles].concat(interpolations)));\n }\n\n // $FlowFixMe\n return flatten(interleave(styles, interpolations));\n}\n\n// \n\nfunction constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n if (!isValidElementType(tag)) {\n throw new StyledComponentsError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n var templateFunction = function templateFunction() {\n return componentConstructor(tag, options, css.apply(undefined, arguments));\n };\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean)\n }));\n };\n\n return templateFunction;\n}\n\n// \n// Source: https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash(c) {\n for (var e = c.length | 0, a = e | 0, d = 0, b; e >= 4;) {\n b = c.charCodeAt(d) & 255 | (c.charCodeAt(++d) & 255) << 8 | (c.charCodeAt(++d) & 255) << 16 | (c.charCodeAt(++d) & 255) << 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), b ^= b >>> 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16) ^ b, e -= 4, ++d;\n }\n switch (e) {\n case 3:\n a ^= (c.charCodeAt(d + 2) & 255) << 16;\n case 2:\n a ^= (c.charCodeAt(d + 1) & 255) << 8;\n case 1:\n a ^= c.charCodeAt(d) & 255, a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n }\n a ^= a >>> 13;\n a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n return (a ^ a >>> 15) >>> 0;\n}\n\n// \n/* eslint-disable no-bitwise */\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nvar charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nvar getAlphabeticChar = function getAlphabeticChar(code) {\n return String.fromCharCode(code + (code > 25 ? 39 : 97));\n};\n\n/* input a number, usually a hash and convert it to base-52 */\nfunction generateAlphabeticName(code) {\n var name = '';\n var x = void 0;\n\n /* get a char and divide by alphabet-length */\n for (x = code; x > charsLength; x = Math.floor(x / charsLength)) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return getAlphabeticChar(x % charsLength) + name;\n}\n\n// \n\nfunction hasFunctionObjectKey(obj) {\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in obj) {\n if (isFunction(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isStaticRules(rules, attrs) {\n for (var i = 0; i < rules.length; i += 1) {\n var rule = rules[i];\n\n // recursive case\n if (Array.isArray(rule) && !isStaticRules(rule, attrs)) {\n return false;\n } else if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n if (attrs.some(function (x) {\n return isFunction(x) || hasFunctionObjectKey(x);\n })) return false;\n\n return true;\n}\n\n// \n\n/* combines hashStr (murmurhash) and nameGenerator for convenience */\nvar hasher = function hasher(str) {\n return generateAlphabeticName(murmurhash(str));\n};\n\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\n\nvar ComponentStyle = function () {\n function ComponentStyle(rules, attrs, componentId) {\n classCallCheck(this, ComponentStyle);\n\n this.rules = rules;\n this.isStatic = process.env.NODE_ENV === 'production' && isStaticRules(rules, attrs);\n this.componentId = componentId;\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n\n\n ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) {\n var isStatic = this.isStatic,\n componentId = this.componentId,\n lastClassName = this.lastClassName;\n\n if (IS_BROWSER && isStatic && typeof lastClassName === 'string' && styleSheet.hasNameForId(componentId, lastClassName)) {\n return lastClassName;\n }\n\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var name = hasher(this.componentId + flatCSS.join(''));\n if (!styleSheet.hasNameForId(componentId, name)) {\n styleSheet.inject(this.componentId, stringifyRules(flatCSS, '.' + name, undefined, componentId), name);\n }\n\n this.lastClassName = name;\n return name;\n };\n\n ComponentStyle.generateName = function generateName(str) {\n return hasher(str);\n };\n\n return ComponentStyle;\n}();\n\n// \n\nvar LIMIT = 200;\n\nvar createWarnTooManyClasses = (function (displayName) {\n var generatedClasses = {};\n var warningSeen = false;\n\n return function (className) {\n if (!warningSeen) {\n generatedClasses[className] = true;\n if (Object.keys(generatedClasses).length >= LIMIT) {\n // Unable to find latestRule in test environment.\n /* eslint-disable no-console, prefer-template */\n console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \\n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\\n' + 'Example:\\n' + ' const Component = styled.div.attrs(props => ({\\n' + ' style: {\\n' + ' background: props.background,\\n' + ' },\\n' + ' }))`width: 100%;`\\n\\n' + ' ');\n warningSeen = true;\n generatedClasses = {};\n }\n }\n };\n});\n\n// \n\nvar determineTheme = (function (props, fallbackTheme) {\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types, flowtype-errors/show-errors */\n var isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;\n /* eslint-enable */\n\n return theme;\n});\n\n// \nvar escapeRegex = /[[\\].#*$><+~=|^:(),\"'`-]+/g;\nvar dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nfunction escape(str) {\n return str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n\n// \n\nfunction isTag(target) {\n return typeof target === 'string' && (process.env.NODE_ENV !== 'production' ? target.charAt(0) === target.charAt(0).toLowerCase() : true);\n}\n\n// \n\nfunction generateDisplayName(target) {\n // $FlowFixMe\n return isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')';\n}\n\nvar _TYPE_STATICS;\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDerivedStateFromProps: true,\n propTypes: true,\n type: true\n};\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};\n\nvar TYPE_STATICS = (_TYPE_STATICS = {}, _TYPE_STATICS[ForwardRef] = {\n $$typeof: true,\n render: true\n}, _TYPE_STATICS);\n\nvar defineProperty$1 = Object.defineProperty,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n _Object$getOwnPropert = Object.getOwnPropertySymbols,\n getOwnPropertySymbols = _Object$getOwnPropert === undefined ? function () {\n return [];\n} : _Object$getOwnPropert,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getPrototypeOf = Object.getPrototypeOf,\n objectPrototype = Object.prototype;\nvar arrayPrototype = Array.prototype;\n\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n\n var keys = arrayPrototype.concat(getOwnPropertyNames(sourceComponent),\n // $FlowFixMe\n getOwnPropertySymbols(sourceComponent));\n\n var targetStatics = TYPE_STATICS[targetComponent.$$typeof] || REACT_STATICS;\n\n var sourceStatics = TYPE_STATICS[sourceComponent.$$typeof] || REACT_STATICS;\n\n var i = keys.length;\n var descriptor = void 0;\n var key = void 0;\n\n // eslint-disable-next-line no-plusplus\n while (i--) {\n key = keys[i];\n\n if (\n // $FlowFixMe\n !KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) &&\n // $FlowFixMe\n !(targetStatics && targetStatics[key])) {\n descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n if (descriptor) {\n try {\n // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {\n /* fail silently */\n }\n }\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\n// \nfunction isDerivedReactComponent(fn) {\n return !!(fn && fn.prototype && fn.prototype.isReactComponent);\n}\n\n// \n// Helper to call a given function, only once\nvar once = (function (cb) {\n var called = false;\n\n return function () {\n if (!called) {\n called = true;\n cb.apply(undefined, arguments);\n }\n };\n});\n\n// \n\nvar ThemeContext = createContext();\n\nvar ThemeConsumer = ThemeContext.Consumer;\n\n/**\n * Provide a theme to an entire react component tree via context\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider(props) {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext.bind(_this));\n _this.renderInner = _this.renderInner.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) return null;\n\n return React.createElement(\n ThemeContext.Consumer,\n null,\n this.renderInner\n );\n };\n\n ThemeProvider.prototype.renderInner = function renderInner(outerTheme) {\n var context = this.getContext(this.props.theme, outerTheme);\n\n return React.createElement(\n ThemeContext.Provider,\n { value: context },\n this.props.children\n );\n };\n\n /**\n * Get the theme from the props, supporting both (outerTheme) => {}\n * as well as object notation\n */\n\n\n ThemeProvider.prototype.getTheme = function getTheme(theme, outerTheme) {\n if (isFunction(theme)) {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme === null || Array.isArray(mergedTheme) || (typeof mergedTheme === 'undefined' ? 'undefined' : _typeof(mergedTheme)) !== 'object')) {\n throw new StyledComponentsError(7);\n }\n\n return mergedTheme;\n }\n\n if (theme === null || Array.isArray(theme) || (typeof theme === 'undefined' ? 'undefined' : _typeof(theme)) !== 'object') {\n throw new StyledComponentsError(8);\n }\n\n return _extends({}, outerTheme, theme);\n };\n\n ThemeProvider.prototype.getContext = function getContext(theme, outerTheme) {\n return this.getTheme(theme, outerTheme);\n };\n\n return ThemeProvider;\n}(Component);\n\n// \n\nvar CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nvar ServerStyleSheet = function () {\n function ServerStyleSheet() {\n classCallCheck(this, ServerStyleSheet);\n\n /* The master sheet might be reset, so keep a reference here */\n this.masterSheet = StyleSheet.master;\n this.instance = this.masterSheet.clone();\n this.sealed = false;\n }\n\n /**\n * Mark the ServerStyleSheet as being fully emitted and manually GC it from the\n * StyleSheet singleton.\n */\n\n\n ServerStyleSheet.prototype.seal = function seal() {\n if (!this.sealed) {\n /* Remove sealed StyleSheets from the master sheet */\n var index = this.masterSheet.clones.indexOf(this.instance);\n this.masterSheet.clones.splice(index, 1);\n this.sealed = true;\n }\n };\n\n ServerStyleSheet.prototype.collectStyles = function collectStyles(children) {\n if (this.sealed) {\n throw new StyledComponentsError(2);\n }\n\n return React.createElement(\n StyleSheetManager,\n { sheet: this.instance },\n children\n );\n };\n\n ServerStyleSheet.prototype.getStyleTags = function getStyleTags() {\n this.seal();\n return this.instance.toHTML();\n };\n\n ServerStyleSheet.prototype.getStyleElement = function getStyleElement() {\n this.seal();\n return this.instance.toReactElements();\n };\n\n ServerStyleSheet.prototype.interleaveWithNodeStream = function interleaveWithNodeStream(readableStream) {\n var _this = this;\n\n {\n throw new StyledComponentsError(3);\n }\n\n /* the tag index keeps track of which tags have already been emitted */\n var instance = this.instance;\n\n var instanceTagIndex = 0;\n\n var streamAttr = SC_STREAM_ATTR + '=\"true\"';\n\n var transformer = new stream.Transform({\n transform: function appendStyleChunks(chunk, /* encoding */_, callback) {\n var tags = instance.tags;\n\n var html = '';\n\n /* retrieve html for each new style tag */\n for (; instanceTagIndex < tags.length; instanceTagIndex += 1) {\n var tag = tags[instanceTagIndex];\n html += tag.toHTML(streamAttr);\n }\n\n /* force our StyleSheets to emit entirely new tags */\n instance.sealAllTags();\n\n var renderedHtml = chunk.toString();\n\n /* prepend style html to chunk, unless the start of the chunk is a closing tag in which case append right after that */\n if (CLOSING_TAG_R.test(renderedHtml)) {\n var endOfClosingTag = renderedHtml.indexOf('>');\n\n this.push(renderedHtml.slice(0, endOfClosingTag + 1) + html + renderedHtml.slice(endOfClosingTag + 1));\n } else this.push(html + renderedHtml);\n\n callback();\n }\n });\n\n readableStream.on('end', function () {\n return _this.seal();\n });\n\n readableStream.on('error', function (err) {\n _this.seal();\n\n // forward the error to the transform stream\n transformer.emit('error', err);\n });\n\n return readableStream.pipe(transformer);\n };\n\n return ServerStyleSheet;\n}();\n\n// \n\nvar StyleSheetContext = createContext();\nvar StyleSheetConsumer = StyleSheetContext.Consumer;\n\nvar StyleSheetManager = function (_Component) {\n inherits(StyleSheetManager, _Component);\n\n function StyleSheetManager(props) {\n classCallCheck(this, StyleSheetManager);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext);\n return _this;\n }\n\n StyleSheetManager.prototype.getContext = function getContext(sheet, target) {\n if (sheet) {\n return sheet;\n } else if (target) {\n return new StyleSheet(target);\n } else {\n throw new StyledComponentsError(4);\n }\n };\n\n StyleSheetManager.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n sheet = _props.sheet,\n target = _props.target;\n\n\n return React.createElement(\n StyleSheetContext.Provider,\n { value: this.getContext(sheet, target) },\n process.env.NODE_ENV !== 'production' ? React.Children.only(children) : children\n );\n };\n\n return StyleSheetManager;\n}(Component);\nprocess.env.NODE_ENV !== \"production\" ? StyleSheetManager.propTypes = {\n sheet: PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]),\n\n target: PropTypes.shape({\n appendChild: PropTypes.func.isRequired\n })\n} : void 0;\n\n// \n\nvar THEME_PROP_REGEX = /\\.theme[.[]/;\nvar identifiers = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(_ComponentStyle, _displayName, parentComponentId) {\n var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName);\n\n /**\n * This ensures uniqueness if two components happen to share\n * the same displayName.\n */\n var nr = (identifiers[displayName] || 0) + 1;\n identifiers[displayName] = nr;\n\n var componentId = displayName + '-' + _ComponentStyle.generateName(displayName + nr);\n\n return parentComponentId ? parentComponentId + '-' + componentId : componentId;\n}\n\n// $FlowFixMe\n\nvar StyledComponent = function (_Component) {\n inherits(StyledComponent, _Component);\n\n function StyledComponent() {\n classCallCheck(this, StyledComponent);\n\n var _this = possibleConstructorReturn(this, _Component.call(this));\n\n _this.attrs = {};\n\n _this.renderOuter = _this.renderOuter.bind(_this);\n _this.renderInner = _this.renderInner.bind(_this);\n\n if (process.env.NODE_ENV !== 'production') {\n _this.warnInnerRef = once(function (displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('The \"innerRef\" API has been removed in styled-components v4 in favor of React 16 ref forwarding, use \"ref\" instead like a typical component. \"innerRef\" was detected on component \"' + displayName + '\".')\n );\n });\n\n _this.warnAttrsFnObjectKeyDeprecated = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('Functions as object-form attrs({}) keys are now deprecated and will be removed in a future version of styled-components. Switch to the new attrs(props => ({})) syntax instead for easier and more powerful composition. The attrs key in question is \"' + key + '\" on component \"' + displayName + '\".', '\\n ' + new Error().stack)\n );\n });\n\n _this.warnNonStyledComponentAttrsObjectKey = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('It looks like you\\'ve used a non styled-component as the value for the \"' + key + '\" prop in an object-form attrs constructor of \"' + displayName + '\".\\n' + 'You should use the new function-form attrs constructor which avoids this issue: attrs(props => ({ yourStuff }))\\n' + \"To continue using the deprecated object syntax, you'll need to wrap your component prop in a function to make it available inside the styled component (you'll still get the deprecation warning though.)\\n\" + ('For example, { ' + key + ': () => InnerComponent } instead of { ' + key + ': InnerComponent }'))\n );\n });\n }\n return _this;\n }\n\n StyledComponent.prototype.render = function render() {\n return React.createElement(\n StyleSheetConsumer,\n null,\n this.renderOuter\n );\n };\n\n StyledComponent.prototype.renderOuter = function renderOuter() {\n var styleSheet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : StyleSheet.master;\n\n this.styleSheet = styleSheet;\n\n // No need to subscribe a static component to theme changes, it won't change anything\n if (this.props.forwardedComponent.componentStyle.isStatic) return this.renderInner();\n\n return React.createElement(\n ThemeConsumer,\n null,\n this.renderInner\n );\n };\n\n StyledComponent.prototype.renderInner = function renderInner(theme) {\n var _props$forwardedCompo = this.props.forwardedComponent,\n componentStyle = _props$forwardedCompo.componentStyle,\n defaultProps = _props$forwardedCompo.defaultProps,\n displayName = _props$forwardedCompo.displayName,\n foldedComponentIds = _props$forwardedCompo.foldedComponentIds,\n styledComponentId = _props$forwardedCompo.styledComponentId,\n target = _props$forwardedCompo.target,\n usesTheme = _props$forwardedCompo.usesTheme;\n\n\n var generatedClassName = void 0;\n var rawTheme = void 0;\n\n if (componentStyle.isStatic) {\n generatedClassName = this.generateAndInjectStyles(EMPTY_OBJECT, this.props);\n } else {\n rawTheme = determineTheme(this.props, theme, defaultProps);\n generatedClassName = this.generateAndInjectStyles(rawTheme || EMPTY_OBJECT, this.props);\n\n if (process.env.NODE_ENV !== 'production' && usesTheme && !rawTheme) {\n console.error('Component \\'' +\n // $FlowFixMe\n displayName + '\\' (.' + styledComponentId + ') references the \\'theme\\' prop in its styles but no theme was provided via prop or .');\n }\n }\n\n var elementToBeCreated = this.props.as || this.attrs.as || target;\n var isTargetTag = isTag(elementToBeCreated);\n\n var propsForElement = {};\n var computedProps = _extends({}, this.props, this.attrs);\n\n var key = void 0;\n // eslint-disable-next-line guard-for-in\n for (key in computedProps) {\n if (process.env.NODE_ENV !== 'production' && key === 'innerRef' && isTargetTag) {\n this.warnInnerRef(displayName);\n }\n\n if (key === 'forwardedComponent' || key === 'as') {\n continue;\n } else if (key === 'forwardedRef') propsForElement.ref = computedProps[key];else if (key === 'forwardedAs') propsForElement.as = computedProps[key];else if (!isTargetTag || validAttr(key)) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (this.props.style && this.attrs.style) {\n propsForElement.style = _extends({}, this.attrs.style, this.props.style);\n }\n\n propsForElement.className = Array.prototype.concat(foldedComponentIds, styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : null, this.props.className, this.attrs.className).filter(Boolean).join(' ');\n\n return createElement(elementToBeCreated, propsForElement);\n };\n\n StyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props, attrs) {\n var _this2 = this;\n\n var context = _extends({}, props, { theme: theme });\n\n if (!attrs.length) return context;\n\n this.attrs = {};\n\n attrs.forEach(function (attrDef) {\n var resolvedAttrDef = attrDef;\n var attrDefWasFn = false;\n var attr = void 0;\n var key = void 0;\n\n if (isFunction(resolvedAttrDef)) {\n // $FlowFixMe\n resolvedAttrDef = resolvedAttrDef(context);\n attrDefWasFn = true;\n }\n\n /* eslint-disable guard-for-in */\n // $FlowFixMe\n for (key in resolvedAttrDef) {\n attr = resolvedAttrDef[key];\n\n if (!attrDefWasFn) {\n if (isFunction(attr) && !isDerivedReactComponent(attr) && !isStyledComponent(attr)) {\n if (process.env.NODE_ENV !== 'production') {\n _this2.warnAttrsFnObjectKeyDeprecated(key, props.forwardedComponent.displayName);\n }\n\n attr = attr(context);\n\n if (process.env.NODE_ENV !== 'production' && React.isValidElement(attr)) {\n _this2.warnNonStyledComponentAttrsObjectKey(key, props.forwardedComponent.displayName);\n }\n }\n }\n\n _this2.attrs[key] = attr;\n context[key] = attr;\n }\n /* eslint-enable */\n });\n\n return context;\n };\n\n StyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var _props$forwardedCompo2 = props.forwardedComponent,\n attrs = _props$forwardedCompo2.attrs,\n componentStyle = _props$forwardedCompo2.componentStyle,\n warnTooManyClasses = _props$forwardedCompo2.warnTooManyClasses;\n\n // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n\n if (componentStyle.isStatic && !attrs.length) {\n return componentStyle.generateAndInjectStyles(EMPTY_OBJECT, this.styleSheet);\n }\n\n var className = componentStyle.generateAndInjectStyles(this.buildExecutionContext(theme, props, attrs), this.styleSheet);\n\n if (process.env.NODE_ENV !== 'production' && warnTooManyClasses) warnTooManyClasses(className);\n\n return className;\n };\n\n return StyledComponent;\n}(Component);\n\nfunction createStyledComponent(target, options, rules) {\n var isTargetStyledComp = isStyledComponent(target);\n var isClass = !isTag(target);\n\n var _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? generateDisplayName(target) : _options$displayName,\n _options$componentId = options.componentId,\n componentId = _options$componentId === undefined ? generateId(ComponentStyle, options.displayName, options.parentComponentId) : _options$componentId,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? StyledComponent : _options$ParentCompon,\n _options$attrs = options.attrs,\n attrs = _options$attrs === undefined ? EMPTY_ARRAY : _options$attrs;\n\n\n var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n var finalAttrs =\n // $FlowFixMe\n isTargetStyledComp && target.attrs ? Array.prototype.concat(target.attrs, attrs).filter(Boolean) : attrs;\n\n var componentStyle = new ComponentStyle(isTargetStyledComp ? // fold the underlying StyledComponent rules up (implicit extend)\n // $FlowFixMe\n target.componentStyle.rules.concat(rules) : rules, finalAttrs, styledComponentId);\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n var WrappedStyledComponent = void 0;\n var forwardRef = function forwardRef(props, ref) {\n return React.createElement(ParentComponent, _extends({}, props, { forwardedComponent: WrappedStyledComponent, forwardedRef: ref }));\n };\n forwardRef.displayName = displayName;\n WrappedStyledComponent = React.forwardRef(forwardRef);\n WrappedStyledComponent.displayName = displayName;\n\n // $FlowFixMe\n WrappedStyledComponent.attrs = finalAttrs;\n // $FlowFixMe\n WrappedStyledComponent.componentStyle = componentStyle;\n\n // $FlowFixMe\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp ? // $FlowFixMe\n Array.prototype.concat(target.foldedComponentIds, target.styledComponentId) : EMPTY_ARRAY;\n\n // $FlowFixMe\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n // $FlowFixMe\n WrappedStyledComponent.target = isTargetStyledComp ? target.target : target;\n\n // $FlowFixMe\n WrappedStyledComponent.withComponent = function withComponent(tag) {\n var previousComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['componentId']);\n\n\n var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag)));\n\n var newOptions = _extends({}, optionsToCopy, {\n attrs: finalAttrs,\n componentId: newComponentId,\n ParentComponent: ParentComponent\n });\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n // $FlowFixMe\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get: function get$$1() {\n return this._foldedDefaultProps;\n },\n set: function set$$1(obj) {\n // $FlowFixMe\n this._foldedDefaultProps = isTargetStyledComp ? merge(target.defaultProps, obj) : obj;\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n WrappedStyledComponent.usesTheme = componentStyle.rules.some(function (x) {\n return isFunction(x) && THEME_PROP_REGEX.test(x.toString());\n });\n\n // $FlowFixMe\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName);\n }\n\n // $FlowFixMe\n WrappedStyledComponent.toString = function () {\n return '.' + WrappedStyledComponent.styledComponentId;\n };\n\n if (isClass) {\n hoistNonReactStatics(WrappedStyledComponent, target, {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n styledComponentId: true,\n target: true,\n withComponent: true\n });\n }\n\n return WrappedStyledComponent;\n}\n\n// \n// Thanks to ReactDOMFactories for this handy list!\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr',\n\n// SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'marker', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// \n\nvar styled = function styled(tag) {\n return constructWithOptions(createStyledComponent, tag);\n};\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(function (domElement) {\n styled[domElement] = styled(domElement);\n});\n\n// \n\nvar GlobalStyle = function () {\n function GlobalStyle(rules, componentId) {\n classCallCheck(this, GlobalStyle);\n\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules, EMPTY_ARRAY);\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n GlobalStyle.prototype.createStyles = function createStyles(executionContext, styleSheet) {\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var css = stringifyRules(flatCSS, '');\n\n styleSheet.inject(this.componentId, css);\n };\n\n GlobalStyle.prototype.removeStyles = function removeStyles(styleSheet) {\n var componentId = this.componentId;\n\n if (styleSheet.hasId(componentId)) {\n styleSheet.remove(componentId);\n }\n };\n\n // TODO: overwrite in-place instead of remove+create?\n\n\n GlobalStyle.prototype.renderStyles = function renderStyles(executionContext, styleSheet) {\n this.removeStyles(styleSheet);\n this.createStyles(executionContext, styleSheet);\n };\n\n return GlobalStyle;\n}();\n\n// \n\n// place our cache into shared context so it'll persist between HMRs\nif (IS_BROWSER) {\n window.scCGSHMRCache = {};\n}\n\nfunction createGlobalStyle(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var id = 'sc-global-' + murmurhash(JSON.stringify(rules));\n var style = new GlobalStyle(rules, id);\n\n var GlobalStyleComponent = function (_React$Component) {\n inherits(GlobalStyleComponent, _React$Component);\n\n function GlobalStyleComponent(props) {\n classCallCheck(this, GlobalStyleComponent);\n\n var _this = possibleConstructorReturn(this, _React$Component.call(this, props));\n\n var _this$constructor = _this.constructor,\n globalStyle = _this$constructor.globalStyle,\n styledComponentId = _this$constructor.styledComponentId;\n\n\n if (IS_BROWSER) {\n window.scCGSHMRCache[styledComponentId] = (window.scCGSHMRCache[styledComponentId] || 0) + 1;\n }\n\n /**\n * This fixes HMR compatibility. Don't ask me why, but this combination of\n * caching the closure variables via statics and then persisting the statics in\n * state works across HMR where no other combination did. ¯\\_(ツ)_/¯\n */\n _this.state = {\n globalStyle: globalStyle,\n styledComponentId: styledComponentId\n };\n return _this;\n }\n\n GlobalStyleComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n if (window.scCGSHMRCache[this.state.styledComponentId]) {\n window.scCGSHMRCache[this.state.styledComponentId] -= 1;\n }\n /**\n * Depending on the order \"render\" is called this can cause the styles to be lost\n * until the next render pass of the remaining instance, which may\n * not be immediate.\n */\n if (window.scCGSHMRCache[this.state.styledComponentId] === 0) {\n this.state.globalStyle.removeStyles(this.styleSheet);\n }\n };\n\n GlobalStyleComponent.prototype.render = function render() {\n var _this2 = this;\n\n if (process.env.NODE_ENV !== 'production' && React.Children.count(this.props.children)) {\n // eslint-disable-next-line no-console\n console.warn('The global style component ' + this.state.styledComponentId + ' was given child JSX. createGlobalStyle does not render children.');\n }\n\n return React.createElement(\n StyleSheetConsumer,\n null,\n function (styleSheet) {\n _this2.styleSheet = styleSheet || StyleSheet.master;\n\n var globalStyle = _this2.state.globalStyle;\n\n\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(STATIC_EXECUTION_CONTEXT, _this2.styleSheet);\n\n return null;\n } else {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = _this2.constructor.defaultProps;\n\n\n var context = _extends({}, _this2.props);\n\n if (typeof theme !== 'undefined') {\n context.theme = determineTheme(_this2.props, theme, defaultProps);\n }\n\n globalStyle.renderStyles(context, _this2.styleSheet);\n\n return null;\n }\n );\n }\n }\n );\n };\n\n return GlobalStyleComponent;\n }(React.Component);\n\n GlobalStyleComponent.globalStyle = style;\n GlobalStyleComponent.styledComponentId = id;\n\n\n return GlobalStyleComponent;\n}\n\n// \n\nvar replaceWhitespace = function replaceWhitespace(str) {\n return str.replace(/\\s|\\\\n/g, '');\n};\n\nfunction keyframes(strings) {\n /* Warning if you've used keyframes on React Native */\n if (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn('`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.');\n }\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n\n var name = generateAlphabeticName(murmurhash(replaceWhitespace(JSON.stringify(rules))));\n\n return new Keyframes(name, stringifyRules(rules, name, '@keyframes'));\n}\n\n// \n\nvar withTheme = (function (Component$$1) {\n var WithTheme = React.forwardRef(function (props, ref) {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = Component$$1.defaultProps;\n\n var themeProp = determineTheme(props, theme, defaultProps);\n\n if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + getComponentName(Component$$1) + '\"');\n }\n\n return React.createElement(Component$$1, _extends({}, props, { theme: themeProp, ref: ref }));\n }\n );\n });\n\n hoistNonReactStatics(WithTheme, Component$$1);\n\n WithTheme.displayName = 'WithTheme(' + getComponentName(Component$$1) + ')';\n\n return WithTheme;\n});\n\n// \n\n/* eslint-disable */\nvar __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS = {\n StyleSheet: StyleSheet\n};\n\n// \n\n/* Warning if you've imported this file on React Native */\nif (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like you've imported 'styled-components' on React Native.\\n\" + \"Perhaps you're looking to import 'styled-components/native'?\\n\" + 'Read more about this at https://www.styled-components.com/docs/basics#react-native');\n}\n\n/* Warning if there are several instances of styled-components */\nif (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test' && typeof window !== 'undefined' && typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Node.js') === -1 && navigator.userAgent.indexOf('jsdom') === -1) {\n window['__styled-components-init__'] = window['__styled-components-init__'] || 0;\n\n if (window['__styled-components-init__'] === 1) {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. \" + 'This may cause dynamic styles not rendering properly, errors happening during rehydration process ' + 'and makes your application bigger without a good reason.\\n\\n' + 'See https://s-c.sh/2BAXzed for more info.');\n }\n\n window['__styled-components-init__'] += 1;\n}\n\n//\n\nexport default styled;\nexport { createGlobalStyle, css, isStyledComponent, keyframes, ServerStyleSheet, StyleSheetConsumer, StyleSheetContext, StyleSheetManager, ThemeConsumer, ThemeContext, ThemeProvider, withTheme, __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS };\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","export const colors = {\n PRIMARY: '#ABE2FB',\n SECONDARY: '#E6E6E6',\n DARKER_PRIMARY: '#87ceeb',\n OFF_WHITE: '#15181A',\n GREY: '#D3D3D3',\n RED: '#FF5E5E',\n DARK_GREY: '#535D63'\n};\n\nexport const TRACK_TOTAL_DEG = 270.0;\n\nexport const RADIAN = Math.PI / 180.0;\n\nexport const light = {\n primary: colors.PRIMARY,\n secondary: colors.SECONDARY,\n detail: colors.GREY,\n dark: false\n};\n\nexport const dark = {\n primary: colors.PRIMARY,\n secondary: colors.DARK_GREY,\n detail: colors.DARK_GREY,\n dark: true\n};\n\nexport default {\n dark,\n light,\n colors\n};\n","import { omit } from 'ramda';\n\nexport const getClassName = (componentName, theme) => {\n return 'daq-' + componentName + (theme && theme.dark ? '--dark' : '--light');\n};\n\nexport const getFilteredProps = props => omit(['className', 'id', 'setProps', 'style'], props);\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(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};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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};","import React from 'react';\nimport styled from 'styled-components';\n\nimport Label from './Label.styled';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-around;\n flex-direction: column;\n ${({ fullSize }) => {\n if (fullSize) return 'width: 100%;';\n return '';\n }}\n`;\n\nfunction LabelContainer(props) {\n let labelText = props.label;\n let customLabelStyle = {};\n if (typeof props.label === 'object') {\n labelText = props.label.label;\n customLabelStyle = props.label.style;\n }\n const labelElement = \n // if (labelText && labelText.length) {\n return (\n \n {props.labelPosition == 'top' && labelElement}\n {props.children}\n {props.labelPosition != 'top' && labelElement}\n \n );\n // }\n // return
{props.children}
;\n}\n\nLabelContainer.defaultProps = {\n labelPosition: 'bottom'\n};\n\nexport default LabelContainer;\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = 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 (0, _defineProperty2.default)(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}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","(function() { module.exports = window[\"ReactDOM\"]; }());","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n\tvar _react = __webpack_require__(1);\n\n\tvar _react2 = _interopRequireDefault(_react);\n\n\tvar _propTypes = __webpack_require__(2);\n\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\tvar KEYCODE_UP = 38;\n\tvar KEYCODE_DOWN = 40;\n\tvar IS_BROWSER = typeof document != 'undefined';\n\tvar RE_NUMBER = /^[+-]?((\\.\\d+)|(\\d+(\\.\\d+)?))$/;\n\tvar RE_INCOMPLETE_NUMBER = /^([+-]|\\.0*|[+-]\\.0*|[+-]?\\d+\\.)?$/;\n\n\tfunction addClass(element, className) {\n\t if (element.classList) {\n\t return element.classList.add(className);\n\t }\n\t if (!element.className.search(new RegExp(\"\\\\b\" + className + \"\\\\b\"))) {\n\t element.className = \" \" + className;\n\t }\n\t}\n\n\tfunction removeClass(element, className) {\n\t if (element.className) {\n\t if (element.classList) {\n\t return element.classList.remove(className);\n\t }\n\n\t element.className = element.className.replace(new RegExp(\"\\\\b\" + className + \"\\\\b\", \"g\"), \"\");\n\t }\n\t}\n\n\tfunction access(object, prop, defaultValue) {\n\t var result = object[prop];\n\t if (typeof result == \"function\") {\n\t for (var _len = arguments.length, args = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n\t args[_key - 3] = arguments[_key];\n\t }\n\n\t result = result.apply(undefined, args);\n\t }\n\t return result === undefined ? defaultValue : result;\n\t}\n\n\tvar NumericInput = function (_Component) {\n\t _inherits(NumericInput, _Component);\n\n\t function NumericInput() {\n\t var _ref;\n\n\t _classCallCheck(this, NumericInput);\n\n\t for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t args[_key2] = arguments[_key2];\n\t }\n\n\t var _this = _possibleConstructorReturn(this, (_ref = NumericInput.__proto__ || Object.getPrototypeOf(NumericInput)).call.apply(_ref, [this].concat(args)));\n\n\t _this._isStrict = !!_this.props.strict;\n\n\t _this.state = _extends({\n\t btnDownHover: false,\n\t btnDownActive: false,\n\t btnUpHover: false,\n\t btnUpActive: false,\n\t stringValue: \"\"\n\t }, _this._propsToState(_this.props));\n\t _this.stop = _this.stop.bind(_this);\n\t _this.onTouchEnd = _this.onTouchEnd.bind(_this);\n\t _this.refsInput = {};\n\t _this.refsWrapper = {};\n\t return _this;\n\t }\n\n\t _createClass(NumericInput, [{\n\t key: '_propsToState',\n\t value: function _propsToState(props) {\n\t var out = {};\n\n\t if (props.hasOwnProperty(\"value\")) {\n\t out.stringValue = String(props.value || props.value === 0 ? props.value : '').trim();\n\n\t out.value = out.stringValue !== '' ? this._parse(props.value) : null;\n\t } else if (!this._isMounted && props.hasOwnProperty(\"defaultValue\")) {\n\t out.stringValue = String(props.defaultValue || props.defaultValue === 0 ? props.defaultValue : '').trim();\n\n\t out.value = props.defaultValue !== '' ? this._parse(props.defaultValue) : null;\n\t }\n\n\t return out;\n\t }\n\t }, {\n\t key: 'componentWillReceiveProps',\n\t value: function componentWillReceiveProps(props) {\n\t var _this2 = this;\n\n\t this._isStrict = !!props.strict;\n\t var nextState = this._propsToState(props);\n\t if (Object.keys(nextState).length) {\n\t this._ignoreValueChange = true;\n\t this.setState(nextState, function () {\n\t _this2._ignoreValueChange = false;\n\t });\n\t }\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate() {\n\t this.saveSelection();\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate(prevProps, prevState) {\n\t if (!this._ignoreValueChange && prevState.value !== this.state.value && (!isNaN(this.state.value) || this.state.value === null)) {\n\t this._invokeEventCallback(\"onChange\", this.state.value, this.refsInput.value, this.refsInput);\n\t }\n\n\t if (this._inputFocus) {\n\t this.refsInput.focus();\n\n\t if (this.state.selectionStart || this.state.selectionStart === 0) {\n\t this.refsInput.selectionStart = this.state.selectionStart;\n\t }\n\n\t if (this.state.selectionEnd || this.state.selectionEnd === 0) {\n\t this.refsInput.selectionEnd = this.state.selectionEnd;\n\t }\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t this._isMounted = false;\n\t this.stop();\n\t }\n\t }, {\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var _this3 = this;\n\n\t this._isMounted = true;\n\t this.refsInput.getValueAsNumber = function () {\n\t return _this3.state.value || 0;\n\t };\n\n\t this.refsInput.setValue = function (value) {\n\t _this3.setState({\n\t value: _this3._parse(value),\n\t stringValue: value\n\t });\n\t };\n\n\t if (!this._inputFocus && IS_BROWSER && document.activeElement === this.refsInput) {\n\t this._inputFocus = true;\n\t this.refsInput.focus();\n\t this._invokeEventCallback(\"onFocus\", {\n\t target: this.refsInput,\n\t type: \"focus\"\n\t });\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'saveSelection',\n\t value: function saveSelection() {\n\t this.state.selectionStart = this.refsInput.selectionStart;\n\t this.state.selectionEnd = this.refsInput.selectionEnd;\n\t }\n\t }, {\n\t key: 'checkValidity',\n\t value: function checkValidity() {\n\t var valid = void 0,\n\t validationError = \"\";\n\n\t var supportsValidation = !!this.refsInput.checkValidity;\n\n\t var noValidate = !!(this.props.noValidate && this.props.noValidate != \"false\");\n\n\t this.refsInput.noValidate = noValidate;\n\n\t valid = noValidate || !supportsValidation;\n\n\t if (valid) {\n\t validationError = \"\";\n\t } else {\n\t if (this.refsInput.pattern === \"\") {\n\t this.refsInput.pattern = this.props.required ? \".+\" : \".*\";\n\t }\n\n\t if (supportsValidation) {\n\t this.refsInput.checkValidity();\n\t valid = this.refsInput.validity.valid;\n\n\t if (!valid) {\n\t validationError = this.refsInput.validationMessage;\n\t }\n\t }\n\n\t if (valid && supportsValidation && this.props.maxLength) {\n\t if (this.refsInput.value.length > this.props.maxLength) {\n\t validationError = \"This value is too long\";\n\t }\n\t }\n\t }\n\n\t validationError = validationError || (valid ? \"\" : this.refsInput.validationMessage || \"Unknown Error\");\n\n\t var validStateChanged = this._valid !== validationError;\n\t this._valid = validationError;\n\t if (validationError) {\n\t addClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onInvalid\", validationError, this.state.value, this.refsInput.value);\n\t }\n\t } else {\n\t removeClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onValid\", this.state.value, this.refsInput.value);\n\t }\n\t }\n\t }\n\t }, {\n\t key: '_toNumber',\n\t value: function _toNumber(x) {\n\t var n = parseFloat(x);\n\t if (isNaN(n) || !isFinite(n)) {\n\t n = 0;\n\t }\n\n\t if (this._isStrict) {\n\t var precision = access(this.props, \"precision\", null, this);\n\t var q = Math.pow(10, precision === null ? 10 : precision);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t n = Math.min(Math.max(n, _min), _max);\n\t n = Math.round(n * q) / q;\n\t }\n\n\t return n;\n\t }\n\t }, {\n\t key: '_parse',\n\t value: function _parse(x) {\n\t x = String(x);\n\t if (typeof this.props.parse == 'function') {\n\t return parseFloat(this.props.parse(x));\n\t }\n\t return parseFloat(x);\n\t }\n\t }, {\n\t key: '_format',\n\t value: function _format(n) {\n\t var _n = this._toNumber(n);\n\t var precision = access(this.props, \"precision\", null, this);\n\t if (precision !== null) {\n\t _n = n.toFixed(precision);\n\t }\n\n\t _n += \"\";\n\n\t if (this.props.format) {\n\t return this.props.format(_n);\n\t }\n\n\t return _n;\n\t }\n\t }, {\n\t key: '_step',\n\t value: function _step(n, callback) {\n\t var _isStrict = this._isStrict;\n\t this._isStrict = true;\n\n\t var _step = +access(this.props, \"step\", NumericInput.defaultProps.step, this, n > 0 ? NumericInput.DIRECTION_UP : NumericInput.DIRECTION_DOWN);\n\n\t var _n = this._toNumber((this.state.value || 0) + _step * n);\n\n\t if (this.props.snap) {\n\t _n = Math.round(_n / _step) * _step;\n\t }\n\n\t this._isStrict = _isStrict;\n\n\t if (_n !== this.state.value) {\n\t this.setState({ value: _n, stringValue: _n + \"\" }, callback);\n\t return true;\n\t }\n\n\t return false;\n\t }\n\t }, {\n\t key: '_onKeyDown',\n\t value: function _onKeyDown() {\n\t for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n\t args[_key3] = arguments[_key3];\n\t }\n\n\t args[0].persist();\n\t this._invokeEventCallback.apply(this, [\"onKeyDown\"].concat(args));\n\t var e = args[0];\n\t if (!e.isDefaultPrevented()) {\n\t if (e.keyCode === KEYCODE_UP) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? 0.1 : e.shiftKey ? 10 : 1);\n\t } else if (e.keyCode === KEYCODE_DOWN) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? -0.1 : e.shiftKey ? -10 : -1);\n\t } else {\n\t var _value = this.refsInput.value,\n\t length = _value.length;\n\t if (e.keyCode === 8) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd > 0 && _value.length && _value.charAt(this.refsInput.selectionEnd - 1) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd - 1;\n\t }\n\t } else if (e.keyCode === 46) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd < length + 1 && _value.length && _value.charAt(this.refsInput.selectionEnd) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd + 1;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'stop',\n\t value: function stop() {\n\t if (this._timer) {\n\t clearTimeout(this._timer);\n\t }\n\t }\n\t }, {\n\t key: 'increase',\n\t value: function increase() {\n\t var _this4 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(1, callback);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t if (isNaN(this.state.value) || +this.state.value < _max) {\n\t this._timer = setTimeout(function () {\n\t _this4.increase(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'decrease',\n\t value: function decrease() {\n\t var _this5 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(-1, callback);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t if (isNaN(this.state.value) || +this.state.value > _min) {\n\t this._timer = setTimeout(function () {\n\t _this5.decrease(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'onMouseDown',\n\t value: function onMouseDown(dir, callback) {\n\t if (dir == 'down') {\n\t this.decrease(false, callback);\n\t } else if (dir == 'up') {\n\t this.increase(false, callback);\n\t }\n\t }\n\t }, {\n\t key: 'onTouchStart',\n\t value: function onTouchStart(dir, e) {\n\t e.preventDefault();\n\t if (dir == 'down') {\n\t this.decrease();\n\t } else if (dir == 'up') {\n\t this.increase();\n\t }\n\t }\n\t }, {\n\t key: 'onTouchEnd',\n\t value: function onTouchEnd(e) {\n\t e.preventDefault();\n\t this.stop();\n\t }\n\t }, {\n\t key: '_invokeEventCallback',\n\t value: function _invokeEventCallback(callbackName) {\n\t if (typeof this.props[callbackName] == \"function\") {\n\t var _props$callbackName;\n\n\t for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n\t args[_key4 - 1] = arguments[_key4];\n\t }\n\n\t (_props$callbackName = this.props[callbackName]).call.apply(_props$callbackName, [null].concat(args));\n\t }\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _this6 = this;\n\n\t var props = this.props;\n\t var state = this.state;\n\t var css = {};\n\n\t var _props = this.props,\n\t step = _props.step,\n\t min = _props.min,\n\t max = _props.max,\n\t precision = _props.precision,\n\t parse = _props.parse,\n\t format = _props.format,\n\t mobile = _props.mobile,\n\t snap = _props.snap,\n\t componentClass = _props.componentClass,\n\t value = _props.value,\n\t type = _props.type,\n\t style = _props.style,\n\t defaultValue = _props.defaultValue,\n\t onInvalid = _props.onInvalid,\n\t onValid = _props.onValid,\n\t strict = _props.strict,\n\t noStyle = _props.noStyle,\n\t rest = _objectWithoutProperties(_props, ['step', 'min', 'max', 'precision', 'parse', 'format', 'mobile', 'snap', 'componentClass', 'value', 'type', 'style', 'defaultValue', 'onInvalid', 'onValid', 'strict', 'noStyle']);\n\n\t noStyle = noStyle || style === false;\n\n\t for (var x in NumericInput.style) {\n\t css[x] = _extends({}, NumericInput.style[x], style ? style[x] || {} : {});\n\t }\n\n\t var hasFormControl = props.className && /\\bform-control\\b/.test(props.className);\n\n\t if (mobile == 'auto') {\n\t mobile = IS_BROWSER && 'ontouchstart' in document;\n\t }\n\n\t if (typeof mobile == \"function\") {\n\t mobile = mobile.call(this);\n\t }\n\t mobile = !!mobile;\n\n\t var attrs = {\n\t wrap: {\n\t style: noStyle ? null : css.wrap,\n\t className: 'react-numeric-input',\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsWrapper = e;\n\t }\n\t },\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined\n\t },\n\t input: _extends({\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsInput = e;\n\t }\n\t },\n\t type: 'text',\n\t style: noStyle ? null : _extends({}, css.input, !hasFormControl ? css['input:not(.form-control)'] : {}, this._inputFocus ? css['input:focus'] : {})\n\t }, rest),\n\t btnUp: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnUp, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnUpActive ? css['btn:active'] : state.btnUpHover ? css['btn:hover'] : {})\n\t },\n\t btnDown: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnDown, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnDownActive ? css['btn:active'] : state.btnDownHover ? css['btn:hover'] : {})\n\t }\n\t };\n\n\t var stringValue = String(state.stringValue || (state.value || state.value === 0 ? state.value : \"\") || \"\");\n\n\t var loose = !this._isStrict && (this._inputFocus || !this._isMounted);\n\n\t if (loose && RE_INCOMPLETE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (loose && stringValue && !RE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (state.value || state.value === 0) {\n\t attrs.input.value = this._format(state.value);\n\t } else {\n\t attrs.input.value = \"\";\n\t }\n\n\t if (hasFormControl && !noStyle) {\n\t _extends(attrs.wrap.style, css['wrap.hasFormControl']);\n\t }\n\n\t if (mobile && !noStyle) {\n\t _extends(attrs.input.style, css['input.mobile']);\n\t _extends(attrs.btnUp.style, css['btnUp.mobile']);\n\t _extends(attrs.btnDown.style, css['btnDown.mobile']);\n\t }\n\n\t if (!props.disabled && !props.readOnly) {\n\t _extends(attrs.wrap, {\n\t onMouseUp: this.stop,\n\t onMouseLeave: this.stop\n\t });\n\n\t _extends(attrs.btnUp, {\n\t onTouchStart: this.onTouchStart.bind(this, 'up'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnUpHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnUpHover: false,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n\t args[_key5] = arguments[_key5];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('up');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.btnDown, {\n\t onTouchStart: this.onTouchStart.bind(this, 'down'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnDownHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnDownHover: false,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n\t args[_key6] = arguments[_key6];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('down');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.input, {\n\t onChange: function onChange(e) {\n\t var original = e.target.value;\n\t var val = _this6._parse(original);\n\t if (isNaN(val)) {\n\t val = null;\n\t }\n\t _this6.setState({\n\t value: _this6._isStrict ? _this6._toNumber(val) : val,\n\t stringValue: original\n\t });\n\t },\n\t onKeyDown: this._onKeyDown.bind(this),\n\t onInput: function onInput() {\n\t for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n\t args[_key7] = arguments[_key7];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onInput\"].concat(args));\n\t },\n\t onSelect: function onSelect() {\n\t for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n\t args[_key8] = arguments[_key8];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onSelect\"].concat(args));\n\t },\n\t onFocus: function onFocus() {\n\t for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n\t args[_key9] = arguments[_key9];\n\t }\n\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val,\n\t stringValue: val || val === 0 ? val + \"\" : \"\"\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t });\n\t },\n\t onBlur: function onBlur() {\n\t for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n\t args[_key10] = arguments[_key10];\n\t }\n\n\t var _isStrict = _this6._isStrict;\n\t _this6._isStrict = true;\n\t args[0].persist();\n\t _this6._inputFocus = false;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onBlur\"].concat(args));\n\t _this6._isStrict = _isStrict;\n\t });\n\t }\n\t });\n\t } else {\n\t if (!noStyle && props.disabled) {\n\t _extends(attrs.input.style, css['input:disabled']);\n\t }\n\t }\n\n\t var InputTag = componentClass || 'input';\n\n\t if (mobile) {\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus }),\n\t _react2.default.createElement('i', { style: noStyle ? null : css.plus })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus })\n\t )\n\t );\n\t }\n\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowUp })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowDown })\n\t )\n\t );\n\t }\n\t }]);\n\n\t return NumericInput;\n\t}(_react.Component);\n\n\tNumericInput.propTypes = {\n\t step: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t min: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t max: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t precision: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t maxLength: _propTypes2.default.number,\n\t parse: _propTypes2.default.func,\n\t format: _propTypes2.default.func,\n\t className: _propTypes2.default.string,\n\t disabled: _propTypes2.default.bool,\n\t readOnly: _propTypes2.default.bool,\n\t required: _propTypes2.default.bool,\n\t snap: _propTypes2.default.bool,\n\t noValidate: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n\t style: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),\n\t noStyle: _propTypes2.default.bool,\n\t type: _propTypes2.default.string,\n\t pattern: _propTypes2.default.string,\n\t onFocus: _propTypes2.default.func,\n\t onBlur: _propTypes2.default.func,\n\t onKeyDown: _propTypes2.default.func,\n\t onChange: _propTypes2.default.func,\n\t onInvalid: _propTypes2.default.func,\n\t onValid: _propTypes2.default.func,\n\t onInput: _propTypes2.default.func,\n\t onSelect: _propTypes2.default.func,\n\t size: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t strict: _propTypes2.default.bool,\n\t componentClass: _propTypes2.default.string,\n\t mobile: function mobile(props, propName) {\n\t var prop = props[propName];\n\t if (prop !== true && prop !== false && prop !== 'auto' && typeof prop != 'function') {\n\t return new Error('The \"mobile\" prop must be true, false, \"auto\" or a function');\n\t }\n\t }\n\t};\n\tNumericInput.defaultProps = {\n\t step: 1,\n\t min: Number.MIN_SAFE_INTEGER || -9007199254740991,\n\t max: Number.MAX_SAFE_INTEGER || 9007199254740991,\n\t precision: null,\n\t parse: null,\n\t format: null,\n\t mobile: 'auto',\n\t strict: false,\n\t componentClass: \"input\",\n\t style: {}\n\t};\n\tNumericInput.style = {\n\t wrap: {\n\t position: 'relative',\n\t display: 'inline-block'\n\t },\n\n\t 'wrap.hasFormControl': {\n\t display: 'block'\n\t },\n\n\t arrowUp: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0 0.6ex 0.6ex 0.6ex',\n\t borderColor: 'transparent transparent rgba(0, 0, 0, 0.7)',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t arrowDown: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0.6ex 0.6ex 0 0.6ex',\n\t borderColor: 'rgba(0, 0, 0, 0.7) transparent transparent',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t plus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 2,\n\t height: 10,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-5px 0 0 -1px'\n\t },\n\n\t minus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 10,\n\t height: 2,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-1px 0 0 -5px'\n\t },\n\n\t btn: {\n\t position: 'absolute',\n\t right: 2,\n\t width: '2.26ex',\n\t borderColor: 'rgba(0,0,0,.1)',\n\t borderStyle: 'solid',\n\t textAlign: 'center',\n\t cursor: 'default',\n\t transition: 'all 0.1s',\n\t background: 'rgba(0,0,0,.1)',\n\t boxShadow: '-1px -1px 3px rgba(0,0,0,.1) inset,' + '1px 1px 3px rgba(255,255,255,.7) inset'\n\t },\n\n\t btnUp: {\n\t top: 2,\n\t bottom: '50%',\n\t borderRadius: '2px 2px 0 0',\n\t borderWidth: '1px 1px 0 1px'\n\t },\n\n\t 'btnUp.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t btnDown: {\n\t top: '50%',\n\t bottom: 2,\n\t borderRadius: '0 0 2px 2px',\n\t borderWidth: '0 1px 1px 1px'\n\t },\n\n\t 'btnDown.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t left: 2,\n\t top: 2,\n\t right: 'auto',\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t 'btn:hover': {\n\t background: 'rgba(0,0,0,.2)'\n\t },\n\n\t 'btn:active': {\n\t background: 'rgba(0,0,0,.3)',\n\t boxShadow: '0 1px 3px rgba(0,0,0,.2) inset,' + '-1px -1px 4px rgba(255,255,255,.5) inset'\n\t },\n\n\t 'btn:disabled': {\n\t opacity: 0.5,\n\t boxShadow: 'none',\n\t cursor: 'not-allowed'\n\t },\n\n\t input: {\n\t paddingRight: '3ex',\n\t boxSizing: 'border-box',\n\t fontSize: 'inherit'\n\t },\n\n\t 'input:not(.form-control)': {\n\t border: '1px solid #ccc',\n\t borderRadius: 2,\n\t paddingLeft: 4,\n\t display: 'block',\n\t WebkitAppearance: 'none',\n\t lineHeight: 'normal'\n\t },\n\n\t 'input.mobile': {\n\t paddingLeft: ' 3.4ex',\n\t paddingRight: '3.4ex',\n\t textAlign: 'center'\n\t },\n\n\t 'input:focus': {},\n\n\t 'input:disabled': {\n\t color: 'rgba(0, 0, 0, 0.3)',\n\t textShadow: '0 1px 0 rgba(255, 255, 255, 0.8)'\n\t }\n\t};\n\tNumericInput.SPEED = 50;\n\tNumericInput.DELAY = 500;\n\tNumericInput.DIRECTION_UP = \"up\";\n\tNumericInput.DIRECTION_DOWN = \"down\";\n\n\n\tmodule.exports = NumericInput;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"react\");\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"prop-types\");\n\n/***/ })\n/******/ ]);","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","/**\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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (typeof obj === 'undefined') {\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from './_curry1';\nimport _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _isArrayLike from './_isArrayLike';\nimport _xwrap from './_xwrap';\nimport bind from '../bind';\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from './_has';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n};\n\nexport default _isArguments;","import _curry1 from './internal/_curry1';\nimport _has from './internal/_has';\nimport _isArguments from './internal/_isArguments';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar _keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n} : function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n};\nvar keys = /*#__PURE__*/_curry1(_keys);\nexport default keys;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","import _objectAssign from './_objectAssign';\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _curry1 from './internal/_curry1';\nimport _of from './internal/_of';\n\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\nvar of = /*#__PURE__*/_curry1(_of);\nexport default of;","import _curry2 from './internal/_curry2';\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\nvar omit = /*#__PURE__*/_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nexport default omit;","import _cloneRegExp from './internal/_cloneRegExp';\nimport _curry2 from './internal/_curry2';\nimport _isRegExp from './internal/_isRegExp';\nimport toString from './toString';\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\nvar test = /*#__PURE__*/_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n return _cloneRegExp(pattern).test(str);\n});\nexport default test;","import _curry1 from './internal/_curry1';\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\nvar _trim = !hasProtoTrim || /*#__PURE__*/ws.trim() || ! /*#__PURE__*/zeroWidth.trim() ? function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n} : function trim(str) {\n return str.trim();\n};\nvar trim = /*#__PURE__*/_curry1(_trim);\nexport default trim;","export { default as F } from './F';\nexport { default as T } from './T';\nexport { default as __ } from './__';\nexport { default as add } from './add';\nexport { default as addIndex } from './addIndex';\nexport { default as adjust } from './adjust';\nexport { default as all } from './all';\nexport { default as allPass } from './allPass';\nexport { default as always } from './always';\nexport { default as and } from './and';\nexport { default as any } from './any';\nexport { default as anyPass } from './anyPass';\nexport { default as ap } from './ap';\nexport { default as aperture } from './aperture';\nexport { default as append } from './append';\nexport { default as apply } from './apply';\nexport { default as applySpec } from './applySpec';\nexport { default as applyTo } from './applyTo';\nexport { default as ascend } from './ascend';\nexport { default as assoc } from './assoc';\nexport { default as assocPath } from './assocPath';\nexport { default as binary } from './binary';\nexport { default as bind } from './bind';\nexport { default as both } from './both';\nexport { default as call } from './call';\nexport { default as chain } from './chain';\nexport { default as clamp } from './clamp';\nexport { default as clone } from './clone';\nexport { default as comparator } from './comparator';\nexport { default as complement } from './complement';\nexport { default as compose } from './compose';\nexport { default as composeK } from './composeK';\nexport { default as composeP } from './composeP';\nexport { default as concat } from './concat';\nexport { default as cond } from './cond';\nexport { default as construct } from './construct';\nexport { default as constructN } from './constructN';\nexport { default as contains } from './contains';\nexport { default as converge } from './converge';\nexport { default as countBy } from './countBy';\nexport { default as curry } from './curry';\nexport { default as curryN } from './curryN';\nexport { default as dec } from './dec';\nexport { default as defaultTo } from './defaultTo';\nexport { default as descend } from './descend';\nexport { default as difference } from './difference';\nexport { default as differenceWith } from './differenceWith';\nexport { default as dissoc } from './dissoc';\nexport { default as dissocPath } from './dissocPath';\nexport { default as divide } from './divide';\nexport { default as drop } from './drop';\nexport { default as dropLast } from './dropLast';\nexport { default as dropLastWhile } from './dropLastWhile';\nexport { default as dropRepeats } from './dropRepeats';\nexport { default as dropRepeatsWith } from './dropRepeatsWith';\nexport { default as dropWhile } from './dropWhile';\nexport { default as either } from './either';\nexport { default as empty } from './empty';\nexport { default as endsWith } from './endsWith';\nexport { default as eqBy } from './eqBy';\nexport { default as eqProps } from './eqProps';\nexport { default as equals } from './equals';\nexport { default as evolve } from './evolve';\nexport { default as filter } from './filter';\nexport { default as find } from './find';\nexport { default as findIndex } from './findIndex';\nexport { default as findLast } from './findLast';\nexport { default as findLastIndex } from './findLastIndex';\nexport { default as flatten } from './flatten';\nexport { default as flip } from './flip';\nexport { default as forEach } from './forEach';\nexport { default as forEachObjIndexed } from './forEachObjIndexed';\nexport { default as fromPairs } from './fromPairs';\nexport { default as groupBy } from './groupBy';\nexport { default as groupWith } from './groupWith';\nexport { default as gt } from './gt';\nexport { default as gte } from './gte';\nexport { default as has } from './has';\nexport { default as hasIn } from './hasIn';\nexport { default as head } from './head';\nexport { default as identical } from './identical';\nexport { default as identity } from './identity';\nexport { default as ifElse } from './ifElse';\nexport { default as inc } from './inc';\nexport { default as indexBy } from './indexBy';\nexport { default as indexOf } from './indexOf';\nexport { default as init } from './init';\nexport { default as innerJoin } from './innerJoin';\nexport { default as insert } from './insert';\nexport { default as insertAll } from './insertAll';\nexport { default as intersection } from './intersection';\nexport { default as intersperse } from './intersperse';\nexport { default as into } from './into';\nexport { default as invert } from './invert';\nexport { default as invertObj } from './invertObj';\nexport { default as invoker } from './invoker';\nexport { default as is } from './is';\nexport { default as isEmpty } from './isEmpty';\nexport { default as isNil } from './isNil';\nexport { default as join } from './join';\nexport { default as juxt } from './juxt';\nexport { default as keys } from './keys';\nexport { default as keysIn } from './keysIn';\nexport { default as last } from './last';\nexport { default as lastIndexOf } from './lastIndexOf';\nexport { default as length } from './length';\nexport { default as lens } from './lens';\nexport { default as lensIndex } from './lensIndex';\nexport { default as lensPath } from './lensPath';\nexport { default as lensProp } from './lensProp';\nexport { default as lift } from './lift';\nexport { default as liftN } from './liftN';\nexport { default as lt } from './lt';\nexport { default as lte } from './lte';\nexport { default as map } from './map';\nexport { default as mapAccum } from './mapAccum';\nexport { default as mapAccumRight } from './mapAccumRight';\nexport { default as mapObjIndexed } from './mapObjIndexed';\nexport { default as match } from './match';\nexport { default as mathMod } from './mathMod';\nexport { default as max } from './max';\nexport { default as maxBy } from './maxBy';\nexport { default as mean } from './mean';\nexport { default as median } from './median';\nexport { default as memoize } from './memoize';\nexport { default as memoizeWith } from './memoizeWith';\nexport { default as merge } from './merge';\nexport { default as mergeAll } from './mergeAll';\nexport { default as mergeDeepLeft } from './mergeDeepLeft';\nexport { default as mergeDeepRight } from './mergeDeepRight';\nexport { default as mergeDeepWith } from './mergeDeepWith';\nexport { default as mergeDeepWithKey } from './mergeDeepWithKey';\nexport { default as mergeWith } from './mergeWith';\nexport { default as mergeWithKey } from './mergeWithKey';\nexport { default as min } from './min';\nexport { default as minBy } from './minBy';\nexport { default as modulo } from './modulo';\nexport { default as multiply } from './multiply';\nexport { default as nAry } from './nAry';\nexport { default as negate } from './negate';\nexport { default as none } from './none';\nexport { default as not } from './not';\nexport { default as nth } from './nth';\nexport { default as nthArg } from './nthArg';\nexport { default as o } from './o';\nexport { default as objOf } from './objOf';\nexport { default as of } from './of';\nexport { default as omit } from './omit';\nexport { default as once } from './once';\nexport { default as or } from './or';\nexport { default as over } from './over';\nexport { default as pair } from './pair';\nexport { default as partial } from './partial';\nexport { default as partialRight } from './partialRight';\nexport { default as partition } from './partition';\nexport { default as path } from './path';\nexport { default as pathEq } from './pathEq';\nexport { default as pathOr } from './pathOr';\nexport { default as pathSatisfies } from './pathSatisfies';\nexport { default as pick } from './pick';\nexport { default as pickAll } from './pickAll';\nexport { default as pickBy } from './pickBy';\nexport { default as pipe } from './pipe';\nexport { default as pipeK } from './pipeK';\nexport { default as pipeP } from './pipeP';\nexport { default as pluck } from './pluck';\nexport { default as prepend } from './prepend';\nexport { default as product } from './product';\nexport { default as project } from './project';\nexport { default as prop } from './prop';\nexport { default as propEq } from './propEq';\nexport { default as propIs } from './propIs';\nexport { default as propOr } from './propOr';\nexport { default as propSatisfies } from './propSatisfies';\nexport { default as props } from './props';\nexport { default as range } from './range';\nexport { default as reduce } from './reduce';\nexport { default as reduceBy } from './reduceBy';\nexport { default as reduceRight } from './reduceRight';\nexport { default as reduceWhile } from './reduceWhile';\nexport { default as reduced } from './reduced';\nexport { default as reject } from './reject';\nexport { default as remove } from './remove';\nexport { default as repeat } from './repeat';\nexport { default as replace } from './replace';\nexport { default as reverse } from './reverse';\nexport { default as scan } from './scan';\nexport { default as sequence } from './sequence';\nexport { default as set } from './set';\nexport { default as slice } from './slice';\nexport { default as sort } from './sort';\nexport { default as sortBy } from './sortBy';\nexport { default as sortWith } from './sortWith';\nexport { default as split } from './split';\nexport { default as splitAt } from './splitAt';\nexport { default as splitEvery } from './splitEvery';\nexport { default as splitWhen } from './splitWhen';\nexport { default as startsWith } from './startsWith';\nexport { default as subtract } from './subtract';\nexport { default as sum } from './sum';\nexport { default as symmetricDifference } from './symmetricDifference';\nexport { default as symmetricDifferenceWith } from './symmetricDifferenceWith';\nexport { default as tail } from './tail';\nexport { default as take } from './take';\nexport { default as takeLast } from './takeLast';\nexport { default as takeLastWhile } from './takeLastWhile';\nexport { default as takeWhile } from './takeWhile';\nexport { default as tap } from './tap';\nexport { default as test } from './test';\nexport { default as times } from './times';\nexport { default as toLower } from './toLower';\nexport { default as toPairs } from './toPairs';\nexport { default as toPairsIn } from './toPairsIn';\nexport { default as toString } from './toString';\nexport { default as toUpper } from './toUpper';\nexport { default as transduce } from './transduce';\nexport { default as transpose } from './transpose';\nexport { default as traverse } from './traverse';\nexport { default as trim } from './trim';\nexport { default as tryCatch } from './tryCatch';\nexport { default as type } from './type';\nexport { default as unapply } from './unapply';\nexport { default as unary } from './unary';\nexport { default as uncurryN } from './uncurryN';\nexport { default as unfold } from './unfold';\nexport { default as union } from './union';\nexport { default as unionWith } from './unionWith';\nexport { default as uniq } from './uniq';\nexport { default as uniqBy } from './uniqBy';\nexport { default as uniqWith } from './uniqWith';\nexport { default as unless } from './unless';\nexport { default as unnest } from './unnest';\nexport { default as until } from './until';\nexport { default as update } from './update';\nexport { default as useWith } from './useWith';\nexport { default as values } from './values';\nexport { default as valuesIn } from './valuesIn';\nexport { default as view } from './view';\nexport { default as when } from './when';\nexport { default as where } from './where';\nexport { default as whereEq } from './whereEq';\nexport { default as without } from './without';\nexport { default as xprod } from './xprod';\nexport { default as zip } from './zip';\nexport { default as zipObj } from './zipObj';\nexport { default as zipWith } from './zipWith';","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","module.exports = {};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","module.exports = true;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","exports.f = {}.propertyIsEnumerable;\n","import styled, { css } from 'styled-components';\n\nexport default styled.label`\n display: block;\n font-size: 14px;\n ${({ position }) =>\n position === 'top'\n ? css`\n margin-bottom: 8px;\n `\n : css`\n margin-top: 8px;\n `}\n ${props =>\n css`\n ${props.css}\n `}\n`;\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _getPrototypeOf = require(\"../core-js/object/get-prototype-of\");\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _getOwnPropertyDescriptor = require(\"../core-js/object/get-own-property-descriptor\");\n\nvar _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = (0, _getOwnPropertyDescriptor2.default)(object, property);\n\n if (desc === undefined) {\n var parent = (0, _getPrototypeOf2.default)(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};","/**\n * CSS conic-gradient() polyfill\n * By Lea Verou — http://lea.verou.me\n * MIT license\n */\n\n(function(){\n\nvar π = Math.PI;\nvar τ = 2 * π;\nvar ε = .00001;\nvar deg = π/180;\n\nvar dummy = document.createElement(\"div\");\ndocument.head.appendChild(dummy);\n\nvar _ = self.ConicGradient = function(o) {\n\tvar me = this;\n\t_.all.push(this);\n\n\to = o || {};\n\n\tthis.canvas = document.createElement(\"canvas\");\n\tthis.context = this.canvas.getContext(\"2d\");\n\n\tthis.repeating = !!o.repeating;\n\n\tthis.size = o.size || Math.max(innerWidth, innerHeight);\n\n\tthis.canvas.width = this.canvas.height = this.size;\n\n\tvar stops = o.stops;\n\n\tthis.stops = (stops || \"\").split(/\\s*,(?![^(]*\\))\\s*/); // commas that are not followed by a ) without a ( first\n\n\tthis.from = 0;\n\n\tfor (var i=0; i 0) {\n\t\tvar first = this.stops[0].clone();\n\t\tfirst.pos = 0;\n\t\tthis.stops.unshift(first);\n\t}\n\n\t// Add dummy last stop or set first stop’s position to 100% if it doesn’t have one\n\tif (this.stops[this.stops.length - 1].pos === undefined) {\n\t\tthis.stops[this.stops.length - 1].pos = 1;\n\t}\n\telse if (!this.repeating && this.stops[this.stops.length - 1].pos < 1) {\n\t\tvar last = this.stops[this.stops.length - 1].clone();\n\t\tlast.pos = 1;\n\t\tthis.stops.push(last);\n\t}\n\n\tthis.stops.forEach(function(stop, i){\n\t\tif (stop.pos === undefined) {\n\t\t\t// Evenly space color stops with no position\n\t\t\tfor (var j=i+1; this[j]; j++) {\n\t\t\t\tif (this[j].pos !== undefined) {\n\t\t\t\t\tstop.pos = this[i-1].pos + (this[j].pos - this[i-1].pos)/(j-i+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (i > 0) {\n\t\t\t// Normalize color stops whose position is smaller than the position of the stop before them\n\t\t\tstop.pos = Math.max(stop.pos, this[i-1].pos);\n\t\t}\n\t}, this.stops);\n\n\tif (this.repeating) {\n\t\t// Repeat color stops until >= 1\n\t\tvar stops = this.stops.slice();\n\t\tvar lastStop = stops[stops.length-1];\n\t\tvar difference = lastStop.pos - stops[0].pos;\n\n\t\tfor (var i=0; this.stops[this.stops.length-1].pos < 1 && i<10000; i++) {\n\t\t\tfor (var j=0; j' +\n\t\t\t'' +\n\t\t\t'';\n\t},\n\n\tget png() {\n\t\treturn this.canvas.toDataURL();\n\t},\n\n\tget r() {\n\t\treturn Math.sqrt(2) * this.size / 2;\n\t},\n\n\t// Paint the conical gradient on the canvas\n\t// Algorithm inspired from http://jsdo.it/akm2/yr9B\n\tpaint: function() {\n\t\tvar c = this.context;\n\n\t\tvar radius = this.r;\n\t\tvar x = this.size / 2;\n\n\t\tvar stopIndex = 0; // The index of the current color\n\t\tvar stop = this.stops[stopIndex], prevStop;\n\n\t\tvar diff, t;\n\n\t\t// Transform coordinate system so that angles start from the top left, like in CSS\n\t\tc.translate(this.size/2, this.size/2);\n\t\tc.rotate(-90*deg);\n\t\tc.rotate(this.from*deg);\n\t\tc.translate(-this.size/2, -this.size/2);\n\n\t\tfor (var i = 0; i < 360;) {\n\t\t\tif (i/360 + ε >= stop.pos) {\n\t\t\t\t// Switch color stop\n\t\t\t\tdo {\n\t\t\t\t\tprevStop = stop;\n\n\t\t\t\t\tstopIndex++;\n\t\t\t\t\tstop = this.stops[stopIndex];\n\t\t\t\t} while(stop && stop != prevStop && stop.pos === prevStop.pos);\n\n\t\t\t\tif (!stop) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tvar sameColor = prevStop.color + \"\" === stop.color + \"\" && prevStop != stop;\n\n\t\t\t\tdiff = prevStop.color.map(function(c, i){\n\t\t\t\t\treturn stop.color[i] - c;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tt = (i/360 - prevStop.pos) / (stop.pos - prevStop.pos);\n\n\t\t\tvar interpolated = sameColor? stop.color : diff.map(function(d,i){\n\t\t\t\tvar ret = d * t + prevStop.color[i];\n\n\t\t\t\treturn i < 3? ret & 255 : ret;\n\t\t\t});\n\n\t\t\t// Draw a series of arcs, 1deg each\n\t\t\tc.fillStyle = 'rgba(' + interpolated.join(\",\") + ')';\n\t\t\tc.beginPath();\n\t\t\tc.moveTo(x, x);\n\n\t\t\tif (sameColor) {\n\t\t\t\tvar θ = 360 * (stop.pos - prevStop.pos);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar θ = .5;\n\t\t\t}\n\n\t\t\tvar beginArg = i*deg;\n\t\t\tbeginArg = Math.min(360*deg, beginArg);\n\n\t\t\t// .02: To prevent empty blank line and corresponding moire\n\t\t\t// only non-alpha colors are cared now\n\t\t\tvar endArg = beginArg + θ*deg;\n\t\t\tendArg = Math.min(360*deg, endArg + .02);\n\n\t\t\tc.arc(x, x, radius, beginArg, endArg);\n\n\t\t\tc.closePath();\n\t\t\tc.fill();\n\n\t\t\ti += θ;\n\t\t}\n\t}\n};\n\n_.ColorStop = function(gradient, stop) {\n\tthis.gradient = gradient;\n\n\tif (stop) {\n\t\tvar parts = stop.match(/^(.+?)(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?\\s*$/);\n\n\t\tthis.color = _.ColorStop.colorToRGBA(parts[1]);\n\n\t\tif (parts[2]) {\n\t\t\tvar unit = parts[3];\n\n\t\t\tif (unit == \"%\" || parts[2] === \"0\" && !unit) {\n\t\t\t\tthis.pos = parts[2]/100;\n\t\t\t}\n\t\t\telse if (unit == \"turn\") {\n\t\t\t\tthis.pos = +parts[2];\n\t\t\t}\n\t\t\telse if (unit == \"deg\") {\n\t\t\t\tthis.pos = parts[2] / 360;\n\t\t\t}\n\t\t\telse if (unit == \"grad\") {\n\t\t\t\tthis.pos = parts[2] / 400;\n\t\t\t}\n\t\t\telse if (unit == \"rad\") {\n\t\t\t\tthis.pos = parts[2] / τ;\n\t\t\t}\n\t\t}\n\n\t\tif (parts[4]) {\n\t\t\tthis.next = new _.ColorStop(gradient, parts[1] + \" \" + parts[4] + parts[5]);\n\t\t}\n\t}\n}\n\n_.ColorStop.prototype = {\n\tclone: function() {\n\t\tvar ret = new _.ColorStop(this.gradient);\n\t\tret.color = this.color;\n\t\tret.pos = this.pos;\n\n\t\treturn ret;\n\t},\n\n\ttoString: function() {\n\t\treturn \"rgba(\" + this.color.join(\", \") + \") \" + this.pos * 100 + \"%\";\n\t}\n};\n\n_.ColorStop.colorToRGBA = function(color) {\n\tif (!Array.isArray(color) && color.indexOf(\"from\") == -1) {\n\t\tdummy.style.color = color;\n\n\t\tvar rgba = getComputedStyle(dummy).color.match(/rgba?\\(([\\d.]+), ([\\d.]+), ([\\d.]+)(?:, ([\\d.]+))?\\)/);\n\n\t\tif (rgba) {\n\t\t\trgba.shift();\n\t\t\trgba = rgba.map(function(a) { return +a });\n\t\t\trgba[3] = isNaN(rgba[3])? 1 : rgba[3];\n\t\t}\n\n\t\treturn rgba || [0,0,0,0];\n\t}\n\n\treturn color;\n};\n\n})();\n\nif (self.StyleFix) {\n\t// Test if conic gradients are supported first:\n\t(function(){\n\t\tvar dummy = document.createElement(\"p\");\n\t\tdummy.style.backgroundImage = \"conic-gradient(white, black)\";\n\t\tdummy.style.backgroundImage = PrefixFree.prefix + \"conic-gradient(white, black)\";\n\n\t\tif (!dummy.style.backgroundImage) {\n\t\t\t// Not supported, use polyfill\n\t\t\tStyleFix.register(function(css, raw) {\n\t\t\t\tif (css.indexOf(\"conic-gradient\") > -1) {\n\t\t\t\t\tcss = css.replace(/(?:repeating-)?conic-gradient\\(\\s*((?:\\([^()]+\\)|[^;()}])+?)\\)/g, function(gradient, stops) {\n\t\t\t\t\t\treturn new ConicGradient({\n\t\t\t\t\t\t\tstops: stops,\n\t\t\t\t\t\t\trepeating: gradient.indexOf(\"repeating-\") > -1\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn css;\n\t\t\t});\n\t\t}\n\t})();\n}\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","!function(e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(null):\"function\"==typeof define&&define.amd?define(e(null)):window.stylis=e(null)}(function e(a){\"use strict\";var r=/^\\0+/g,c=/[\\0\\r\\f]/g,s=/: */g,t=/zoo|gra/,i=/([,: ])(transform)/g,f=/,+\\s*(?![^(]*[)])/g,n=/ +\\s*(?![^(]*[)])/g,l=/ *[\\0] */g,o=/,\\r+?/g,h=/([\\t\\r\\n ])*\\f?&/g,u=/:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g,d=/\\W+/g,b=/@(k\\w+)\\s*(\\S*)\\s*/,p=/::(place)/g,k=/:(read-only)/g,g=/\\s+(?=[{\\];=:>])/g,A=/([[}=:>])\\s+/g,C=/(\\{[^{]+?);(?=\\})/g,w=/\\s{2,}/g,v=/([^\\(])(:+) */g,m=/[svh]\\w+-[tblr]{2}/,x=/\\(\\s*(.*)\\s*\\)/g,$=/([\\s\\S]*?);/g,y=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\\w-]+)[^]*/,j=/stretch|:\\s*\\w+\\-(?:conte|avail)/,z=/([^-])(image-set\\()/,N=\"-webkit-\",S=\"-moz-\",F=\"-ms-\",W=59,q=125,B=123,D=40,E=41,G=91,H=93,I=10,J=13,K=9,L=64,M=32,P=38,Q=45,R=95,T=42,U=44,V=58,X=39,Y=34,Z=47,_=62,ee=43,ae=126,re=0,ce=12,se=11,te=107,ie=109,fe=115,ne=112,le=111,oe=105,he=99,ue=100,de=112,be=1,pe=1,ke=0,ge=1,Ae=1,Ce=1,we=0,ve=0,me=0,xe=[],$e=[],ye=0,Oe=null,je=-2,ze=-1,Ne=0,Se=1,Fe=2,We=3,qe=0,Be=1,De=\"\",Ee=\"\",Ge=\"\";function He(e,a,s,t,i){for(var f,n,o=0,h=0,u=0,d=0,g=0,A=0,C=0,w=0,m=0,$=0,y=0,O=0,j=0,z=0,R=0,we=0,$e=0,Oe=0,je=0,ze=s.length,Je=ze-1,Re=\"\",Te=\"\",Ue=\"\",Ve=\"\",Xe=\"\",Ye=\"\";R0)Te=Te.replace(c,\"\");if(Te.trim().length>0){switch(C){case M:case K:case W:case J:case I:break;default:Te+=s.charAt(R)}C=W}}if(1===$e)switch(C){case B:case q:case W:case Y:case X:case D:case E:case U:$e=0;case K:case J:case I:case M:break;default:for($e=0,je=R,g=C,R--,C=W;je0)++R,C=g;case B:je=ze}}switch(C){case B:for(g=(Te=Te.trim()).charCodeAt(0),y=1,je=++R;R0)Te=Te.replace(c,\"\");switch(A=Te.charCodeAt(1)){case ue:case ie:case fe:case Q:f=a;break;default:f=xe}if(je=(Ue=He(a,f,Ue,A,i+1)).length,me>0&&0===je)je=Te.length;if(ye>0)if(f=Ie(xe,Te,Oe),n=Pe(We,Ue,f,a,pe,be,je,A,i,t),Te=f.join(\"\"),void 0!==n)if(0===(je=(Ue=n.trim()).length))A=0,Ue=\"\";if(je>0)switch(A){case fe:Te=Te.replace(x,Me);case ue:case ie:case Q:Ue=Te+\"{\"+Ue+\"}\";break;case te:if(Ue=(Te=Te.replace(b,\"$1 $2\"+(Be>0?De:\"\")))+\"{\"+Ue+\"}\",1===Ae||2===Ae&&Le(\"@\"+Ue,3))Ue=\"@\"+N+Ue+\"@\"+Ue;else Ue=\"@\"+Ue;break;default:if(Ue=Te+Ue,t===de)Ve+=Ue,Ue=\"\"}else Ue=\"\";break;default:Ue=He(a,Ie(a,Te,Oe),Ue,t,i+1)}Xe+=Ue,O=0,$e=0,z=0,we=0,Oe=0,j=0,Te=\"\",Ue=\"\",C=s.charCodeAt(++R);break;case q:case W:if((je=(Te=(we>0?Te.replace(c,\"\"):Te).trim()).length)>1){if(0===z)if((g=Te.charCodeAt(0))===Q||g>96&&g<123)je=(Te=Te.replace(\" \",\":\")).length;if(ye>0)if(void 0!==(n=Pe(Se,Te,a,e,pe,be,Ve.length,t,i,t)))if(0===(je=(Te=n.trim()).length))Te=\"\\0\\0\";switch(g=Te.charCodeAt(0),A=Te.charCodeAt(1),g){case re:break;case L:if(A===oe||A===he){Ye+=Te+s.charAt(R);break}default:if(Te.charCodeAt(je-1)===V)break;Ve+=Ke(Te,g,A,Te.charCodeAt(2))}}O=0,$e=0,z=0,we=0,Oe=0,Te=\"\",C=s.charCodeAt(++R)}}switch(C){case J:case I:if(h+d+u+o+ve===0)switch($){case E:case X:case Y:case L:case ae:case _:case T:case ee:case Z:case Q:case V:case U:case W:case B:case q:break;default:if(z>0)$e=1}if(h===Z)h=0;else if(ge+O===0&&t!==te&&Te.length>0)we=1,Te+=\"\\0\";if(ye*qe>0)Pe(Ne,Te,a,e,pe,be,Ve.length,t,i,t);be=1,pe++;break;case W:case q:if(h+d+u+o===0){be++;break}default:switch(be++,Re=s.charAt(R),C){case K:case M:if(d+o+h===0)switch(w){case U:case V:case K:case M:Re=\"\";break;default:if(C!==M)Re=\" \"}break;case re:Re=\"\\\\0\";break;case ce:Re=\"\\\\f\";break;case se:Re=\"\\\\v\";break;case P:if(d+h+o===0&&ge>0)Oe=1,we=1,Re=\"\\f\"+Re;break;case 108:if(d+h+o+ke===0&&z>0)switch(R-z){case 2:if(w===ne&&s.charCodeAt(R-3)===V)ke=w;case 8:if(m===le)ke=m}break;case V:if(d+h+o===0)z=R;break;case U:if(h+u+d+o===0)we=1,Re+=\"\\r\";break;case Y:case X:if(0===h)d=d===C?0:0===d?C:d;break;case G:if(d+h+u===0)o++;break;case H:if(d+h+u===0)o--;break;case E:if(d+h+o===0)u--;break;case D:if(d+h+o===0){if(0===O)switch(2*w+3*m){case 533:break;default:y=0,O=1}u++}break;case L:if(h+u+d+o+z+j===0)j=1;break;case T:case Z:if(d+o+u>0)break;switch(h){case 0:switch(2*C+3*s.charCodeAt(R+1)){case 235:h=Z;break;case 220:je=R,h=T}break;case T:if(C===Z&&w===T&&je+2!==R){if(33===s.charCodeAt(je+2))Ve+=s.substring(je,R+1);Re=\"\",h=0}}}if(0===h){if(ge+d+o+j===0&&t!==te&&C!==W)switch(C){case U:case ae:case _:case ee:case E:case D:if(0===O){switch(w){case K:case M:case I:case J:Re+=\"\\0\";break;default:Re=\"\\0\"+Re+(C===U?\"\":\"\\0\")}we=1}else switch(C){case D:if(z+7===R&&108===w)z=0;O=++y;break;case E:if(0==(O=--y))we=1,Re+=\"\\0\"}break;case K:case M:switch(w){case re:case B:case q:case W:case U:case ce:case K:case M:case I:case J:break;default:if(0===O)we=1,Re+=\"\\0\"}}if(Te+=Re,C!==M&&C!==K)$=C}}m=w,w=C,R++}if(je=Ve.length,me>0)if(0===je&&0===Xe.length&&0===a[0].length==false)if(t!==ie||1===a.length&&(ge>0?Ee:Ge)===a[0])je=a.join(\",\").length+2;if(je>0){if(f=0===ge&&t!==te?function(e){for(var a,r,s=0,t=e.length,i=Array(t);s1)continue;if(u=n.charCodeAt(n.length-1),d=r.charCodeAt(0),a=\"\",0!==o)switch(u){case T:case ae:case _:case ee:case M:case D:break;default:a=\" \"}switch(d){case P:r=a+Ee;case ae:case _:case ee:case M:case E:case D:break;case G:r=a+r+Ee;break;case V:switch(2*r.charCodeAt(1)+3*r.charCodeAt(2)){case 530:if(Ce>0){r=a+r.substring(8,h-1);break}default:if(o<1||f[o-1].length<1)r=a+Ee+r}break;case U:a=\"\";default:if(h>1&&r.indexOf(\":\")>0)r=a+r.replace(v,\"$1\"+Ee+\"$2\");else r=a+r+Ee}n+=r}i[s]=n.replace(c,\"\").trim()}return i}(a):a,ye>0)if(void 0!==(n=Pe(Fe,Ve,f,e,pe,be,je,t,i,t))&&0===(Ve=n).length)return Ye+Ve+Xe;if(Ve=f.join(\",\")+\"{\"+Ve+\"}\",Ae*ke!=0){if(2===Ae&&!Le(Ve,2))ke=0;switch(ke){case le:Ve=Ve.replace(k,\":\"+S+\"$1\")+Ve;break;case ne:Ve=Ve.replace(p,\"::\"+N+\"input-$1\")+Ve.replace(p,\"::\"+S+\"$1\")+Ve.replace(p,\":\"+F+\"input-$1\")+Ve}ke=0}}return Ye+Ve+Xe}function Ie(e,a,r){var c=a.trim().split(o),s=c,t=c.length,i=e.length;switch(i){case 0:case 1:for(var f=0,n=0===i?\"\":e[0]+\" \";f0&&ge>0)return s.replace(u,\"$1\").replace(h,\"$1\"+Ge);break;default:return e.trim()+s.replace(h,\"$1\"+e.trim())}default:if(r*ge>0&&s.indexOf(\"\\f\")>0)return s.replace(h,(e.charCodeAt(0)===V?\"\":\"$1\")+e.trim())}return e+s}function Ke(e,a,r,c){var l,o=0,h=e+\";\",u=2*a+3*r+4*c;if(944===u)return function(e){var a=e.length,r=e.indexOf(\":\",9)+1,c=e.substring(0,r).trim(),s=e.substring(r,a-1).trim();switch(e.charCodeAt(9)*Be){case 0:break;case Q:if(110!==e.charCodeAt(10))break;default:for(var t=s.split((s=\"\",f)),i=0,r=0,a=t.length;iL&&h<90||h>96&&h<123||h===R||h===Q&&l.charCodeAt(1)!==Q))switch(isNaN(parseFloat(l))+(-1!==l.indexOf(\"(\"))){case 1:switch(l){case\"infinite\":case\"alternate\":case\"backwards\":case\"running\":case\"normal\":case\"forwards\":case\"both\":case\"none\":case\"linear\":case\"ease\":case\"ease-in\":case\"ease-out\":case\"ease-in-out\":case\"paused\":case\"reverse\":case\"alternate-reverse\":case\"inherit\":case\"initial\":case\"unset\":case\"step-start\":case\"step-end\":break;default:l+=De}}o[r++]=l}s+=(0===i?\"\":\",\")+o.join(\" \")}}if(s=c+s+\";\",1===Ae||2===Ae&&Le(s,1))return N+s+s;return s}(h);else if(0===Ae||2===Ae&&!Le(h,1))return h;switch(u){case 1015:return 97===h.charCodeAt(10)?N+h+h:h;case 951:return 116===h.charCodeAt(3)?N+h+h:h;case 963:return 110===h.charCodeAt(5)?N+h+h:h;case 1009:if(100!==h.charCodeAt(4))break;case 969:case 942:return N+h+h;case 978:return N+h+S+h+h;case 1019:case 983:return N+h+S+h+F+h+h;case 883:if(h.charCodeAt(8)===Q)return N+h+h;if(h.indexOf(\"image-set(\",11)>0)return h.replace(z,\"$1\"+N+\"$2\")+h;return h;case 932:if(h.charCodeAt(4)===Q)switch(h.charCodeAt(5)){case 103:return N+\"box-\"+h.replace(\"-grow\",\"\")+N+h+F+h.replace(\"grow\",\"positive\")+h;case 115:return N+h+F+h.replace(\"shrink\",\"negative\")+h;case 98:return N+h+F+h.replace(\"basis\",\"preferred-size\")+h}return N+h+F+h+h;case 964:return N+h+F+\"flex-\"+h+h;case 1023:if(99!==h.charCodeAt(8))break;return l=h.substring(h.indexOf(\":\",15)).replace(\"flex-\",\"\").replace(\"space-between\",\"justify\"),N+\"box-pack\"+l+N+h+F+\"flex-pack\"+l+h;case 1005:return t.test(h)?h.replace(s,\":\"+N)+h.replace(s,\":\"+S)+h:h;case 1e3:switch(o=(l=h.substring(13).trim()).indexOf(\"-\")+1,l.charCodeAt(0)+l.charCodeAt(o)){case 226:l=h.replace(m,\"tb\");break;case 232:l=h.replace(m,\"tb-rl\");break;case 220:l=h.replace(m,\"lr\");break;default:return h}return N+h+F+l+h;case 1017:if(-1===h.indexOf(\"sticky\",9))return h;case 975:switch(o=(h=e).length-10,u=(l=(33===h.charCodeAt(o)?h.substring(0,o):h).substring(e.indexOf(\":\",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(l.charCodeAt(8)<111)break;case 115:h=h.replace(l,N+l)+\";\"+h;break;case 207:case 102:h=h.replace(l,N+(u>102?\"inline-\":\"\")+\"box\")+\";\"+h.replace(l,N+l)+\";\"+h.replace(l,F+l+\"box\")+\";\"+h}return h+\";\";case 938:if(h.charCodeAt(5)===Q)switch(h.charCodeAt(6)){case 105:return l=h.replace(\"-items\",\"\"),N+h+N+\"box-\"+l+F+\"flex-\"+l+h;case 115:return N+h+F+\"flex-item-\"+h.replace(y,\"\")+h;default:return N+h+F+\"flex-line-pack\"+h.replace(\"align-content\",\"\").replace(y,\"\")+h}break;case 973:case 989:if(h.charCodeAt(3)!==Q||122===h.charCodeAt(4))break;case 931:case 953:if(true===j.test(e))if(115===(l=e.substring(e.indexOf(\":\")+1)).charCodeAt(0))return Ke(e.replace(\"stretch\",\"fill-available\"),a,r,c).replace(\":fill-available\",\":stretch\");else return h.replace(l,N+l)+h.replace(l,S+l.replace(\"fill-\",\"\"))+h;break;case 962:if(h=N+h+(102===h.charCodeAt(5)?F+h:\"\")+h,r+c===211&&105===h.charCodeAt(13)&&h.indexOf(\"transform\",10)>0)return h.substring(0,h.indexOf(\";\",27)+1).replace(i,\"$1\"+N+\"$2\")+h}return h}function Le(e,a){var r=e.indexOf(1===a?\":\":\"{\"),c=e.substring(0,3!==a?r:10),s=e.substring(r+1,e.length-1);return Oe(2!==a?c:c.replace(O,\"$1\"),s,a)}function Me(e,a){var r=Ke(a,a.charCodeAt(0),a.charCodeAt(1),a.charCodeAt(2));return r!==a+\";\"?r.replace($,\" or ($1)\").substring(4):\"(\"+a+\")\"}function Pe(e,a,r,c,s,t,i,f,n,l){for(var o,h=0,u=a;h0)De=s.replace(d,t===G?\"\":\"-\");if(t=1,1===ge)Ge=s;else Ee=s;var i,f=[Ge];if(ye>0)if(void 0!==(i=Pe(ze,r,f,f,pe,be,0,0,0,0))&&\"string\"==typeof i)r=i;var n=He(xe,f,r,0,0);if(ye>0)if(void 0!==(i=Pe(je,n,f,f,pe,be,n.length,0,0,0))&&\"string\"!=typeof(n=i))t=0;return De=\"\",Ge=\"\",Ee=\"\",ke=0,pe=1,be=1,we*t==0?n:n.replace(c,\"\").replace(g,\"\").replace(A,\"$1\").replace(C,\"$1\").replace(w,\" \")}if(Te.use=function e(a){switch(a){case void 0:case null:ye=$e.length=0;break;default:if(\"function\"==typeof a)$e[ye++]=a;else if(\"object\"==typeof a)for(var r=0,c=a.length;r\n import(/* webpackChunkName: \"colorpicker\" */ '../fragments/ColorPicker.react')\n);\n/**\n * A color picker.\n */\nexport default class ColorPicker extends Component {\n render() {\n return (\n \n \n \n );\n }\n}\n\nColorPicker.defaultProps = {\n size: 225,\n theme: light,\n labelPosition: 'top',\n persisted_props: ['value'],\n persistence_type: 'local'\n};\n\nColorPicker.propTypes = {\n /**\n * The ID used to identify the color picker in Dash callbacks\n */\n id: PropTypes.string,\n\n /**\n * Color value of the picker\n */\n value: PropTypes.shape({\n /**\n * Hex string\n */\n hex: PropTypes.string,\n\n /**\n * RGB/RGBA object\n */\n rbg: PropTypes.shape({\n r: PropTypes.number,\n g: PropTypes.number,\n b: PropTypes.number,\n a: PropTypes.number\n })\n }),\n\n /**\n * If true, color cannot be picked.\n */\n disabled: PropTypes.bool,\n\n /**\n * Size (width) of the component in pixels\n */\n size: PropTypes.number,\n\n /**\n * Theme configuration to be set by a ThemeProvider\n */\n theme: PropTypes.object,\n\n /**\n * Description to be displayed alongside the control. To control styling,\n * pass an object with label and style properties\n */\n label: PropTypes.oneOfType([\n /**\n * Label to be displayed\n */\n PropTypes.string,\n\n /**\n * The style and label\n */\n PropTypes.shape({\n style: PropTypes.object,\n label: PropTypes.string\n })\n ]),\n\n /**\n * Where the indicator label is positioned\n */\n labelPosition: PropTypes.oneOf(['top', 'bottom']),\n\n /**\n * Class to apply to the root component element\n */\n className: PropTypes.string,\n\n /**\n * Dash-assigned callback that gets fired when\n * the color picker's value changes\n */\n setProps: PropTypes.func,\n\n /**\n * Style to apply to the root component element\n */\n style: PropTypes.object,\n\n /**\n * Used to allow user interactions in this component to be persisted when\n * the component - or the page - is refreshed. If `persisted` is truthy and\n * hasn't changed from its previous value, a `value` that the user has\n * changed while using the app will keep that change, as long as\n * the new `value` also matches what was given originally.\n * Used in conjunction with `persistence_type`.\n */\n persistence: PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.number]),\n\n /**\n * Properties whose user interactions will persist after refreshing the\n * component or the page. Since only `value` is allowed this prop can\n * normally be ignored.\n */\n persisted_props: PropTypes.arrayOf(PropTypes.oneOf(['value'])),\n\n /**\n * Where persisted user changes will be stored:\n * memory: only kept in memory, reset on page refresh.\n * local: window.localStorage, data is kept after the browser quit.\n * session: window.sessionStorage, data is cleared once the browser quit.\n */\n persistence_type: PropTypes.oneOf(['local', 'session', 'memory'])\n};\n\nexport const defaultProps = ColorPicker.defaultProps;\nexport const propTypes = ColorPicker.propTypes;\n","// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","// 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","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = require('./_hide');\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","(function (factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory()) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory()) :\n\t\t\t(window['stylisRuleSheet'] = factory())\n}(function () {\n\n\t'use strict'\n\n\treturn function (insertRule) {\n\t\tvar delimiter = '/*|*/'\n\t\tvar needle = delimiter+'}'\n\n\t\tfunction toSheet (block) {\n\t\t\tif (block)\n\t\t\t\ttry {\n\t\t\t\t\tinsertRule(block + '}')\n\t\t\t\t} catch (e) {}\n\t\t}\n\n\t\treturn function ruleSheet (context, content, selectors, parents, line, column, length, ns, depth, at) {\n\t\t\tswitch (context) {\n\t\t\t\t// property\n\t\t\t\tcase 1:\n\t\t\t\t\t// @import\n\t\t\t\t\tif (depth === 0 && content.charCodeAt(0) === 64)\n\t\t\t\t\t\treturn insertRule(content+';'), ''\n\t\t\t\t\tbreak\n\t\t\t\t// selector\n\t\t\t\tcase 2:\n\t\t\t\t\tif (ns === 0)\n\t\t\t\t\t\treturn content + delimiter\n\t\t\t\t\tbreak\n\t\t\t\t// at-rule\n\t\t\t\tcase 3:\n\t\t\t\t\tswitch (ns) {\n\t\t\t\t\t\t// @font-face, @page\n\t\t\t\t\t\tcase 102:\n\t\t\t\t\t\tcase 112:\n\t\t\t\t\t\t\treturn insertRule(selectors[0]+content), ''\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn content + (at === 0 ? delimiter : '')\n\t\t\t\t\t}\n\t\t\t\tcase -2:\n\t\t\t\t\tcontent.split(needle).forEach(toSheet)\n\t\t\t}\n\t\t}\n\t}\n}))\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","/*!\n * TinyGradient 0.4.3\n * Copyright 2014-2018 Damien \"Mistic\" Sorel (http://www.strangeplanet.fr)\n * Licensed under MIT (http://opensource.org/licenses/MIT)\n */\n\n(function (root, factory) {\n if (typeof module !== \"undefined\" && module.exports) {\n module.exports = factory(require('tinycolor2'));\n }\n else if (typeof define === 'function' && define.amd) {\n define(['tinycolor2'], factory);\n }\n else {\n root.tinygradient = factory(root.tinycolor);\n }\n}(this, function (tinycolor) {\n \"use strict\";\n\n var RGBA_MAX = {r: 256, g: 256, b: 256, a: 1};\n var HSVA_MAX = {h: 360, s: 1, v: 1, a: 1};\n\n /**\n * Linearly compute the step size between start and end (not normalized)\n * @param {Object} start - rgba or hsva\n * @param {Object} end - rgba or hsva\n * @param {int} steps - number of desired steps\n * @return {Object} rgba or hsva\n */\n function stepize(start, end, steps) {\n var step = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n step[k] = steps === 0 ? 0 : (end[k] - start[k]) / steps;\n }\n }\n\n return step;\n }\n\n /**\n * Compute the final step color\n * @param {Object} step - rgba or hsva from `stepize`\n * @param {Object} start - rgba or hsva\n * @param {int} i - color index\n * @param {Object} max - rgba or hsva of maximum values for each channel\n * @return {Object} rgba or hsva\n */\n function interpolate(step, start, i, max) {\n var color = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n color[k] = step[k] * i + start[k];\n color[k] = color[k] < 0 ? color[k] + max[k] : ( max[k] !== 1 ? color[k] % max[k] : color[k] );\n }\n }\n\n return color;\n }\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateRgb(stop1, stop2, steps) {\n var start = stop1.color.toRgb(),\n end = stop2.color.toRgb(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n color;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, RGBA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @param {Boolean} trigonometric - true to step in trigonometric order\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateHsv(stop1, stop2, steps, trigonometric) {\n var start = stop1.color.toHsv(),\n end = stop2.color.toHsv(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n diff, color;\n\n // recompute hue\n if ((start.h <= end.h && !trigonometric) || (start.h >= end.h && trigonometric)) {\n diff = end.h - start.h;\n }\n else if (trigonometric) {\n diff = 360 - end.h + start.h;\n }\n else {\n diff = 360 - start.h + end.h;\n }\n step.h = Math.pow(-1, trigonometric ? 1 : 0) * Math.abs(diff) / steps;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, HSVA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Compute substeps between each stops\n * @param {Object[]} stops\n * @param {int} steps\n * @return {int[]}\n */\n function computeSubsteps(stops, steps) {\n var l = stops.length;\n\n // validation\n steps = parseInt(steps);\n\n if (isNaN(steps) || steps < 2) {\n throw new Error('Invalid number of steps (< 2)');\n }\n if (steps < l) {\n throw new Error('Number of steps cannot be inferior to number of stops');\n }\n\n // compute substeps from stop positions\n var substeps = [];\n\n for (var i = 1; i < l; i++) {\n var step = (steps - 1) * (stops[i].pos - stops[i - 1].pos);\n substeps.push(Math.max(1, Math.round(step)));\n }\n\n // adjust number of steps\n var totalSubsteps = 1;\n for (var n = l - 1; n--;) totalSubsteps += substeps[n];\n\n while (totalSubsteps !== steps) {\n if (totalSubsteps < steps) {\n var min = Math.min.apply(null, substeps);\n substeps[substeps.indexOf(min)]++;\n totalSubsteps++;\n }\n else {\n var max = Math.max.apply(null, substeps);\n substeps[substeps.indexOf(max)]--;\n totalSubsteps--;\n }\n }\n\n return substeps;\n }\n\n /**\n * Compute the color at a specific position\n * @param {Object[]} stops\n * @param {float} pos\n * @param {string} method\n * @param {Object} max\n * @returns {tinycolor}\n */\n function computeAt(stops, pos, method, max) {\n if (pos < 0 || pos > 1) {\n throw new Error('Position must be between 0 and 1');\n }\n\n var start, end;\n for (var i = 0, l = stops.length; i < l - 1; i++) {\n if (pos >= stops[i].pos && pos < stops[i + 1].pos) {\n start = stops[i];\n end = stops[i + 1];\n break;\n }\n }\n\n if (!start) {\n start = end = stops[stops.length - 1];\n }\n\n var step = stepize(start.color[method](), end.color[method](), (end.pos - start.pos) * 100);\n var color = interpolate(step, start.color[method](), Math.round((pos - start.pos) * 100), max);\n return tinycolor(color);\n }\n\n /**\n * @class tinygradient\n * @param {*} stops\n */\n var TinyGradient = function (stops) {\n // varargs\n if (arguments.length === 1) {\n if (!(arguments[0] instanceof Array)) {\n throw new Error('\"stops\" is not an array');\n }\n stops = arguments[0];\n }\n else {\n stops = Array.prototype.slice.call(arguments);\n }\n\n // if we are called as a function, call using new instead\n if (!(this instanceof TinyGradient)) {\n return new TinyGradient(stops);\n }\n\n // validation\n if (stops.length < 2) {\n throw new Error('Invalid number of stops (< 2)');\n }\n\n var havingPositions = stops[0].pos !== undefined,\n l = stops.length,\n p = -1;\n // create tinycolor objects and clean positions\n this.stops = stops.map(function (stop, i) {\n var hasPosition = stop.pos !== undefined;\n if (havingPositions ^ hasPosition) {\n throw new Error('Cannot mix positionned and not posionned color stops');\n }\n\n if (hasPosition) {\n stop = {\n color: tinycolor(stop.color),\n pos : stop.pos\n };\n\n if (stop.pos < 0 || stop.pos > 1) {\n throw new Error('Color stops positions must be between 0 and 1');\n }\n else if (stop.pos <= p) {\n throw new Error('Color stops positions are not ordered');\n }\n p = stop.pos;\n }\n else {\n stop = {\n color: tinycolor(stop),\n pos : i / (l - 1)\n };\n }\n\n return stop;\n });\n\n if (this.stops[0].pos !== 0) {\n this.stops.unshift({\n color: this.stops[0].color,\n pos : 0\n });\n }\n if (this.stops[this.stops.length - 1].pos !== 1) {\n this.stops.push({\n color: this.stops[this.stops.length - 1].color,\n pos : 1\n });\n }\n };\n\n /**\n * Return new instance with reversed stops\n * @return {tinygradient}\n */\n TinyGradient.prototype.reverse = function () {\n var stops = [];\n\n this.stops.forEach(function (stop) {\n stops.push({\n color: stop.color,\n pos : 1 - stop.pos\n });\n });\n\n return new TinyGradient(stops.reverse());\n };\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {int} steps\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.rgb = function (steps) {\n var substeps = computeSubsteps(this.stops, steps),\n gradient = [];\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {int} steps\n * @param {Boolean|String} [mode=false]\n * - false to step in clockwise\n * - true to step in trigonometric order\n * - 'short' to use the shortest way\n * - 'long' to use the longest way\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.hsv = function (steps, mode) {\n var substeps = computeSubsteps(this.stops, steps),\n trigonometric = mode === true,\n parametrized = typeof mode === 'string',\n gradient = [],\n start, end, trig;\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n start = this.stops[i].color.toHsv();\n end = this.stops[i + 1].color.toHsv();\n\n if (parametrized) {\n trig = (start.h < end.h && end.h - start.h < 180) || (start.h > end.h && start.h - end.h > 180);\n }\n\n // rgb interpolation if one of the steps in grayscale\n if (start.s === 0 || end.s === 0) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n else {\n gradient = gradient.concat(interpolateHsv(this.stops[i], this.stops[i + 1], substeps[i],\n (mode === 'long' && trig) || (mode === 'short' && !trig) || (!parametrized && trigonometric)\n ));\n }\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate CSS3 command (no prefix) for this gradient\n * @param {String} [mode=linear] - 'linear' or 'radial'\n * @param {String} [direction] - default is 'to right' or 'ellipse at center'\n * @return {String}\n */\n TinyGradient.prototype.css = function (mode, direction) {\n mode = mode || 'linear';\n direction = direction || (mode === 'linear' ? 'to right' : 'ellipse at center');\n\n var css = mode + '-gradient(' + direction;\n this.stops.forEach(function (stop) {\n css += ', ' + stop.color.toRgbString() + ' ' + (stop.pos * 100) + '%';\n });\n css += ')';\n return css;\n };\n\n /**\n * Returns the color at specific position with RGBa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.rgbAt = function (pos) {\n return computeAt(this.stops, pos, 'toRgb', RGBA_MAX);\n };\n\n /**\n * Returns the color at specific position with HSVa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.hsvAt = function (pos) {\n return computeAt(this.stops, pos, 'toHsv', HSVA_MAX);\n };\n\n var STATIC_FNS = {\n 'rgb' : 1,\n 'hsv' : 2,\n 'css' : 2,\n 'rgbAt': 1,\n 'hsvAt': 1\n };\n\n Object.keys(STATIC_FNS).forEach(function (fn) {\n TinyGradient[fn] = function () {\n var colors = Array.prototype.slice.call(arguments);\n var args = colors.splice(-STATIC_FNS[fn]);\n var gradient = new TinyGradient(colors);\n return gradient[fn].apply(gradient, args);\n };\n });\n\n // export\n return TinyGradient;\n}));","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = addEventListener;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventObject = require('./EventObject');\n\nvar _EventObject2 = _interopRequireDefault(_EventObject);\n\nfunction addEventListener(target, eventType, callback, option) {\n function wrapCallback(e) {\n var ne = new _EventObject2['default'](e);\n callback.call(target, ne);\n }\n\n if (target.addEventListener) {\n var _ret = (function () {\n var useCapture = false;\n if (typeof option === 'object') {\n useCapture = option.capture || false;\n } else if (typeof option === 'boolean') {\n useCapture = option;\n }\n\n target.addEventListener(eventType, wrapCallback, option || false);\n\n return {\n v: {\n remove: function remove() {\n target.removeEventListener(eventType, wrapCallback, useCapture);\n }\n }\n };\n })();\n\n if (typeof _ret === 'object') return _ret.v;\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, wrapCallback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, wrapCallback);\n }\n };\n }\n}\n\nmodule.exports = exports['default'];","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\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 }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.nipplejs = f()}})(function(){var define,module,exports;\n'use strict';\n\n// Constants\nvar isTouch = !!('ontouchstart' in window);\nvar isPointer = window.PointerEvent ? true : false;\nvar isMSPointer = window.MSPointerEvent ? true : false;\nvar events = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend, touchcancel'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n },\n pointer: {\n start: 'pointerdown',\n move: 'pointermove',\n end: 'pointerup, pointercancel'\n },\n MSPointer: {\n start: 'MSPointerDown',\n move: 'MSPointerMove',\n end: 'MSPointerUp'\n }\n};\nvar toBind;\nvar secondBind = {};\nif (isPointer) {\n toBind = events.pointer;\n} else if (isMSPointer) {\n toBind = events.MSPointer;\n} else if (isTouch) {\n toBind = events.touch;\n secondBind = events.mouse;\n} else {\n toBind = events.mouse;\n}\n\n///////////////////////\n/// UTILS ///\n///////////////////////\n\nvar u = {};\nu.distance = function (p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return Math.sqrt((dx * dx) + (dy * dy));\n};\n\nu.angle = function(p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return u.degrees(Math.atan2(dy, dx));\n};\n\nu.findCoord = function(p, d, a) {\n var b = {x: 0, y: 0};\n a = u.radians(a);\n b.x = p.x - d * Math.cos(a);\n b.y = p.y - d * Math.sin(a);\n return b;\n};\n\nu.radians = function(a) {\n return a * (Math.PI / 180);\n};\n\nu.degrees = function(a) {\n return a * (180 / Math.PI);\n};\n\nu.bindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.addEventListener) {\n el.addEventListener(type, handler, false);\n } else if (el.attachEvent) {\n el.attachEvent(type, handler);\n }\n }\n};\n\nu.unbindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.removeEventListener) {\n el.removeEventListener(type, handler);\n } else if (el.detachEvent) {\n el.detachEvent(type, handler);\n }\n }\n};\n\nu.trigger = function (el, type, data) {\n var evt = new CustomEvent(type, data);\n el.dispatchEvent(evt);\n};\n\nu.prepareEvent = function (evt) {\n evt.preventDefault();\n return evt.type.match(/^touch/) ? evt.changedTouches : evt;\n};\n\nu.getScroll = function () {\n var x = (window.pageXOffset !== undefined) ?\n window.pageXOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollLeft;\n\n var y = (window.pageYOffset !== undefined) ?\n window.pageYOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollTop;\n return {\n x: x,\n y: y\n };\n};\n\nu.applyPosition = function (el, pos) {\n if (pos.top || pos.right || pos.bottom || pos.left) {\n el.style.top = pos.top;\n el.style.right = pos.right;\n el.style.bottom = pos.bottom;\n el.style.left = pos.left;\n } else {\n el.style.left = pos.x + 'px';\n el.style.top = pos.y + 'px';\n }\n};\n\nu.getTransitionStyle = function (property, values, time) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (typeof values === 'string') {\n obj[i] = values + ' ' + time;\n } else {\n var st = '';\n for (var j = 0, max = values.length; j < max; j += 1) {\n st += values[j] + ' ' + time + ', ';\n }\n obj[i] = st.slice(0, -2);\n }\n }\n }\n return obj;\n};\n\nu.getVendorStyle = function (property, value) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n obj[i] = value;\n }\n }\n return obj;\n};\n\nu.configStylePropertyObject = function (prop) {\n var obj = {};\n obj[prop] = '';\n var vendors = ['webkit', 'Moz', 'o'];\n vendors.forEach(function (vendor) {\n obj[vendor + prop.charAt(0).toUpperCase() + prop.slice(1)] = '';\n });\n return obj;\n};\n\nu.extend = function (objA, objB) {\n for (var i in objB) {\n if (objB.hasOwnProperty(i)) {\n objA[i] = objB[i];\n }\n }\n return objA;\n};\n\n// Overwrite only what's already present\nu.safeExtend = function (objA, objB) {\n var obj = {};\n for (var i in objA) {\n if (objA.hasOwnProperty(i) && objB.hasOwnProperty(i)) {\n obj[i] = objB[i];\n } else if (objA.hasOwnProperty(i)) {\n obj[i] = objA[i];\n }\n }\n return obj;\n};\n\n// Map for array or unique item.\nu.map = function (ar, fn) {\n if (ar.length) {\n for (var i = 0, max = ar.length; i < max; i += 1) {\n fn(ar[i]);\n }\n } else {\n fn(ar);\n }\n};\n\n///////////////////////\n/// SUPER CLASS ///\n///////////////////////\n\nfunction Super () {};\n\n// Basic event system.\nSuper.prototype.on = function (arg, cb) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n self._handlers_[type] = self._handlers_[type] || [];\n self._handlers_[type].push(cb);\n }\n return self;\n};\n\nSuper.prototype.off = function (type, cb) {\n var self = this;\n self._handlers_ = self._handlers_ || {};\n\n if (type === undefined) {\n self._handlers_ = {};\n } else if (cb === undefined) {\n self._handlers_[type] = null;\n } else if (self._handlers_[type] &&\n self._handlers_[type].indexOf(cb) >= 0) {\n self._handlers_[type].splice(self._handlers_[type].indexOf(cb), 1);\n }\n\n return self;\n};\n\nSuper.prototype.trigger = function (arg, data) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (self._handlers_[type] && self._handlers_[type].length) {\n self._handlers_[type].forEach(function (handler) {\n handler.call(self, {\n type: type,\n target: self\n }, data);\n });\n }\n }\n};\n\n// Configuration\nSuper.prototype.config = function (options) {\n var self = this;\n self.options = self.defaults || {};\n if (options) {\n self.options = u.safeExtend(self.options, options);\n }\n};\n\n// Bind internal events.\nSuper.prototype.bindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n self._domHandlers_[type] = function () {\n if (typeof self['on' + type] === 'function') {\n self['on' + type].apply(self, arguments);\n } else {\n console.warn('[WARNING] : Missing \"on' + type + '\" handler.');\n }\n };\n\n u.bindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.bindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n return self;\n};\n\n// Unbind dom events.\nSuper.prototype.unbindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n u.unbindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.unbindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n delete self._domHandlers_[type];\n\n return this;\n};\n\n///////////////////////\n/// THE NIPPLE ///\n///////////////////////\n\nfunction Nipple (collection, options) {\n this.identifier = options.identifier;\n this.position = options.position;\n this.frontPosition = options.frontPosition;\n this.collection = collection;\n\n // Defaults\n this.defaults = {\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n mode: 'dynamic',\n zone: document.body,\n lockX: false,\n lockY: false\n };\n\n this.config(options);\n\n // Overwrites\n if (this.options.mode === 'dynamic') {\n this.options.restOpacity = 0;\n }\n\n this.id = Nipple.id;\n Nipple.id += 1;\n this.buildEl()\n .stylize();\n\n // Nipple's API.\n this.instance = {\n el: this.ui.el,\n on: this.on.bind(this),\n off: this.off.bind(this),\n show: this.show.bind(this),\n hide: this.hide.bind(this),\n add: this.addToDom.bind(this),\n remove: this.removeFromDom.bind(this),\n destroy: this.destroy.bind(this),\n resetDirection: this.resetDirection.bind(this),\n computeDirection: this.computeDirection.bind(this),\n trigger: this.trigger.bind(this),\n position: this.position,\n frontPosition: this.frontPosition,\n ui: this.ui,\n identifier: this.identifier,\n id: this.id,\n options: this.options\n };\n\n return this.instance;\n};\n\nNipple.prototype = new Super();\nNipple.constructor = Nipple;\nNipple.id = 0;\n\n// Build the dom element of the Nipple instance.\nNipple.prototype.buildEl = function (options) {\n this.ui = {};\n\n if (this.options.dataOnly) {\n return this;\n }\n\n this.ui.el = document.createElement('div');\n this.ui.back = document.createElement('div');\n this.ui.front = document.createElement('div');\n\n this.ui.el.className = 'nipple collection_' + this.collection.id;\n this.ui.back.className = 'back';\n this.ui.front.className = 'front';\n\n this.ui.el.setAttribute('id', 'nipple_' + this.collection.id +\n '_' + this.id);\n\n this.ui.el.appendChild(this.ui.back);\n this.ui.el.appendChild(this.ui.front);\n\n return this;\n};\n\n// Apply CSS to the Nipple instance.\nNipple.prototype.stylize = function () {\n if (this.options.dataOnly) {\n return this;\n }\n var animTime = this.options.fadeTime + 'ms';\n var borderStyle = u.getVendorStyle('borderRadius', '50%');\n var transitStyle = u.getTransitionStyle('transition', 'opacity', animTime);\n var styles = {};\n styles.el = {\n position: 'absolute',\n opacity: this.options.restOpacity,\n display: 'block',\n 'zIndex': 999\n };\n\n styles.back = {\n position: 'absolute',\n display: 'block',\n width: this.options.size + 'px',\n height: this.options.size + 'px',\n marginLeft: -this.options.size / 2 + 'px',\n marginTop: -this.options.size / 2 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n styles.front = {\n width: this.options.size / 2 + 'px',\n height: this.options.size / 2 + 'px',\n position: 'absolute',\n display: 'block',\n marginLeft: -this.options.size / 4 + 'px',\n marginTop: -this.options.size / 4 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n u.extend(styles.el, transitStyle);\n u.extend(styles.back, borderStyle);\n u.extend(styles.front, borderStyle);\n\n this.applyStyles(styles);\n\n return this;\n};\n\nNipple.prototype.applyStyles = function (styles) {\n // Apply styles\n for (var i in this.ui) {\n if (this.ui.hasOwnProperty(i)) {\n for (var j in styles[i]) {\n this.ui[i].style[j] = styles[i][j];\n }\n }\n }\n\n return this;\n};\n\n// Inject the Nipple instance into DOM.\nNipple.prototype.addToDom = function () {\n // We're not adding it if we're dataOnly or already in dom.\n if (this.options.dataOnly || document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.appendChild(this.ui.el);\n return this;\n};\n\n// Remove the Nipple instance from DOM.\nNipple.prototype.removeFromDom = function () {\n if (this.options.dataOnly || !document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.removeChild(this.ui.el);\n return this;\n};\n\n// Entirely destroy this nipple\nNipple.prototype.destroy = function () {\n clearTimeout(this.removeTimeout);\n clearTimeout(this.showTimeout);\n clearTimeout(this.restTimeout);\n this.trigger('destroyed', this.instance);\n this.removeFromDom();\n this.off();\n};\n\n// Fade in the Nipple instance.\nNipple.prototype.show = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.addToDom();\n\n self.restCallback();\n\n setTimeout(function () {\n self.ui.el.style.opacity = 1;\n }, 0);\n\n self.showTimeout = setTimeout(function () {\n self.trigger('shown', self.instance);\n if (typeof cb === 'function') {\n cb.call(this);\n }\n }, self.options.fadeTime);\n\n return self;\n};\n\n// Fade out the Nipple instance.\nNipple.prototype.hide = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n self.ui.el.style.opacity = self.options.restOpacity;\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.removeTimeout = setTimeout(\n function () {\n var display = self.options.mode === 'dynamic' ? 'none' : 'block';\n self.ui.el.style.display = display;\n if (typeof cb === 'function') {\n cb.call(self);\n }\n\n self.trigger('hidden', self.instance);\n },\n self.options.fadeTime\n );\n if (self.options.restJoystick) {\n self.restPosition();\n }\n\n return self;\n};\n\nNipple.prototype.restPosition = function (cb) {\n var self = this;\n self.frontPosition = {\n x: 0,\n y: 0\n };\n var animTime = self.options.fadeTime + 'ms';\n\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition',\n ['top', 'left'], animTime);\n\n var styles = {front: {}};\n styles.front = {\n left: self.frontPosition.x + 'px',\n top: self.frontPosition.y + 'px'\n };\n\n self.applyStyles(transitStyle);\n self.applyStyles(styles);\n\n self.restTimeout = setTimeout(\n function () {\n if (typeof cb === 'function') {\n cb.call(self);\n }\n self.restCallback();\n },\n self.options.fadeTime\n );\n};\n\nNipple.prototype.restCallback = function () {\n var self = this;\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition', 'none', '');\n self.applyStyles(transitStyle);\n self.trigger('rested', self.instance);\n};\n\nNipple.prototype.resetDirection = function () {\n // Fully rebuild the object to let the iteration possible.\n this.direction = {\n x: false,\n y: false,\n angle: false\n };\n};\n\nNipple.prototype.computeDirection = function (obj) {\n var rAngle = obj.angle.radian;\n var angle45 = Math.PI / 4;\n var angle90 = Math.PI / 2;\n var direction, directionX, directionY;\n\n // Angular direction\n // \\ UP /\n // \\ /\n // LEFT RIGHT\n // / \\\n // /DOWN \\\n //\n if (\n rAngle > angle45 &&\n rAngle < (angle45 * 3) &&\n !obj.lockX\n ) {\n direction = 'up';\n } else if (\n rAngle > -angle45 &&\n rAngle <= angle45 &&\n !obj.lockY\n ) {\n direction = 'left';\n } else if (\n rAngle > (-angle45 * 3) &&\n rAngle <= -angle45 &&\n !obj.lockX\n ) {\n direction = 'down';\n } else if (!obj.lockY) {\n direction = 'right';\n }\n\n // Plain direction\n // UP |\n // _______ | RIGHT\n // LEFT |\n // DOWN |\n if (!obj.lockY) {\n if (rAngle > -angle90 && rAngle < angle90) {\n directionX = 'left';\n } else {\n directionX = 'right';\n }\n }\n\n if (!obj.lockX) {\n if (rAngle > 0) {\n directionY = 'up';\n } else {\n directionY = 'down';\n }\n }\n\n if (obj.force > this.options.threshold) {\n var oldDirection = {};\n for (var i in this.direction) {\n if (this.direction.hasOwnProperty(i)) {\n oldDirection[i] = this.direction[i];\n }\n }\n\n var same = {};\n\n this.direction = {\n x: directionX,\n y: directionY,\n angle: direction\n };\n\n obj.direction = this.direction;\n\n for (var i in oldDirection) {\n if (oldDirection[i] === this.direction[i]) {\n same[i] = true;\n }\n }\n\n // If all 3 directions are the same, we don't trigger anything.\n if (same.x && same.y && same.angle) {\n return obj;\n }\n\n if (!same.x || !same.y) {\n this.trigger('plain', obj);\n }\n\n if (!same.x) {\n this.trigger('plain:' + directionX, obj);\n }\n\n if (!same.y) {\n this.trigger('plain:' + directionY, obj);\n }\n\n if (!same.angle) {\n this.trigger('dir dir:' + direction, obj);\n }\n }\n return obj;\n};\n\n/* global Nipple, Super */\n\n///////////////////////////\n/// THE COLLECTION ///\n///////////////////////////\n\nfunction Collection (manager, options) {\n var self = this;\n self.nipples = [];\n self.idles = [];\n self.actives = [];\n self.ids = [];\n self.pressureIntervals = {};\n self.manager = manager;\n self.id = Collection.id;\n Collection.id += 1;\n\n // Defaults\n self.defaults = {\n zone: document.body,\n multitouch: false,\n maxNumberOfNipples: 10,\n mode: 'dynamic',\n position: {top: 0, left: 0},\n catchDistance: 200,\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n lockX: false,\n lockY: false\n };\n\n self.config(options);\n\n // Overwrites\n if (self.options.mode === 'static' || self.options.mode === 'semi') {\n self.options.multitouch = false;\n }\n\n if (!self.options.multitouch) {\n self.options.maxNumberOfNipples = 1;\n }\n\n self.updateBox();\n self.prepareNipples();\n self.bindings();\n self.begin();\n\n return self.nipples;\n}\n\nCollection.prototype = new Super();\nCollection.constructor = Collection;\nCollection.id = 0;\n\nCollection.prototype.prepareNipples = function () {\n var self = this;\n var nips = self.nipples;\n\n // Public API Preparation.\n nips.on = self.on.bind(self);\n nips.off = self.off.bind(self);\n nips.options = self.options;\n nips.destroy = self.destroy.bind(self);\n nips.ids = self.ids;\n nips.id = self.id;\n nips.processOnMove = self.processOnMove.bind(self);\n nips.processOnEnd = self.processOnEnd.bind(self);\n nips.get = function (id) {\n if (id === undefined) {\n return nips[0];\n }\n for (var i = 0, max = nips.length; i < max; i += 1) {\n if (nips[i].identifier === id) {\n return nips[i];\n }\n }\n return false;\n };\n};\n\nCollection.prototype.bindings = function () {\n var self = this;\n // Touch start event.\n self.bindEvt(self.options.zone, 'start');\n // Avoid native touch actions (scroll, zoom etc...) on the zone.\n self.options.zone.style.touchAction = 'none';\n self.options.zone.style.msTouchAction = 'none';\n};\n\nCollection.prototype.begin = function () {\n var self = this;\n var opts = self.options;\n\n // We place our static nipple\n // if needed.\n if (opts.mode === 'static') {\n var nipple = self.createNipple(\n opts.position,\n self.manager.getIdentifier()\n );\n // Add it to the dom.\n nipple.add();\n // Store it in idles.\n self.idles.push(nipple);\n }\n};\n\n// Nipple Factory\nCollection.prototype.createNipple = function (position, identifier) {\n var self = this;\n var scroll = u.getScroll();\n var toPutOn = {};\n var opts = self.options;\n\n if (position.x && position.y) {\n toPutOn = {\n x: position.x -\n (scroll.x + self.box.left),\n y: position.y -\n (scroll.y + self.box.top)\n };\n } else if (\n position.top ||\n position.right ||\n position.bottom ||\n position.left\n ) {\n\n // We need to compute the position X / Y of the joystick.\n var dumb = document.createElement('DIV');\n dumb.style.display = 'hidden';\n dumb.style.top = position.top;\n dumb.style.right = position.right;\n dumb.style.bottom = position.bottom;\n dumb.style.left = position.left;\n dumb.style.position = 'absolute';\n\n opts.zone.appendChild(dumb);\n var dumbBox = dumb.getBoundingClientRect();\n opts.zone.removeChild(dumb);\n\n toPutOn = position;\n position = {\n x: dumbBox.left + scroll.x,\n y: dumbBox.top + scroll.y\n };\n }\n\n var nipple = new Nipple(self, {\n color: opts.color,\n size: opts.size,\n threshold: opts.threshold,\n fadeTime: opts.fadeTime,\n dataOnly: opts.dataOnly,\n restJoystick: opts.restJoystick,\n restOpacity: opts.restOpacity,\n mode: opts.mode,\n identifier: identifier,\n position: position,\n zone: opts.zone,\n frontPosition: {\n x: 0,\n y: 0\n }\n });\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.el, toPutOn);\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n self.nipples.push(nipple);\n self.trigger('added ' + nipple.identifier + ':added', nipple);\n self.manager.trigger('added ' + nipple.identifier + ':added', nipple);\n\n self.bindNipple(nipple);\n\n return nipple;\n};\n\nCollection.prototype.updateBox = function () {\n var self = this;\n self.box = self.options.zone.getBoundingClientRect();\n};\n\nCollection.prototype.bindNipple = function (nipple) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's id.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed.\n nipple.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n nipple.on('shown hidden rested dir plain', handler);\n nipple.on('dir:up dir:right dir:down dir:left', handler);\n nipple.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nCollection.prototype.pressureFn = function (touch, nipple, identifier) {\n var self = this;\n var previousPressure = 0;\n clearInterval(self.pressureIntervals[identifier]);\n // Create an interval that will read the pressure every 100ms\n self.pressureIntervals[identifier] = setInterval(function () {\n var pressure = touch.force || touch.pressure ||\n touch.webkitForce || 0;\n if (pressure !== previousPressure) {\n nipple.trigger('pressure', pressure);\n self.trigger('pressure ' +\n nipple.identifier + ':pressure', pressure);\n previousPressure = pressure;\n }\n }.bind(self), 100);\n};\n\nCollection.prototype.onstart = function (evt) {\n var self = this;\n var opts = self.options;\n evt = u.prepareEvent(evt);\n\n // Update the box position\n self.updateBox();\n\n var process = function (touch) {\n // If we can create new nipples\n // meaning we don't have more active nipples than we should.\n if (self.actives.length < opts.maxNumberOfNipples) {\n self.processOnStart(touch);\n }\n };\n\n u.map(evt, process);\n\n // We ask upstream to bind the document\n // on 'move' and 'end'\n self.manager.bindDocument();\n return false;\n};\n\nCollection.prototype.processOnStart = function (evt) {\n var self = this;\n var opts = self.options;\n var indexInIdles;\n var identifier = self.manager.getIdentifier(evt);\n var pressure = evt.force || evt.pressure || evt.webkitForce || 0;\n var position = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var nipple = self.getOrCreate(identifier, position);\n\n // Update its touch identifier\n if (nipple.identifier !== identifier) {\n self.manager.removeIdentifier(nipple.identifier);\n }\n nipple.identifier = identifier;\n\n var process = function (nip) {\n // Trigger the start.\n nip.trigger('start', nip);\n self.trigger('start ' + nip.id + ':start', nip);\n\n nip.show();\n if (pressure > 0) {\n self.pressureFn(evt, nip, nip.identifier);\n }\n // Trigger the first move event.\n self.processOnMove(evt);\n };\n\n // Transfer it from idles to actives.\n if ((indexInIdles = self.idles.indexOf(nipple)) >= 0) {\n self.idles.splice(indexInIdles, 1);\n }\n\n // Store the nipple in the actives array\n self.actives.push(nipple);\n self.ids.push(nipple.identifier);\n\n if (opts.mode !== 'semi') {\n process(nipple);\n } else {\n // In semi we check the distance of the touch\n // to decide if we have to reset the nipple\n var distance = u.distance(position, nipple.position);\n if (distance <= opts.catchDistance) {\n process(nipple);\n } else {\n nipple.destroy();\n self.processOnStart(evt);\n return;\n }\n }\n\n return nipple;\n};\n\nCollection.prototype.getOrCreate = function (identifier, position) {\n var self = this;\n var opts = self.options;\n var nipple;\n\n // If we're in static or semi, we might already have an active.\n if (/(semi|static)/.test(opts.mode)) {\n // Get the active one.\n // TODO: Multi-touche for semi and static will start here.\n // Return the nearest one.\n nipple = self.idles[0];\n if (nipple) {\n self.idles.splice(0, 1);\n return nipple;\n }\n\n if (opts.mode === 'semi') {\n // If we're in semi mode, we need to create one.\n return self.createNipple(position, identifier);\n }\n\n console.warn('Coudln\\'t find the needed nipple.');\n return false;\n }\n // In dynamic, we create a new one.\n nipple = self.createNipple(position, identifier);\n return nipple;\n};\n\nCollection.prototype.processOnMove = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n\n if (!nipple) {\n // This is here just for safety.\n // It shouldn't happen.\n console.error('Found zombie joystick with ID ' + identifier);\n self.manager.removeIdentifier(identifier);\n return;\n }\n\n nipple.identifier = identifier;\n\n var size = nipple.options.size / 2;\n var pos = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var dist = u.distance(pos, nipple.position);\n var angle = u.angle(pos, nipple.position);\n var rAngle = u.radians(angle);\n var force = dist / size;\n\n // If distance is bigger than nipple's size\n // we clamp the position.\n if (dist > size) {\n dist = size;\n pos = u.findCoord(nipple.position, dist, angle);\n }\n\n var xPosition = pos.x - nipple.position.x\n var yPosition = pos.y - nipple.position.y\n\n if (opts.lockX){\n yPosition = 0\n }\n if (opts.lockY) {\n xPosition = 0\n }\n\n nipple.frontPosition = {\n x: xPosition,\n y: yPosition\n };\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n\n // Prepare event's datas.\n var toSend = {\n identifier: nipple.identifier,\n position: pos,\n force: force,\n pressure: evt.force || evt.pressure || evt.webkitForce || 0,\n distance: dist,\n angle: {\n radian: rAngle,\n degree: angle\n },\n instance: nipple,\n lockX: opts.lockX,\n lockY: opts.lockY\n };\n\n // Compute the direction's datas.\n toSend = nipple.computeDirection(toSend);\n\n // Offset angles to follow units circle.\n toSend.angle = {\n radian: u.radians(180 - angle),\n degree: 180 - angle\n };\n\n // Send everything to everyone.\n nipple.trigger('move', toSend);\n self.trigger('move ' + nipple.id + ':move', toSend);\n};\n\nCollection.prototype.processOnEnd = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n var removedIdentifier = self.manager.removeIdentifier(nipple.identifier);\n\n if (!nipple) {\n return;\n }\n\n if (!opts.dataOnly) {\n nipple.hide(function () {\n if (opts.mode === 'dynamic') {\n nipple.trigger('removed', nipple);\n self.trigger('removed ' + nipple.id + ':removed', nipple);\n self.manager\n .trigger('removed ' + nipple.id + ':removed', nipple);\n nipple.destroy();\n }\n });\n }\n\n // Clear the pressure interval reader\n clearInterval(self.pressureIntervals[nipple.identifier]);\n\n // Reset the direciton of the nipple, to be able to trigger a new direction\n // on start.\n nipple.resetDirection();\n\n nipple.trigger('end', nipple);\n self.trigger('end ' + nipple.id + ':end', nipple);\n\n // Remove identifier from our bank.\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Clean our actives array.\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n\n if (/(semi|static)/.test(opts.mode)) {\n // Transfer nipple from actives to idles\n // if we're in semi or static mode.\n self.idles.push(nipple);\n } else if (self.nipples.indexOf(nipple) >= 0) {\n // Only if we're not in semi or static mode\n // we can remove the instance.\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n\n // We unbind move and end.\n self.manager.unbindDocument();\n\n // We add back the identifier of the idle nipple;\n if (/(semi|static)/.test(opts.mode)) {\n self.manager.ids[removedIdentifier.id] = removedIdentifier.identifier;\n }\n};\n\n// Remove destroyed nipple from the lists\nCollection.prototype.onDestroyed = function(evt, nipple) {\n var self = this;\n if (self.nipples.indexOf(nipple) >= 0) {\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n if (self.idles.indexOf(nipple) >= 0) {\n self.idles.splice(self.idles.indexOf(nipple), 1);\n }\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Remove the identifier from our bank\n self.manager.removeIdentifier(nipple.identifier);\n\n // We unbind move and end.\n self.manager.unbindDocument();\n};\n\n// Cleanly destroy the manager\nCollection.prototype.destroy = function () {\n var self = this;\n self.unbindEvt(self.options.zone, 'start');\n\n // Destroy nipples.\n self.nipples.forEach(function(nipple) {\n nipple.destroy();\n });\n\n // Clean 3DTouch intervals.\n for (var i in self.pressureIntervals) {\n if (self.pressureIntervals.hasOwnProperty(i)) {\n clearInterval(self.pressureIntervals[i]);\n }\n }\n\n // Notify the manager passing the instance\n self.trigger('destroyed', self.nipples);\n // We unbind move and end.\n self.manager.unbindDocument();\n // Unbind everything.\n self.off();\n};\n\n/* global u, Super, Collection */\n\n///////////////////////\n/// MANAGER ///\n///////////////////////\n\nfunction Manager (options) {\n var self = this;\n self.ids = {};\n self.index = 0;\n self.collections = [];\n\n self.config(options);\n self.prepareCollections();\n\n // Listen for resize, to reposition every joysticks\n var resizeTimer;\n u.bindEvt(window, 'resize', function (evt) {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(function () {\n var pos;\n var scroll = u.getScroll();\n self.collections.forEach(function (collection) {\n collection.forEach(function (nipple) {\n pos = nipple.el.getBoundingClientRect();\n nipple.position = {\n x: scroll.x + pos.left,\n y: scroll.y + pos.top\n };\n });\n });\n }, 100);\n });\n\n return self.collections;\n};\n\nManager.prototype = new Super();\nManager.constructor = Manager;\n\nManager.prototype.prepareCollections = function () {\n var self = this;\n // Public API Preparation.\n self.collections.create = self.create.bind(self);\n // Listen to anything\n self.collections.on = self.on.bind(self);\n // Unbind general events\n self.collections.off = self.off.bind(self);\n // Destroy everything\n self.collections.destroy = self.destroy.bind(self);\n // Get any nipple\n self.collections.get = function (id) {\n var nipple;\n self.collections.every(function (collection) {\n if (nipple = collection.get(id)) {\n return false;\n }\n return true;\n });\n return nipple;\n };\n};\n\nManager.prototype.create = function (options) {\n return this.createCollection(options);\n};\n\n// Collection Factory\nManager.prototype.createCollection = function (options) {\n var self = this;\n var collection = new Collection(self, options);\n\n self.bindCollection(collection);\n self.collections.push(collection);\n\n return collection;\n};\n\nManager.prototype.bindCollection = function (collection) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's identifier.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed we clean.\n collection.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n collection.on('shown hidden rested dir plain', handler);\n collection.on('dir:up dir:right dir:down dir:left', handler);\n collection.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nManager.prototype.bindDocument = function () {\n var self = this;\n // Bind only if not already binded\n if (!self.binded) {\n self.bindEvt(document, 'move')\n .bindEvt(document, 'end');\n self.binded = true;\n }\n};\n\nManager.prototype.unbindDocument = function (force) {\n var self = this;\n // If there are no touch left\n // unbind the document.\n if (!Object.keys(self.ids).length || force === true) {\n self.unbindEvt(document, 'move')\n .unbindEvt(document, 'end');\n self.binded = false;\n }\n};\n\nManager.prototype.getIdentifier = function (evt) {\n var id;\n // If no event, simple increment\n if (!evt) {\n id = this.index;\n } else {\n // Extract identifier from event object.\n // Unavailable in mouse events so replaced by latest increment.\n id = evt.identifier === undefined ? evt.pointerId : evt.identifier;\n if (id === undefined) {\n id = this.latest || 0;\n }\n }\n\n if (this.ids[id] === undefined) {\n this.ids[id] = this.index;\n this.index += 1;\n }\n\n // Keep the latest id used in case we're using an unidentified mouseEvent\n this.latest = id;\n return this.ids[id];\n};\n\nManager.prototype.removeIdentifier = function (identifier) {\n var removed = {};\n for (var id in this.ids) {\n if (this.ids[id] === identifier) {\n removed.id = id;\n removed.identifier = this.ids[id];\n delete this.ids[id];\n break;\n }\n }\n return removed;\n};\n\nManager.prototype.onmove = function (evt) {\n var self = this;\n self.onAny('move', evt);\n return false;\n};\n\nManager.prototype.onend = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.oncancel = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.onAny = function (which, evt) {\n var self = this;\n var id;\n var processFn = 'processOn' + which.charAt(0).toUpperCase() +\n which.slice(1);\n evt = u.prepareEvent(evt);\n var processColl = function (e, id, coll) {\n if (coll.ids.indexOf(id) >= 0) {\n coll[processFn](e);\n // Mark the event to avoid cleaning it later.\n e._found_ = true;\n }\n };\n var processEvt = function (e) {\n id = self.getIdentifier(e);\n u.map(self.collections, processColl.bind(null, e, id));\n // If the event isn't handled by any collection,\n // we need to clean its identifier.\n if (!e._found_) {\n self.removeIdentifier(id);\n }\n };\n\n u.map(evt, processEvt);\n\n return false;\n};\n\n// Cleanly destroy the manager\nManager.prototype.destroy = function () {\n var self = this;\n self.unbindDocument(true);\n self.ids = {};\n self.index = 0;\n self.collections.forEach(function(collection) {\n collection.destroy();\n });\n self.off();\n};\n\n// When a collection gets destroyed\n// we clean behind.\nManager.prototype.onDestroyed = function (evt, coll) {\n var self = this;\n if (self.collections.indexOf(coll) < 0) {\n return false;\n }\n self.collections.splice(self.collections.indexOf(coll), 1);\n};\n\nvar factory = new Manager();\nreturn {\n create: function (options) {\n return factory.create(options);\n },\n factory: factory\n};\n\n});\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","/**\r\n * Returns the object type of the given payload\r\n *\r\n * @param {*} payload\r\n * @returns {string}\r\n */\r\nfunction getType(payload) {\r\n return Object.prototype.toString.call(payload).slice(8, -1);\r\n}\r\n/**\r\n * Returns whether the payload is undefined\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isUndefined(payload) {\r\n return getType(payload) === 'Undefined';\r\n}\r\n/**\r\n * Returns whether the payload is null\r\n *\r\n * @param {*} payload\r\n * @returns {payload is null}\r\n */\r\nfunction isNull(payload) {\r\n return getType(payload) === 'Null';\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isPlainObject(payload) {\r\n if (getType(payload) !== 'Object')\r\n return false;\r\n return (payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype);\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isObject(payload) {\r\n return isPlainObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isAnyObject(payload) {\r\n return getType(payload) === 'Object';\r\n}\r\n/**\r\n * Returns whether the payload is an object like a type passed in < >\r\n *\r\n * Usage: isObjectLike<{id: any}>(payload) // will make sure it's an object and has an `id` prop.\r\n *\r\n * @template T this must be passed in < >\r\n * @param {*} payload\r\n * @returns {payload is T}\r\n */\r\nfunction isObjectLike(payload) {\r\n return isAnyObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a function\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Function}\r\n */\r\nfunction isFunction(payload) {\r\n return getType(payload) === 'Function';\r\n}\r\n/**\r\n * Returns whether the payload is an array\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isArray(payload) {\r\n return getType(payload) === 'Array';\r\n}\r\n/**\r\n * Returns whether the payload is a string\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isString(payload) {\r\n return getType(payload) === 'String';\r\n}\r\n/**\r\n * Returns whether the payload is a string, BUT returns false for ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isFullString(payload) {\r\n return isString(payload) && payload !== '';\r\n}\r\n/**\r\n * Returns whether the payload is ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isEmptyString(payload) {\r\n return payload === '';\r\n}\r\n/**\r\n * Returns whether the payload is a number\r\n *\r\n * This will return false for NaN\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\r\nfunction isNumber(payload) {\r\n return (getType(payload) === 'Number' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a boolean\r\n *\r\n * @param {*} payload\r\n * @returns {payload is boolean}\r\n */\r\nfunction isBoolean(payload) {\r\n return getType(payload) === 'Boolean';\r\n}\r\n/**\r\n * Returns whether the payload is a regular expression\r\n *\r\n * @param {*} payload\r\n * @returns {payload is RegExp}\r\n */\r\nfunction isRegExp(payload) {\r\n return getType(payload) === 'RegExp';\r\n}\r\n/**\r\n * Returns whether the payload is a date, and that the date is Valid\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Date}\r\n */\r\nfunction isDate(payload) {\r\n return (getType(payload) === 'Date' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a Symbol\r\n *\r\n * @param {*} payload\r\n * @returns {payload is symbol}\r\n */\r\nfunction isSymbol(payload) {\r\n return (getType(payload) === 'Symbol');\r\n}\r\n/**\r\n * Returns whether the payload is a primitive type (eg. Boolean | Null | Undefined | Number | String | Symbol)\r\n *\r\n * @param {*} payload\r\n * @returns {(payload is boolean | null | undefined | number | string | symbol)}\r\n */\r\nfunction isPrimitive(payload) {\r\n return (isBoolean(payload) ||\r\n isNull(payload) ||\r\n isUndefined(payload) ||\r\n isNumber(payload) ||\r\n isString(payload) ||\r\n isSymbol(payload));\r\n}\r\n/**\r\n * Does a generic check to check that the given payload is of a given type.\r\n * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!);\r\n * It will, however, differentiate between object and null\r\n *\r\n * @template T\r\n * @param {*} payload\r\n * @param {T} type\r\n * @throws {TypeError} Will throw type error if type is an invalid type\r\n * @returns {payload is T}\r\n */\r\nfunction isType(payload, type) {\r\n if (!(type instanceof Function)) {\r\n throw new TypeError('Type must be a function');\r\n }\r\n if (!type.hasOwnProperty('prototype')) {\r\n throw new TypeError('Type is not a class');\r\n }\r\n // Classes usually have names (as functions usually have names)\r\n var name = type.name;\r\n return (getType(payload) === name) || Boolean(payload && (payload.constructor === type));\r\n}\n\nexport { getType, isUndefined, isNull, isPlainObject, isObject, isAnyObject, isObjectLike, isFunction, isArray, isString, isFullString, isEmptyString, isNumber, isBoolean, isRegExp, isDate, isSymbol, isPrimitive, isType };\n","import { isArray, isPlainObject, isSymbol } from 'is-what';\n\nfunction assignProp(carry, key, newVal, originalObject) {\r\n var propType = originalObject.propertyIsEnumerable(key)\r\n ? 'enumerable'\r\n : 'nonenumerable';\r\n if (propType === 'enumerable')\r\n carry[key] = newVal;\r\n if (propType === 'nonenumerable') {\r\n Object.defineProperty(carry, key, {\r\n value: newVal,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n });\r\n }\r\n}\r\nfunction mergeRecursively(origin, newComer, extensions) {\r\n // work directly on newComer if its not an object\r\n if (!isPlainObject(newComer)) {\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newComer = extend(origin, newComer);\r\n });\r\n }\r\n return newComer;\r\n }\r\n // define newObject to merge all values upon\r\n var newObject = {};\r\n if (isPlainObject(origin)) {\r\n var props_1 = Object.getOwnPropertyNames(origin);\r\n var symbols_1 = Object.getOwnPropertySymbols(origin);\r\n newObject = props_1.concat(symbols_1).reduce(function (carry, key) {\r\n // @ts-ignore\r\n var targetVal = origin[key];\r\n if ((!isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key)) ||\r\n (isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key))) {\r\n assignProp(carry, key, targetVal, origin);\r\n }\r\n return carry;\r\n }, {});\r\n }\r\n var props = Object.getOwnPropertyNames(newComer);\r\n var symbols = Object.getOwnPropertySymbols(newComer);\r\n var result = props.concat(symbols).reduce(function (carry, key) {\r\n // re-define the origin and newComer as targetVal and newVal\r\n var newVal = newComer[key];\r\n var targetVal = (isPlainObject(origin))\r\n // @ts-ignore\r\n ? origin[key]\r\n : undefined;\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newVal = extend(targetVal, newVal);\r\n });\r\n }\r\n // When newVal is an object do the merge recursively\r\n if (targetVal !== undefined && isPlainObject(newVal)) {\r\n newVal = mergeRecursively(targetVal, newVal, extensions);\r\n }\r\n assignProp(carry, key, newVal, newComer);\r\n return carry;\r\n }, newObject);\r\n return result;\r\n}\r\n/**\r\n * Merge anything recursively.\r\n * Objects get merged, special objects (classes etc.) are re-assigned \"as is\".\r\n * Basic types overwrite objects or other basic types.\r\n *\r\n * @param {(IConfig | any)} origin\r\n * @param {...any[]} newComers\r\n * @returns the result\r\n */\r\nfunction merge(origin) {\r\n var newComers = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n newComers[_i - 1] = arguments[_i];\r\n }\r\n var extensions = null;\r\n var base = origin;\r\n if (isPlainObject(origin) && origin.extensions && Object.keys(origin).length === 1) {\r\n base = {};\r\n extensions = origin.extensions;\r\n }\r\n return newComers.reduce(function (result, newComer) {\r\n return mergeRecursively(result, newComer, extensions);\r\n }, base);\r\n}\n\nfunction concatArrays(originVal, newVal) {\r\n if (isArray(originVal) && isArray(newVal)) {\r\n // concat logic\r\n return originVal.concat(newVal);\r\n }\r\n return newVal; // always return newVal as fallback!!\r\n}\n\nexport default merge;\nexport { merge, concatArrays };\n","/** @license React v16.8.6\n * react-is.production.min.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'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (colorNames.hasOwnProperty(name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar keyword = /(\\D+)/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\n\t\tif (!rgb) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = (parseFloat(match[1]) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = num.toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function () { /* empty */ };\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","/**\n * @ignore\n * event object for dom\n * @author yiminghe@gmail.com\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventBaseObject = require('./EventBaseObject');\n\nvar _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar TRUE = true;\nvar FALSE = false;\nvar commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];\n\nfunction isNullOrUndefined(w) {\n return w === null || w === undefined;\n}\n\nvar eventNormalizers = [{\n reg: /^key/,\n props: ['char', 'charCode', 'key', 'keyCode', 'which'],\n fix: function fix(event, nativeEvent) {\n if (isNullOrUndefined(event.which)) {\n event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;\n }\n\n // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)\n if (event.metaKey === undefined) {\n event.metaKey = event.ctrlKey;\n }\n }\n}, {\n reg: /^touch/,\n props: ['touches', 'changedTouches', 'targetTouches']\n}, {\n reg: /^hashchange$/,\n props: ['newURL', 'oldURL']\n}, {\n reg: /^gesturechange$/i,\n props: ['rotation', 'scale']\n}, {\n reg: /^(mousewheel|DOMMouseScroll)$/,\n props: [],\n fix: function fix(event, nativeEvent) {\n var deltaX = undefined;\n var deltaY = undefined;\n var delta = undefined;\n var wheelDelta = nativeEvent.wheelDelta;\n var axis = nativeEvent.axis;\n var wheelDeltaY = nativeEvent.wheelDeltaY;\n var wheelDeltaX = nativeEvent.wheelDeltaX;\n var detail = nativeEvent.detail;\n\n // ie/webkit\n if (wheelDelta) {\n delta = wheelDelta / 120;\n }\n\n // gecko\n if (detail) {\n // press control e.detail == 1 else e.detail == 3\n delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);\n }\n\n // Gecko\n if (axis !== undefined) {\n if (axis === event.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = 0 - delta;\n } else if (axis === event.VERTICAL_AXIS) {\n deltaX = 0;\n deltaY = delta;\n }\n }\n\n // Webkit\n if (wheelDeltaY !== undefined) {\n deltaY = wheelDeltaY / 120;\n }\n if (wheelDeltaX !== undefined) {\n deltaX = -1 * wheelDeltaX / 120;\n }\n\n // 默认 deltaY (ie)\n if (!deltaX && !deltaY) {\n deltaY = delta;\n }\n\n if (deltaX !== undefined) {\n /**\n * deltaX of mousewheel event\n * @property deltaX\n * @member Event.DomEvent.Object\n */\n event.deltaX = deltaX;\n }\n\n if (deltaY !== undefined) {\n /**\n * deltaY of mousewheel event\n * @property deltaY\n * @member Event.DomEvent.Object\n */\n event.deltaY = deltaY;\n }\n\n if (delta !== undefined) {\n /**\n * delta of mousewheel event\n * @property delta\n * @member Event.DomEvent.Object\n */\n event.delta = delta;\n }\n }\n}, {\n reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,\n props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],\n fix: function fix(event, nativeEvent) {\n var eventDoc = undefined;\n var doc = undefined;\n var body = undefined;\n var target = event.target;\n var button = nativeEvent.button;\n\n // Calculate pageX/Y if missing and clientX/Y available\n if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {\n eventDoc = target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // which for click: 1 === left; 2 === middle; 3 === right\n // do not use button\n if (!event.which && button !== undefined) {\n if (button & 1) {\n event.which = 1;\n } else if (button & 2) {\n event.which = 3;\n } else if (button & 4) {\n event.which = 2;\n } else {\n event.which = 0;\n }\n }\n\n // add relatedTarget, if necessary\n if (!event.relatedTarget && event.fromElement) {\n event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;\n }\n\n return event;\n }\n}];\n\nfunction retTrue() {\n return TRUE;\n}\n\nfunction retFalse() {\n return FALSE;\n}\n\nfunction DomEventObject(nativeEvent) {\n var type = nativeEvent.type;\n\n var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';\n\n _EventBaseObject2['default'].call(this);\n\n this.nativeEvent = nativeEvent;\n\n // in case dom event has been mark as default prevented by lower dom node\n var isDefaultPrevented = retFalse;\n if ('defaultPrevented' in nativeEvent) {\n isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;\n } else if ('getPreventDefault' in nativeEvent) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=691151\n isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;\n } else if ('returnValue' in nativeEvent) {\n isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;\n }\n\n this.isDefaultPrevented = isDefaultPrevented;\n\n var fixFns = [];\n var fixFn = undefined;\n var l = undefined;\n var prop = undefined;\n var props = commonProps.concat();\n\n eventNormalizers.forEach(function (normalizer) {\n if (type.match(normalizer.reg)) {\n props = props.concat(normalizer.props);\n if (normalizer.fix) {\n fixFns.push(normalizer.fix);\n }\n }\n });\n\n l = props.length;\n\n // clone properties of the original event object\n while (l) {\n prop = props[--l];\n this[prop] = nativeEvent[prop];\n }\n\n // fix target property, if necessary\n if (!this.target && isNative) {\n this.target = nativeEvent.srcElement || document; // srcElement might not be defined either\n }\n\n // check if target is a text node (safari)\n if (this.target && this.target.nodeType === 3) {\n this.target = this.target.parentNode;\n }\n\n l = fixFns.length;\n\n while (l) {\n fixFn = fixFns[--l];\n fixFn(this, nativeEvent);\n }\n\n this.timeStamp = nativeEvent.timeStamp || Date.now();\n}\n\nvar EventBaseObjectProto = _EventBaseObject2['default'].prototype;\n\n(0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {\n constructor: DomEventObject,\n\n preventDefault: function preventDefault() {\n var e = this.nativeEvent;\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n // otherwise set the returnValue property of the original event to FALSE (IE)\n e.returnValue = FALSE;\n }\n\n EventBaseObjectProto.preventDefault.call(this);\n },\n\n stopPropagation: function stopPropagation() {\n var e = this.nativeEvent;\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n } else {\n // otherwise set the cancelBubble property of the original event to TRUE (IE)\n e.cancelBubble = TRUE;\n }\n\n EventBaseObjectProto.stopPropagation.call(this);\n }\n});\n\nexports['default'] = DomEventObject;\nmodule.exports = exports['default'];","/**\n * @ignore\n * base event object for custom and dom event.\n * @author yiminghe@gmail.com\n */\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction returnFalse() {\n return false;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction EventBaseObject() {\n this.timeStamp = Date.now();\n this.target = undefined;\n this.currentTarget = undefined;\n}\n\nEventBaseObject.prototype = {\n isEventObject: 1,\n\n constructor: EventBaseObject,\n\n isDefaultPrevented: returnFalse,\n\n isPropagationStopped: returnFalse,\n\n isImmediatePropagationStopped: returnFalse,\n\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n },\n\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n },\n\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n // fixed 1.2\n // call stopPropagation implicitly\n this.stopPropagation();\n },\n\n halt: function halt(immediate) {\n if (immediate) {\n this.stopImmediatePropagation();\n } else {\n this.stopPropagation();\n }\n this.preventDefault();\n }\n};\n\nexports[\"default\"] = EventBaseObject;\nmodule.exports = exports[\"default\"];","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\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","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n","var api = require(\"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../css-loader/dist/cjs.js!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function insertAtTop(element) {\n\t\t\t\t document.head.insertBefore(element, document.head.firstElementChild);\n\t\t\t\t};\noptions.singleton = false;\n\nvar update = api(content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;","\"use strict\";\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 = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\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 && btoa) {\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 "}},te=function(e,t){return function(){var n,r=((n={})[j]=$(t),n["data-styled-version"]="4.4.0",n),o=G();return o&&(r.nonce=o),l.a.createElement("style",g({},r,{dangerouslySetInnerHTML:{__html:e()}}))}},ne=function(e){return function(){return Object.keys(e)}},re=function(e,t){return e.createTextNode(J(t))},oe=function e(t,n){var r=void 0===t?Object.create(null):t,o=void 0===n?Object.create(null):n,a=function(e){var t=o[e];return void 0!==t?t:o[e]=[""]},i=function(){var e="";for(var t in o){var n=o[t][0];n&&(e+=J(t)+n)}return e};return{clone:function(){var t=function(e){var t=Object.create(null);for(var n in e)t[n]=g({},e[n]);return t}(r),n=Object.create(null);for(var a in o)n[a]=[o[a][0]];return e(t,n)},css:i,getIds:ne(o),hasNameForId:K(r),insertMarker:a,insertRules:function(e,t,n){a(e)[0]+=t.join(" "),Y(r,e,n)},removeRules:function(e){var t=o[e];void 0!==t&&(t[0]="",X(r,e))},sealed:!1,styleTag:null,toElement:te(i,r),toHTML:ee(i,r)}},ae=function(e,t,n,r,o){if(C&&!n){var a=function(e,t,n){var r=document;e?r=e.ownerDocument:t&&(r=t.ownerDocument);var o=r.createElement("style");o.setAttribute(j,""),o.setAttribute("data-styled-version","4.4.0");var a=G();if(a&&o.setAttribute("nonce",a),o.appendChild(r.createTextNode("")),e&&!t)e.appendChild(o);else{if(!t||!e||!t.parentNode)throw new M(6);t.parentNode.insertBefore(o,n?t:t.nextSibling)}return o}(e,t,r);return P?function(e,t){var n=Object.create(null),r=Object.create(null),o=void 0!==t,a=!1,i=function(t){var o=r[t];return void 0!==o?o:(r[t]=re(e.ownerDocument,t),e.appendChild(r[t]),n[t]=Object.create(null),r[t])},s=function(){var e="";for(var t in r)e+=r[t].data;return e};return{clone:function(){throw new M(5)},css:s,getIds:ne(r),hasNameForId:K(n),insertMarker:i,insertRules:function(e,r,s){for(var l=i(e),c=[],u=r.length,f=0;f0&&(a=!0,t().insertRules(e+"-import",c))},removeRules:function(i){var s=r[i];if(void 0!==s){var l=re(e.ownerDocument,i);e.replaceChild(l,s),r[i]=l,X(n,i),o&&a&&t().removeRules(i+"-import")}},sealed:!1,styleTag:e,toElement:te(s,n),toHTML:ee(s,n)}}(a,o):function(e,t){var n=Object.create(null),r=Object.create(null),o=[],a=void 0!==t,i=!1,s=function(e){var t=r[e];return void 0!==t?t:(r[e]=o.length,o.push(0),X(n,e),r[e])},l=function(){var t=q(e).cssRules,n="";for(var a in r){n+=J(a);for(var i=r[a],s=Q(o,i),l=s-o[i];l0&&(i=!0,t().insertRules(r+"-import",h)),o[u]+=d,Y(n,r,c)},removeRules:function(s){var l=r[s];if(void 0!==l&&!1!==e.isConnected){var c=o[l];!function(e,t,n){for(var r=t-n,o=t;o>r;o-=1)e.deleteRule(o)}(q(e),Q(o,l)-1,c),o[l]=0,X(n,s),a&&i&&t().removeRules(s+"-import")}},sealed:!1,styleTag:e,toElement:te(l,n),toHTML:ee(l,n)}}(a,o)}return oe()},ie=/\s+/,se=void 0;se=C?P?40:1e3:-1;var le=0,ce=void 0,ue=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C?document.head:null,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];b(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var n=t.tags[0];return t.importRuleTag=ae(t.target,n?n.styleTag:null,t.forceServer,!0)},le+=1,this.id=le,this.forceServer=r,this.target=r?null:n,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!C||this.forceServer)return this;var e=[],t=[],n=!1,r=document.querySelectorAll("style["+j+'][data-styled-version="4.4.0"]'),o=r.length;if(!o)return this;for(var a=0;a0&&void 0!==arguments[0]&&arguments[0];ce=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map((function(e){for(var n=e.getIds(),r=e.clone(),o=0;o1?t-1:0),r=1;r=4;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),n-=4,++o;switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+((1540483477*(r>>>16)&65535)<<16)}return((r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16))^r>>>15)>>>0}var xe=function(e){return String.fromCharCode(e+(e>25?39:97))};function we(e){var t="",n=void 0;for(n=e;n>52;n=Math.floor(n/52))t=xe(n%52)+t;return xe(n%52)+t}function Oe(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:k,r=!!n&&e.theme===n.theme,o=e.theme&&!r?e.theme:t||n.theme;return o},je=/[[\].#*$><+~=|^:(),"'`-]+/g,Ce=/(^-|-$)/g;function Pe(e){return e.replace(je,"-").replace(Ce,"")}function Me(e){return"string"==typeof e&&!0}var Ae={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},Te={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},De=((ke={})[u.ForwardRef]={$$typeof:!0,render:!0},ke),Ne=Object.defineProperty,Ie=Object.getOwnPropertyNames,Le=Object.getOwnPropertySymbols,Re=void 0===Le?function(){return[]}:Le,Fe=Object.getOwnPropertyDescriptor,He=Object.getPrototypeOf,ze=Object.prototype,Be=Array.prototype;function Ue(e,t,n){if("string"!=typeof t){var r=He(t);r&&r!==ze&&Ue(e,r,n);for(var o=Be.concat(Ie(t),Re(t)),a=De[e.$$typeof]||Ae,i=De[t.$$typeof]||Ae,s=o.length,l=void 0,c=void 0;s--;)if(c=o[s],!(Te[c]||n&&n[c]||i&&i[c]||a&&a[c])&&(l=Fe(t,c)))try{Ne(e,c,l)}catch(e){}return e}return e}var Ve=Object(s.createContext)(),We=Ve.Consumer,Ge=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext.bind(r)),r.renderInner=r.renderInner.bind(r),r}return y(t,e),t.prototype.render=function(){return this.props.children?l.a.createElement(Ve.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return l.a.createElement(Ve.Provider,{value:t},this.props.children)},t.prototype.getTheme=function(e,t){if(E(e))return e(t);if(null===e||Array.isArray(e)||"object"!==(void 0===e?"undefined":m(e)))throw new M(8);return g({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)},t}(s.Component),Ye=(function(){function e(){b(this,e),this.masterSheet=ue.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new M(2);return l.a.createElement(Ke,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new M(3)}}(),Object(s.createContext)()),Xe=Ye.Consumer,Ke=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext),r}return y(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new ue(t);throw new M(4)},t.prototype.render=function(){var e=this.props,t=e.children,n=e.sheet,r=e.target;return l.a.createElement(Ye.Provider,{value:this.getContext(n,r)},t)},t}(s.Component),$e={};var qe=function(e){function t(){b(this,t);var n=x(this,e.call(this));return n.attrs={},n.renderOuter=n.renderOuter.bind(n),n.renderInner=n.renderInner.bind(n),n}return y(t,e),t.prototype.render=function(){return l.a.createElement(Xe,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ue.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():l.a.createElement(We,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,n=t.componentStyle,r=t.defaultProps,o=(t.displayName,t.foldedComponentIds),a=t.styledComponentId,i=t.target,l=(t.usesTheme,void 0),c=void 0;n.isStatic?l=this.generateAndInjectStyles(k,this.props):(c=_e(this.props,e,r),l=this.generateAndInjectStyles(c||k,this.props));var u=this.props.as||this.attrs.as||i,f=Me(u),d={},h=g({},this.props,this.attrs),m=void 0;for(m in h)"forwardedComponent"!==m&&"as"!==m&&("forwardedRef"===m?d.ref=h[m]:"forwardedAs"===m?d.as=h[m]:f&&!Object(p.a)(m)||(d[m]=h[m]));return this.props.style&&this.attrs.style&&(d.style=g({},this.attrs.style,this.props.style)),d.className=Array.prototype.concat(o,a,l!==a?l:null,this.props.className,this.attrs.className).filter(Boolean).join(" "),Object(s.createElement)(u,d)},t.prototype.buildExecutionContext=function(e,t,n){var r=this,o=g({},t,{theme:e});return n.length?(this.attrs={},n.forEach((function(e){var t,n=e,a=!1,i=void 0,s=void 0;for(s in E(n)&&(n=n(o),a=!0),n)i=n[s],a||!E(i)||(t=i)&&t.prototype&&t.prototype.isReactComponent||_(i)||(i=i(o)),r.attrs[s]=i,o[s]=i})),o):o},t.prototype.generateAndInjectStyles=function(e,t){var n=t.forwardedComponent,r=n.attrs,o=n.componentStyle;n.warnTooManyClasses;return o.isStatic&&!r.length?o.generateAndInjectStyles(k,this.styleSheet):o.generateAndInjectStyles(this.buildExecutionContext(e,t,r),this.styleSheet)},t}(s.Component);function Ze(e,t,n){var r=_(e),o=!Me(e),a=t.displayName,i=void 0===a?function(e){return Me(e)?"styled."+e:"Styled("+S(e)+")"}(e):a,s=t.componentId,c=void 0===s?function(e,t,n){var r="string"!=typeof t?"sc":Pe(t),o=($e[r]||0)+1;$e[r]=o;var a=r+"-"+e.generateName(r+o);return n?n+"-"+a:a}(Se,t.displayName,t.parentComponentId):s,u=t.ParentComponent,f=void 0===u?qe:u,p=t.attrs,h=void 0===p?O:p,m=t.displayName&&t.componentId?Pe(t.displayName)+"-"+t.componentId:t.componentId||c,b=r&&e.attrs?Array.prototype.concat(e.attrs,h).filter(Boolean):h,v=new Se(r?e.componentStyle.rules.concat(n):n,b,m),y=void 0,x=function(e,t){return l.a.createElement(f,g({},e,{forwardedComponent:y,forwardedRef:t}))};return x.displayName=i,(y=l.a.forwardRef(x)).displayName=i,y.attrs=b,y.componentStyle=v,y.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):O,y.styledComponentId=m,y.target=r?e.target:e,y.withComponent=function(e){var r=t.componentId,o=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(t,["componentId"]),a=r&&r+"-"+(Me(e)?e:Pe(S(e)));return Ze(e,g({},o,{attrs:b,componentId:a,ParentComponent:f}),n)},Object.defineProperty(y,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Object(d.a)(e.defaultProps,t):t}}),y.toString=function(){return"."+y.styledComponentId},o&&Ue(y,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),y}var Je=function(e){return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:k;if(!Object(u.isValidElementType)(n))throw new M(1,String(n));var o=function(){return t(n,r,ge.apply(void 0,arguments))};return o.withConfig=function(o){return e(t,n,g({},r,o))},o.attrs=function(o){return e(t,n,g({},r,{attrs:Array.prototype.concat(r.attrs,o).filter(Boolean)}))},o}(Ze,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){Je[e]=Je(e)}));!function(){function e(t,n){b(this,e),this.rules=t,this.componentId=n,this.isStatic=Oe(t,O),ue.master.hasId(n)||ue.master.deferredInject(n,[])}e.prototype.createStyles=function(e,t){var n=W(ve(this.rules,e,t),"");t.inject(this.componentId,n)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)}}();C&&(window.scCGSHMRCache={});var Qe=function(e){var t=l.a.forwardRef((function(t,n){return l.a.createElement(We,null,(function(r){var o=e.defaultProps,a=_e(t,r,o);return l.a.createElement(e,g({},t,{theme:a,ref:n}))}))}));return Ue(t,e),t.displayName="WithTheme("+S(e)+")",t};t.c=Je}).call(this,n(63))},function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a})),n.d(t,"e",(function(){return i})),n.d(t,"d",(function(){return s}));var r={PRIMARY:"#ABE2FB",SECONDARY:"#E6E6E6",DARKER_PRIMARY:"#87ceeb",OFF_WHITE:"#15181A",GREY:"#D3D3D3",RED:"#FF5E5E",DARK_GREY:"#535D63"},o=270,a=Math.PI/180,i={primary:r.PRIMARY,secondary:r.SECONDARY,detail:r.GREY,dark:!1},s={primary:r.PRIMARY,secondary:r.DARK_GREY,detail:r.DARK_GREY,dark:!0}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return a}));var r=n(30),o=function(e,t){return"daq-"+e+(t&&t.dark?"--dark":"--light")},a=function(e){return Object(r.a)(["className","id","setProps","style"],e)}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(71),a=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,a.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(95),a=(r=o)&&r.__esModule?r:{default:r};t.default=a.default||function(e){for(var t=1;t1?r-1:0),a=1;a0?" Additional arguments: "+o.join(", "):"")));return x(i)}return y(t,e),t}(Error),A=/^[^\S\n]*?\/\* sc-component-id:\s*(\S+)\s+\*\//gm,T=function(e){var t=""+(e||""),n=[];return t.replace(A,(function(e,t,r){return n.push({componentId:t,matchIndex:r}),e})),n.map((function(e,r){var o=e.componentId,a=e.matchIndex,i=n[r+1];return{componentId:o,cssFromDOM:i?t.slice(a,i.matchIndex):t.slice(a)}}))},D=/^\s*\/\/.*$/gm,N=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!1,compress:!1,semicolon:!0}),I=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!0,compress:!1,semicolon:!1}),L=[],R=function(e){if(-2===e){var t=L;return L=[],t}},F=i()((function(e){L.push(e)})),H=void 0,z=void 0,B=void 0,U=function(e,t,n){return t>0&&-1!==n.slice(0,t).indexOf(z)&&n.slice(t-z.length,t)!==z?"."+H:e};I.use([function(e,t,n){2===e&&n.length&&n[0].lastIndexOf(z)>0&&(n[0]=n[0].replace(B,U))},F,R]),N.use([F,R]);var V=function(e){return N("",e)};function W(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"&",o=e.join("").replace(D,""),a=t&&n?n+" "+t+" { "+o+" }":o;return H=r,z=t,B=new RegExp("\\"+z+"\\b","g"),I(n||!t?"":t,a)}var G=function(){return n.nc},Y=function(e,t,n){n&&((e[t]||(e[t]=Object.create(null)))[n]=!0)},X=function(e,t){e[t]=Object.create(null)},K=function(e){return function(t,n){return void 0!==e[t]&&e[t][n]}},$=function(e){var t="";for(var n in e)t+=Object.keys(e[n]).join(" ")+" ";return t.trim()},q=function(e){if(e.sheet)return e.sheet;for(var t=e.ownerDocument.styleSheets.length,n=0;n"+e()+""}},te=function(e,t){return function(){var n,r=((n={})[j]=$(t),n["data-styled-version"]="4.4.0",n),o=G();return o&&(r.nonce=o),l.a.createElement("style",g({},r,{dangerouslySetInnerHTML:{__html:e()}}))}},ne=function(e){return function(){return Object.keys(e)}},re=function(e,t){return e.createTextNode(J(t))},oe=function e(t,n){var r=void 0===t?Object.create(null):t,o=void 0===n?Object.create(null):n,a=function(e){var t=o[e];return void 0!==t?t:o[e]=[""]},i=function(){var e="";for(var t in o){var n=o[t][0];n&&(e+=J(t)+n)}return e};return{clone:function(){var t=function(e){var t=Object.create(null);for(var n in e)t[n]=g({},e[n]);return t}(r),n=Object.create(null);for(var a in o)n[a]=[o[a][0]];return e(t,n)},css:i,getIds:ne(o),hasNameForId:K(r),insertMarker:a,insertRules:function(e,t,n){a(e)[0]+=t.join(" "),Y(r,e,n)},removeRules:function(e){var t=o[e];void 0!==t&&(t[0]="",X(r,e))},sealed:!1,styleTag:null,toElement:te(i,r),toHTML:ee(i,r)}},ae=function(e,t,n,r,o){if(C&&!n){var a=function(e,t,n){var r=document;e?r=e.ownerDocument:t&&(r=t.ownerDocument);var o=r.createElement("style");o.setAttribute(j,""),o.setAttribute("data-styled-version","4.4.0");var a=G();if(a&&o.setAttribute("nonce",a),o.appendChild(r.createTextNode("")),e&&!t)e.appendChild(o);else{if(!t||!e||!t.parentNode)throw new M(6);t.parentNode.insertBefore(o,n?t:t.nextSibling)}return o}(e,t,r);return P?function(e,t){var n=Object.create(null),r=Object.create(null),o=void 0!==t,a=!1,i=function(t){var o=r[t];return void 0!==o?o:(r[t]=re(e.ownerDocument,t),e.appendChild(r[t]),n[t]=Object.create(null),r[t])},s=function(){var e="";for(var t in r)e+=r[t].data;return e};return{clone:function(){throw new M(5)},css:s,getIds:ne(r),hasNameForId:K(n),insertMarker:i,insertRules:function(e,r,s){for(var l=i(e),c=[],u=r.length,f=0;f0&&(a=!0,t().insertRules(e+"-import",c))},removeRules:function(i){var s=r[i];if(void 0!==s){var l=re(e.ownerDocument,i);e.replaceChild(l,s),r[i]=l,X(n,i),o&&a&&t().removeRules(i+"-import")}},sealed:!1,styleTag:e,toElement:te(s,n),toHTML:ee(s,n)}}(a,o):function(e,t){var n=Object.create(null),r=Object.create(null),o=[],a=void 0!==t,i=!1,s=function(e){var t=r[e];return void 0!==t?t:(r[e]=o.length,o.push(0),X(n,e),r[e])},l=function(){var t=q(e).cssRules,n="";for(var a in r){n+=J(a);for(var i=r[a],s=Q(o,i),l=s-o[i];l0&&(i=!0,t().insertRules(r+"-import",h)),o[u]+=d,Y(n,r,c)},removeRules:function(s){var l=r[s];if(void 0!==l&&!1!==e.isConnected){var c=o[l];!function(e,t,n){for(var r=t-n,o=t;o>r;o-=1)e.deleteRule(o)}(q(e),Q(o,l)-1,c),o[l]=0,X(n,s),a&&i&&t().removeRules(s+"-import")}},sealed:!1,styleTag:e,toElement:te(l,n),toHTML:ee(l,n)}}(a,o)}return oe()},ie=/\s+/,se=void 0;se=C?P?40:1e3:-1;var le=0,ce=void 0,ue=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C?document.head:null,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];b(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var n=t.tags[0];return t.importRuleTag=ae(t.target,n?n.styleTag:null,t.forceServer,!0)},le+=1,this.id=le,this.forceServer=r,this.target=r?null:n,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!C||this.forceServer)return this;var e=[],t=[],n=!1,r=document.querySelectorAll("style["+j+'][data-styled-version="4.4.0"]'),o=r.length;if(!o)return this;for(var a=0;a0&&void 0!==arguments[0]&&arguments[0];ce=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map((function(e){for(var n=e.getIds(),r=e.clone(),o=0;o1?t-1:0),r=1;r=4;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),n-=4,++o;switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+((1540483477*(r>>>16)&65535)<<16)}return((r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16))^r>>>15)>>>0}var xe=function(e){return String.fromCharCode(e+(e>25?39:97))};function we(e){var t="",n=void 0;for(n=e;n>52;n=Math.floor(n/52))t=xe(n%52)+t;return xe(n%52)+t}function Oe(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:k,r=!!n&&e.theme===n.theme,o=e.theme&&!r?e.theme:t||n.theme;return o},je=/[[\].#*$><+~=|^:(),"'`-]+/g,Ce=/(^-|-$)/g;function Pe(e){return e.replace(je,"-").replace(Ce,"")}function Me(e){return"string"==typeof e&&!0}var Ae={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},Te={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},De=((ke={})[u.ForwardRef]={$$typeof:!0,render:!0},ke),Ne=Object.defineProperty,Ie=Object.getOwnPropertyNames,Le=Object.getOwnPropertySymbols,Re=void 0===Le?function(){return[]}:Le,Fe=Object.getOwnPropertyDescriptor,He=Object.getPrototypeOf,ze=Object.prototype,Be=Array.prototype;function Ue(e,t,n){if("string"!=typeof t){var r=He(t);r&&r!==ze&&Ue(e,r,n);for(var o=Be.concat(Ie(t),Re(t)),a=De[e.$$typeof]||Ae,i=De[t.$$typeof]||Ae,s=o.length,l=void 0,c=void 0;s--;)if(c=o[s],!(Te[c]||n&&n[c]||i&&i[c]||a&&a[c])&&(l=Fe(t,c)))try{Ne(e,c,l)}catch(e){}return e}return e}var Ve=Object(s.createContext)(),We=Ve.Consumer,Ge=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext.bind(r)),r.renderInner=r.renderInner.bind(r),r}return y(t,e),t.prototype.render=function(){return this.props.children?l.a.createElement(Ve.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return l.a.createElement(Ve.Provider,{value:t},this.props.children)},t.prototype.getTheme=function(e,t){if(E(e))return e(t);if(null===e||Array.isArray(e)||"object"!==(void 0===e?"undefined":m(e)))throw new M(8);return g({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)},t}(s.Component),Ye=(function(){function e(){b(this,e),this.masterSheet=ue.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new M(2);return l.a.createElement(Ke,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new M(3)}}(),Object(s.createContext)()),Xe=Ye.Consumer,Ke=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext),r}return y(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new ue(t);throw new M(4)},t.prototype.render=function(){var e=this.props,t=e.children,n=e.sheet,r=e.target;return l.a.createElement(Ye.Provider,{value:this.getContext(n,r)},t)},t}(s.Component),$e={};var qe=function(e){function t(){b(this,t);var n=x(this,e.call(this));return n.attrs={},n.renderOuter=n.renderOuter.bind(n),n.renderInner=n.renderInner.bind(n),n}return y(t,e),t.prototype.render=function(){return l.a.createElement(Xe,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ue.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():l.a.createElement(We,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,n=t.componentStyle,r=t.defaultProps,o=(t.displayName,t.foldedComponentIds),a=t.styledComponentId,i=t.target,l=(t.usesTheme,void 0),c=void 0;n.isStatic?l=this.generateAndInjectStyles(k,this.props):(c=_e(this.props,e,r),l=this.generateAndInjectStyles(c||k,this.props));var u=this.props.as||this.attrs.as||i,f=Me(u),d={},h=g({},this.props,this.attrs),m=void 0;for(m in h)"forwardedComponent"!==m&&"as"!==m&&("forwardedRef"===m?d.ref=h[m]:"forwardedAs"===m?d.as=h[m]:f&&!Object(p.a)(m)||(d[m]=h[m]));return this.props.style&&this.attrs.style&&(d.style=g({},this.attrs.style,this.props.style)),d.className=Array.prototype.concat(o,a,l!==a?l:null,this.props.className,this.attrs.className).filter(Boolean).join(" "),Object(s.createElement)(u,d)},t.prototype.buildExecutionContext=function(e,t,n){var r=this,o=g({},t,{theme:e});return n.length?(this.attrs={},n.forEach((function(e){var t,n=e,a=!1,i=void 0,s=void 0;for(s in E(n)&&(n=n(o),a=!0),n)i=n[s],a||!E(i)||(t=i)&&t.prototype&&t.prototype.isReactComponent||_(i)||(i=i(o)),r.attrs[s]=i,o[s]=i})),o):o},t.prototype.generateAndInjectStyles=function(e,t){var n=t.forwardedComponent,r=n.attrs,o=n.componentStyle;n.warnTooManyClasses;return o.isStatic&&!r.length?o.generateAndInjectStyles(k,this.styleSheet):o.generateAndInjectStyles(this.buildExecutionContext(e,t,r),this.styleSheet)},t}(s.Component);function Ze(e,t,n){var r=_(e),o=!Me(e),a=t.displayName,i=void 0===a?function(e){return Me(e)?"styled."+e:"Styled("+S(e)+")"}(e):a,s=t.componentId,c=void 0===s?function(e,t,n){var r="string"!=typeof t?"sc":Pe(t),o=($e[r]||0)+1;$e[r]=o;var a=r+"-"+e.generateName(r+o);return n?n+"-"+a:a}(Se,t.displayName,t.parentComponentId):s,u=t.ParentComponent,f=void 0===u?qe:u,p=t.attrs,h=void 0===p?O:p,m=t.displayName&&t.componentId?Pe(t.displayName)+"-"+t.componentId:t.componentId||c,b=r&&e.attrs?Array.prototype.concat(e.attrs,h).filter(Boolean):h,v=new Se(r?e.componentStyle.rules.concat(n):n,b,m),y=void 0,x=function(e,t){return l.a.createElement(f,g({},e,{forwardedComponent:y,forwardedRef:t}))};return x.displayName=i,(y=l.a.forwardRef(x)).displayName=i,y.attrs=b,y.componentStyle=v,y.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):O,y.styledComponentId=m,y.target=r?e.target:e,y.withComponent=function(e){var r=t.componentId,o=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(t,["componentId"]),a=r&&r+"-"+(Me(e)?e:Pe(S(e)));return Ze(e,g({},o,{attrs:b,componentId:a,ParentComponent:f}),n)},Object.defineProperty(y,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Object(d.a)(e.defaultProps,t):t}}),y.toString=function(){return"."+y.styledComponentId},o&&Ue(y,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),y}var Je=function(e){return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:k;if(!Object(u.isValidElementType)(n))throw new M(1,String(n));var o=function(){return t(n,r,ge.apply(void 0,arguments))};return o.withConfig=function(o){return e(t,n,g({},r,o))},o.attrs=function(o){return e(t,n,g({},r,{attrs:Array.prototype.concat(r.attrs,o).filter(Boolean)}))},o}(Ze,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){Je[e]=Je(e)}));!function(){function e(t,n){b(this,e),this.rules=t,this.componentId=n,this.isStatic=Oe(t,O),ue.master.hasId(n)||ue.master.deferredInject(n,[])}e.prototype.createStyles=function(e,t){var n=W(ve(this.rules,e,t),"");t.inject(this.componentId,n)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)}}();C&&(window.scCGSHMRCache={});var Qe=function(e){var t=l.a.forwardRef((function(t,n){return l.a.createElement(We,null,(function(r){var o=e.defaultProps,a=_e(t,r,o);return l.a.createElement(e,g({},t,{theme:a,ref:n}))}))}));return Ue(t,e),t.displayName="WithTheme("+S(e)+")",t};t.c=Je}).call(this,n(63))},function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a})),n.d(t,"e",(function(){return i})),n.d(t,"d",(function(){return s}));var r={PRIMARY:"#ABE2FB",SECONDARY:"#E6E6E6",DARKER_PRIMARY:"#87ceeb",OFF_WHITE:"#15181A",GREY:"#D3D3D3",RED:"#FF5E5E",DARK_GREY:"#535D63"},o=270,a=Math.PI/180,i={primary:r.PRIMARY,secondary:r.SECONDARY,detail:r.GREY,dark:!1},s={primary:r.PRIMARY,secondary:r.DARK_GREY,detail:r.DARK_GREY,dark:!0}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return a}));var r=n(30),o=function(e,t){return"daq-"+e+(t&&t.dark?"--dark":"--light")},a=function(e){return Object(r.a)(["className","id","setProps","style"],e)}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(71),a=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,a.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(95),a=(r=o)&&r.__esModule?r:{default:r};t.default=a.default||function(e){for(var t=1;t1?arguments[1]:void 0,b=void 0!==m,v=0,g=u(p);if(b&&(m=r(m,h>2?arguments[2]:void 0,2)),null==g||d==Array&&s(g))for(n=new d(t=l(p.length));t>v;v++)c(n,v,b?m(p[v],v):p[v]);else for(f=g.call(p),n=new d;!(o=f.next()).done;v++)c(n,v,b?i(f,m,[o.value,v],!0):o.value);return n.length=v,n}})},function(e,t,n){var r=n(26);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var a=e.return;throw void 0!==a&&r(a.call(e)),t}}},function(e,t,n){var r=n(35),o=n(16)("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||a[o]===e)}},function(e,t,n){"use strict";var r=n(19),o=n(33);e.exports=function(e,t,n){t in e?r.f(e,t,o(0,n)):e[t]=n}},function(e,t,n){var r=n(147),o=n(16)("iterator"),a=n(35);e.exports=n(10).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||a[r(e)]}},function(e,t,n){var r=n(45),o=n(16)("toStringTag"),a="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,i;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:a?r(t):"Object"==(i=r(t))&&"function"==typeof t.callee?"Arguments":i}},function(e,t,n){var r=n(16)("iterator"),o=!1;try{var a=[7][r]();a.return=function(){o=!0},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var a=[7],i=a[r]();i.next=function(){return{done:n=!0}},a[r]=function(){return i},e(a)}catch(e){}return n}},function(e,t,n){(function(t){(function(){var n,r,o,a,i,s;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:null!=t&&t.hrtime?(e.exports=function(){return(n()-i)/1e6},r=t.hrtime,a=(n=function(){var e;return 1e9*(e=r())[0]+e[1]})(),s=1e9*t.uptime(),i=a-s):Date.now?(e.exports=function(){return Date.now()-o},o=Date.now()):(e.exports=function(){return(new Date).getTime()-o},o=(new Date).getTime())}).call(this)}).call(this,n(63))},function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}(e.exports="function"==typeof Object.keys?Object.keys:n).shim=n},function(e,t){var n="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();function r(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function o(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}(t=e.exports=n?r:o).supported=r,t.unsupported=o},function(e,t,n){var r=n(153),o=n(154);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[e.i,o,""]]);var a={insert:function(e){document.head.insertBefore(e,document.head.firstElementChild)},singleton:!1},i=(r(o,a),o.locals?o.locals:{});e.exports=i},function(e,t,n){"use strict";var r,o=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},a=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),i=[];function s(e){for(var t=-1,n=0;n0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;if(isNaN(e))return e;var n=t.toString().split("."),r=ke(n,2),o=(r[0],r[1]),a=o?o.length:0;return e.toFixed(a)},_e=function(e){var t=e.min,n=e.max,r=e.value;return null==r||rn?n:r},je=function(e){var t=e.min,n=e.max,r=e.value,o=e.progressionTarget,a=void 0===o?100:o;return r=Number(r),1*Math.abs(r-t)/Math.abs(n-t)*a},Ce=function(e,t){return Number(Math.round(e+"e"+t)+"e-"+t)},Pe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9999;return Math.floor(Math.random()*(t-e+1))+e},Me=n(81),Ae=n.n(Me);function Te(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e))&&"[object Arguments]"!==Object.prototype.toString.call(e))return;var n=[],r=!0,o=!1,a=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function De(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);ta&&f.push({key:p,subKey:o,index:0}),n[p][1]>a&&f.push({key:p,subKey:o,index:1}),n[p][0]i&&(n[p][0]=i),s[0]==n[p][1]&&n[p][1]>i&&(n[p][1]=i),s[s.length-1]==n[p][0]&&n[p][0]1&&void 0!==arguments[1]?arguments[1]:10;return"e"===t&&(t=Math.exp(1)),Math.log(e)/Math.log(t)},generateLogFormatter:function(e){var t=e.base,n=void 0===t?10:t,r=e.isSVG,a=void 0!==r&&r;return function(e){return a?o.a.createElement("tspan",null,n,o.a.createElement("tspan",{dy:"-6px"},e)):o.a.createElement("span",null,n,o.a.createElement("sup",null,e))}},formatValue:function(e,t){return o.a.createElement(Yt,null,"~",t,o.a.createElement("sup",null,Ce(e,2)))},genLogMarks:function(e,t){var n=e.min,r=e.max,a=e.step,i=void 0===a?1:a,s=e.base,l=void 0===s?10:s,c=e.marks;if(!c){var u=n;for(c={};u<=r;)c[u]=!0,u+=i}return Object.keys(c).forEach((function(e){"boolean"==typeof c[e]&&(c[e]=t?o.a.createElement("tspan",null,l,o.a.createElement("tspan",{dy:"-6px"},e)):o.a.createElement("span",null,l,o.a.createElement("sup",null,e)))})),c}};function Kt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qt(e){var t=function(e){var t=e.min,n=e.max,r=e.scale,o=void 0===r?{}:r,a=e.formatter,i={},s=null!=o.start,l=null!=o.interval,c=null!=o.labelInterval;i.min=t,i.max=n,i.start=s?o.start:t,i.interval=l?o.interval:function(e,t){var n=Math.ceil,r=1*Math.abs(t-e)/10;return r>1?n(r):(o=r,Number(o.toFixed(2)));var o}(i.start,n),i.labelInterval=c?o.labelInterval:2,i.custom=o.custom||{},i.formatter=a||Zt;var u=!s&&!l&&!c,f=Object.keys(i.custom).length;return i.onlyRenderCustom=f&&u,i.start=i.start!=t?t:i.start,i}(e),n=function(e){for(var t=1;to){h.current.innerHTML=e.exceedMessage?"string"==typeof e.exceedMessage?e.exceedMessage:e.exceedMessage(r,o)||"":""}else if(r=10?.05*n:.5,o=n-2*r;return Object(s.b)(cn(),e.vertical?"".concat(o,"px"):"100%",e.vertical?"100%":"".concat(o,"px"),e.vertical?"".concat(r,"px 0"):"0 ".concat(r,"px"))}),(function(e){return e.theme.dark&&Sn}));En.defaultProps={theme:c.e};var Sn=Object(s.b)(ln(),(function(e){var t=e.color,n=e.theme;if(!e.gradient)return Object(s.b)(sn(),t||n.primary)}),(function(e){var t=e.color,n=e.theme;return"2px 2px 6px 1px rgba(0, 0, 0, 0.45), inset 1px 1px 2px 0 rgba(255, 255, 255, 0.3),\n 1px 1px 1px 0px rgba(0, 0, 0, 0.6), 0 0 3px 0px ".concat(t||n.primary)})),_n=s.c.div(an(),(function(e){return e.vertical?Object(s.b)(on()):""}));function jn(){return(jn=Object.assign||function(e){for(var t=1;t=n[0]&&e<=n[1]}))[0];return n&&n[0]},Dn=function(e){var t=e.step,n=e.min,r=e.max,a=e.label,i=e.labelPosition,s=e.id,l=e.className,c=e.color,u=e.size,f=e.style,p=e.showCurrentValue,d=e.vertical,h=e.theme,m=e.value||n,b=null,v=[],g=Math.max(Math.min(r,m),n);c.gradient&&Re({color:c,min:n,max:r})&&(b=function(e){var t=e.color,n=e.min,r=e.max,o=0,a=Be(t.ranges).map((function(e){var t=Te(e,2),a=t[0],i=t[1],s=1*(i[1]-i[0])/(r-n),l=o;return o=o+s,{color:a,pos:l}}));return Ae()(a)}({color:c,min:n,max:r}));for(var y=Object(q.a)("graduatedbar",h),x=Object(q.b)(e),w=n;wthis.props.min&&ee?this.props.min:this.props.max}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){void 0!==e.value&&this.setState({value:e.value}),this.state.max!=e.max&&this.setState({max:e.max instanceof Number?e.max:this.state.max}),this.state.min!=e.min&&this.setState({min:e.min instanceof Number?e.min:this.state.min})}},{key:"componentDidMount",value:function(){window.addEventListener("mouseup",this.onMouseUp,!1),n(42)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("mouseup",this.onMouseUp,!1)}},{key:"onMouseDown",value:function(){this.setState({isDragging:!0})}},{key:"onMouseUp",value:function(){this.state.isDragging&&this.setState((function(e){return{rotation:e.currentDeg,isDragging:!1,startAngle:-1}}))}},{key:"onMouseMove",value:function(e){if(this.state.isDragging){var t=this.props,n=t.min,r=t.max,o=this.state.rotation,a=this.state.startAngle;e.touches&&(e=e.touches[0]);var i=this.knobElement.getBoundingClientRect(),s=i.width/2+i.left,l=i.height/2+i.top,u=Math.atan2(e.clientX-s,e.clientY-l)*(180/Math.PI);e.clientX-s>=0?u=Math.abs(360-u)+180:u-=180,u=Math.abs(u),-1===a&&(a=u,this.setState({startAngle:a}));var f=Math.floor(u-a+o);f=Math.min(f,c.b),f=Math.max(f,0),this.setState({currentDeg:f}),this.setValue(Ce(function(e){var t=e.min,n=e.max,r=e.deg;return je({min:0,max:c.b,value:r,progressionTarget:n-t})+t}({min:n,max:r,deg:f}),2))}}},{key:"setValue",value:function(e){this.setState({value:e}),this.props.setProps&&this.props.setProps({value:e})}},{key:"render",value:function(){var e=this,t=this.props,n=t.min,r=t.max,a=t.value,i=void 0===a?this.props.min:a,s=this.props,l=s.id,c=s.className,u=s.labelPosition,f=s.color,p=s.style,d=s.disabled,h=s.theme,m=s.textColor,b=je({min:n,max:r,value:this.getValue(i),progressionTarget:1}),v=m||Ve(f),g=Object(q.a)("knob",h),y=Object(q.b)(this.props),x=o.a.createElement(o.a.Fragment,null,o.a.createElement(gt,{className:g+"__current-value",valueColor:v,valueSize:Math.min(13.3333*(this.props.size+32)/100,32),units:!1,css:"transform: translateY(0%); top: 0;"},i.toFixed(this.props.digits)));return o.a.createElement("div",{id:l,className:g+(c?" "+c:""),style:p},o.a.createElement($.a,Kn({className:g+"__label"},y,{labelCSS:"top"===u?null:"transform: translateY(-40px);"}),o.a.createElement(Yn,{className:g+"__container",colorValue:v,color:Ve(f)},this.props.showCurrentValue&&x,o.a.createElement(Fn,Kn({progress:b},y,this.state,{min:this.props.min!=this.state.min?this.props.min:this.state.min,max:this.props.max!=this.state.max?this.props.max:this.state.max,value:this.getValue(i),scale:qt(this.props),currentDeg:Qn({min:this.props.min,max:this.props.max,value:this.getValue(i)}),refFunc:function(t){return e.knobElement=t},onMouseDown:d?this.noop:this.onMouseDown,onMouseUp:d?this.noop:this.onMouseUp,onMouseMove:d?this.noop:this.onMouseMove})))))}}])&&$n(r.prototype,a),i&&$n(r,i),t}(r.Component);er.defaultProps={min:0,max:10,theme:c.e,labelPosition:"top",persisted_props:["value"],persistence_type:"local",size:114},er.propTypes={id:i.a.string,value:i.a.number,color:i.a.oneOfType([i.a.string,i.a.shape({default:i.a.string,gradient:i.a.bool,ranges:i.a.shape({color:i.a.arrayOf(i.a.number)})})]),size:i.a.number,min:i.a.number,max:i.a.number,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),scale:i.a.shape({start:i.a.number,interval:i.a.number,labelInterval:i.a.number,custom:i.a.oneOfType([i.a.number,i.a.shape({style:i.a.string,label:i.a.string})])}),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"]),showCurrentValue:i.a.bool,textColor:i.a.string,digits:i.a.number};var tr=Object(s.d)(er);tr.defaultProps=er.defaultProps;var nr=tr;function rr(){var e=lr(["\n & .darkLED-fill {\n fill: ",";\n }\n"]);return rr=function(){return e},e}function or(){var e=lr(["\n border-radius: 3px;\n padding: 12px 8px 12px 14px;\n border: 1px solid ",";\n background: ",";\n"]);return or=function(){return e},e}function ar(){var e=lr(["\n padding: 12px 8px 4px 16px;\n background-color: #22272a;\n background-image: linear-gradient(145deg, rgba(255, 255, 255, 0.05) 0%, rgba(0, 0, 0, 0.5) 100%);\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1);\n"]);return ar=function(){return e},e}function ir(){var e=lr(["\n background-color: ",";\n "]);return ir=function(){return e},e}function sr(){var e=lr(["\n display: inline-flex;\n flex-direction: row;\n ",";\n ","\n"]);return sr=function(){return e},e}function lr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var cr=s.c.div(sr(),(function(e){return e.theme.dark?ur:fr}),(function(e){var t=e.backgroundColor;return Object(s.b)(ir(),t)})),ur=Object(s.b)(ar()),fr=Object(s.b)(or(),(function(e){return e.theme.detail}),(function(e){return e.backgroundColor}));cr.defaultProps={theme:c.e};var pr=s.c.div(rr(),(function(e){return e.color})),dr={0:["A","B","C","D","E","F"],1:["B","C"],2:["A","B","G","E","D"],3:["A","B","G","C","D"],4:["F","G","B","C"],5:["A","F","G","C","D"],6:["A","F","G","C","D","E"],7:["A","B","C"],8:["A","B","C","D","E","F","G"],9:["A","B","C","D","F","G"],"-":["G"]},hr={A:{base:"M3.778 3.778L6.555 1h16.667L26 3.778l-2.778 2.778H6.555L3.778 3.778z",stroke:"M3.778 3.778L6.555 1h16.667L26 3.778l-2.778 2.778H6.555L3.778 3.778z"},B:{base:"M26 3.778l2.778 2.777v16.667L26 26l-2.778-2.778V6.555L26 3.778z",stroke:"M26 3.778l2.778 2.777v16.667L26 26l-2.778-2.778V6.555L26 3.778z"},C:{base:"M26 26l2.778 2.778v16.666L26 48.222l-2.778-2.778V28.778L26 26z",stroke:"M26 26l2.778 2.778v16.666L26 48.222l-2.778-2.778V28.778L26 26z"},D:{base:"M26 48.222L23.222 51H6.555l-2.777-2.778 2.777-2.778h16.667L26 48.222z",stroke:"M26 48.222L23.222 51H6.555l-2.777-2.778 2.777-2.778h16.667L26 48.222z"},E:{base:"M3.778 48.222L1 45.444V28.778L3.778 26l2.778 2.778v16.666l-2.778 2.778z",stroke:"M3.778 48.222L1 45.444V28.778L3.778 26l2.778 2.778v16.666l-2.778 2.778z"},F:{base:"M3.778 26L1 23.222V6.555l2.778-2.777 2.778 2.777v16.667L3.778 26z",stroke:"M3.778 26L1 23.222V6.555l2.778-2.777 2.778 2.777v16.667L3.778 26z"},G:{base:"M3.778 26l2.777-2.778h16.667L26 26l-2.778 2.778H6.555L3.778 26z",stroke:"M3.778 26l2.777-2.778h16.667L26 26l-2.778 2.778H6.555L3.778 26z"}},mr=function(e){var t=e.paths,n=t.base,r=t.stroke,a=e.fillColor,i=e.strokeColor;return o.a.createElement("g",null,o.a.createElement("path",{fill:a,fillRule:"evenodd",d:n,clipRule:"evenodd"}),o.a.createElement("path",{stroke:i,strokeWidth:".75",d:r}))},br=function(e){var t=e.fillColor,n=e.strokeColor;return o.a.createElement("g",{transform:"translate(29 46)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"}))},vr=function(e){var t=e.fillColor,n=e.strokeColor;return o.a.createElement("g",null,o.a.createElement("g",{transform:"translate(32 36)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"})),o.a.createElement("g",{transform:"translate(32 9)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"})))},gr=function(e){var t=e.value,n=e.hasColon,r=e.hasDecimal,a=e.color,i=e.backgroundColor,s=e.size,l=e.className,c=xt()(i).darken(.2).fade(.85),u=dr[t].map((function(e){return o.a.createElement(mr,{key:e,fillColor:a,strokeColor:i,paths:hr[e]})})),f=["A","B","C","D","E","F","G"].map((function(e){return o.a.createElement(mr,{key:e,fillColor:c,strokeColor:i,paths:hr[e]})})),p=n?s:s*(6/7),d=s*(9/7);return o.a.createElement("div",{className:l},o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:p,height:d},o.a.createElement("g",{fill:"none",style:{transform:"scale(".concat(Number(s)/42,")")}},f,u,n&&o.a.createElement(vr,{fillColor:a,strokeColor:i}),r&&o.a.createElement(br,{fillColor:a,strokeColor:i}))))},yr=function(e){var t=e.value,n=e.hasColon,r=e.hasDecimal,a=e.color,i=e.size,s=e.className,l=dr[t].map((function(e){return ye[e]})),c=n?i:i*(6/7),u=i*(9/7);return o.a.createElement(pr,{className:s,color:a},o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:c,height:u},ge,o.a.createElement("g",{fill:"none",fillRule:"evenodd",filter:"url(#darkLED-a)",style:{transform:"scale(".concat(Number(i)/42,")")}},l,n&&we,r&&xe)))},xr=function(e){return e.theme.dark?o.a.createElement(yr,e):o.a.createElement(gr,e)},wr=/^(\-)?((\.|:)?[0-9])*$/,Or=wr.test.bind(wr),kr=function(e){var t=Object(q.a)("leddisplay",e.theme),n=Or(e.value)?function(e,t){var n=e.value,r=e.color,a=e.backgroundColor,i=e.theme,s=e.size,l=n.toString().split("").reverse(),c=[];!function(e){var t=!1;"-"===e[e.length-1]&&(t=!0,e.pop());var n=e[e.length-1];[".",":"].includes(n)&&e.push("0");t&&e.push("-")}(l);var u=0;for(;l.length;){var f=l.pop(),p=l.pop();c.push(o.a.createElement(xr,{className:t+"__digit",theme:i,key:u++,value:f,hasColon:":"===p,hasDecimal:"."===p,color:r,backgroundColor:a,size:s})),p&&"."!==p&&":"!==p&&l.push(p)}return c}(e,t):null,r=o.a.createElement(cr,{backgroundColor:e.backgroundColor},n),a=Object(q.b)(e);return o.a.createElement("div",{id:e.id,className:t+(e.className?" "+e.className:""),style:e.style},o.a.createElement($.a,a,n?r:"Invalid Input"))};kr.defaultProps={color:c.c.PRIMARY,backgroundColor:"#fff",size:42,theme:c.e,labelPosition:"top"},kr.propTypes={id:i.a.string,value:i.a.oneOfType([i.a.number,i.a.string]),color:i.a.string,backgroundColor:i.a.string,size:i.a.number,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object};var Er=Object(s.d)(kr),Sr=n(15),_r=n.n(Sr);_r.a.prototype.UNSAFE_componentWillMount=_r.a.prototype.componentWillMount,_r.a.prototype.UNSAFE_componentWillReceiveProps=_r.a.prototype.componentWillReceiveProps,_r.a.prototype.UNSAFE_componentWillUpdate=_r.a.prototype.componentWillUpdate,delete _r.a.prototype.componentWillMount,delete _r.a.prototype.componentWillReceiveProps,delete _r.a.prototype.componentWillUpdate;var jr=_r.a;function Cr(e){return(Cr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Pr(){return(Pr=Object.assign||function(e){for(var t=1;t=this.props.min&&e<=this.props.max&&(this.setState({value:e}),this.props.setProps&&this.props.setProps({value:e}))}},{key:"render",value:function(){var e=this.props,t=e.size,n=e.theme,r=e.style,a=e.className,i=e.id,s=e.disabled,l=e.min,u=e.max,f={background:"none",boxShadow:"none",border:"none",color:n.secondary,cursor:"pointer"},p=Math.max(this.state.value?16-2*this.state.value.toString().length:16,10),d={borderRadius:3,border:n.dark?"none":"1px solid ".concat(c.c.GREY),outline:"none",paddingRight:p,paddingLeft:p,paddingTop:8,paddingBottom:8,width:t||56,color:n.dark?"#fff":c.c.OFF_WHITE,backgroundColor:n.dark?"#22272a":"#fff",fontSize:14,boxSizing:"border-box"},h=Object(q.a)("numericinput",n),m=Object(q.b)(this.props);return o.a.createElement("div",{id:i,className:h+(a?" "+a:""),style:r},o.a.createElement($.a,Pr({className:h+"__label"},m),o.a.createElement(jr,{className:h+"__input",disabled:s,style:{input:d,"input:not(.form-control)":d,btn:f,"btn:hover":f,"btn:active":f,"input:disabled":{opacity:.65,cursor:"not-allowed"}},min:l,max:u,value:this.state.value,onChange:this.setValue,mobile:!1})))}}])&&Mr(n.prototype,r),a&&Mr(n,a),t}(r.Component);Nr.defaultProps={min:0,max:10,theme:c.e,labelPosition:"top",persisted_props:["value"],persistence_type:"local",style:{display:"flex",justifyContent:"center"}},Nr.propTypes={id:i.a.string,value:i.a.number,size:i.a.number,min:i.a.number,max:i.a.number,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"])};var Ir=Object(s.d)(Nr);Ir.defaultProps=Nr.defaultProps;var Lr=Ir;function Rr(){var e=Wr(["\n box-shadow: 0 0 8px 2px ",";\n "]);return Rr=function(){return e},e}function Fr(){var e=Wr(["\n width: ","px;\n height: ","px;\n "]);return Fr=function(){return e},e}function Hr(){var e=Wr(["\n "," border-radius: 100%;\n padding: 0;\n margin-bottom: 8px;\n\n &::before,\n &::after {\n left: 4%;\n border-radius: 100%;\n transition: all 0.1s ease-in;\n }\n\n &::before {\n top: 8%;\n width: 86%;\n height: 86%;\n }\n\n &::after {\n top: 4%;\n width: 92%;\n height: 92%;\n\n ",";\n }\n\n &:hover::before {\n background-color: rgba(0, 0, 0, 0.8);\n }\n\n &:hover::after {\n box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.66);\n }\n\n &:focus::after,\n &:active::after {\n box-shadow: ",";\n }\n"]);return Hr=function(){return e},e}function zr(){var e=Wr(["\n width: ","px;\n height: ","px;\n "]);return zr=function(){return e},e}function Br(){var e=Wr(["\n border-radius: 50%;\n box-sizing: border-box;\n background: #fff;\n border: 1px solid ",";\n "," margin-bottom: ",";\n padding: 0;\n\n &:focus,\n &:hover {\n border-color: ",";\n }\n"]);return Br=function(){return e},e}function Ur(){var e=Wr(["\n cursor: pointer;\n outline: none;\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:disabled {\n opacity: ",";\n cursor: not-allowed;\n }\n\n ",";\n"]);return Ur=function(){return e},e}function Vr(){var e=Wr(["\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n\n & svg {\n margin: 0 auto;\n }\n"]);return Vr=function(){return e},e}function Wr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Gr=Object(s.c)("div")(Vr()),Yr=s.c.button(Ur(),(function(e){return e.theme.dark?1:.65}),(function(e){return e.theme.dark?Kr:Xr})),Xr=Object(s.b)(Br(),(function(e){return e.theme.secondary}),(function(e){var t=e.size;return Object(s.b)(zr(),t,t)}),(function(e){var t=e.size;return"".concat(.0625*t,"px")}),(function(e){return e.theme.secondary})),Kr=Object(s.b)(Hr(),(function(e){var t=e.size;return Object(s.b)(Fr(),t,t)}),(function(e){var t=e.on,n=e.color,r=e.theme;return t?Object(s.b)(Rr(),n||r.primary):""}),(function(e){var t=e.on,n=e.color,r=e.theme;return t?"0 0 8px 2px ".concat(n||r.primary):"0 0 3px 0 rgba(0,0,0,0.66)"}));Yr.defaultProps={theme:c.e};var $r=function(e){var t=e.color,n=e.theme,r=e.on,a=e.size;return o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:a,height:a,viewBox:"0 0 14 14"},o.a.createElement("path",{fill:r?t||n.primary:n.secondary,fillRule:"evenodd",d:"M24.5173333,14.68 C25.2764482,15.3271143 25.8799978,16.1111065 26.328,17.032 C26.7760022,17.9777825 27,18.9671059 27,20 C27,21.2693397 26.6826698,22.4453279 26.048,23.528 C25.4257747,24.5857831 24.5857831,25.4257747 23.528,26.048 C22.4453279,26.6826698 21.2693397,27 20,27 C18.7306603,27 17.5546721,26.6826698 16.472,26.048 C15.4142169,25.4257747 14.5742253,24.5857831 13.952,23.528 C13.3173302,22.4453279 13,21.2693397 13,20 C13,18.9671059 13.2302199,17.9777825 13.6906667,17.032 C14.1262244,16.1111065 14.7235518,15.3271143 15.4826667,14.68 L16.5653333,15.7626667 C15.9555525,16.2728914 15.4764462,16.8888853 15.128,17.6106667 C14.7546648,18.3697816 14.568,19.1662181 14.568,20 C14.568,20.9955605 14.8106642,21.9102181 15.296,22.744 C15.7813358,23.5653374 16.4346626,24.2186642 17.256,24.704 C18.0897819,25.1893358 19.0044395,25.432 20,25.432 C20.9955605,25.432 21.9102181,25.1893358 22.744,24.704 C23.5653374,24.2186642 24.2186642,23.5653374 24.704,22.744 C25.1893358,21.9102181 25.432,20.9955605 25.432,20 C25.432,19.1537735 25.2546684,18.3666703 24.9,17.6386667 C24.5453316,16.910663 24.056892,16.2977803 23.4346667,15.8 L24.5173333,14.68 Z M20.7653333,13 L20.7653333,20.7653333 L19.2346667,20.7653333 L19.2346667,13 L20.7653333,13 Z",transform:"translate(-13 -13)"}))};$r.defaultProps={theme:c.e};var qr=$r;function Zr(e){return(Zr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Jr(){return(Jr=Object.assign||function(e){for(var t=1;t=this.props.min&&e<=this.props.max){var t=this.formatPrecision(e);this.setState({value:t}),this.props.setProps&&this.props.setProps({value:t})}}},{key:"toggleInput",value:function(){if(!this.props.disabled){var e=!this.state.isInput;this.setState({isInput:e}),e&&this.setState({tempValue:this.state.value})}}},{key:"setTempValue",value:function(e){this.setState({tempValue:e})}},{key:"blur",value:function(){null!=this.state.tempValue&&this.setValue(this.state.tempValue),this.setState({tempValue:null}),this.toggleInput()}},{key:"render",value:function(){var e,t=this.props,n=t.id,r=t.className,a=t.style,i=t.size,s=t.theme,l=t.disabled,u=t.precision,f=t.min,p=t.max,d={background:"none",boxShadow:"none",border:"none",color:s.secondary,cursor:"pointer"},h=this.state.value?16-2*this.state.value.toString().length:16,m=Math.max(h,10),b={borderRadius:3,border:s.dark?"none":"1px solid ".concat(c.c.GREY),outline:"none",paddingRight:m,paddingLeft:m,paddingTop:4,paddingBottom:4,width:i||56+20*u,height:36,backgroundColor:s.dark?"#22272a":"#fff",color:s.dark?"#fff":"#000",fontSize:14,lineHeight:14,boxSizing:"border-box"},v=Object(q.a)("precisioninput",s.dark),g=Object(q.b)(this.props);return e=this.state.isInput?o.a.createElement(jr,{autoFocus:!0,className:v+"__input",disabled:l,style:{input:b,"input:not(.form-control)":b,btn:d,"btn:hover":d,"btn:active":d,"input:disabled":{opacity:.65,cursor:"not-allowed"}},min:f,max:p,value:this.state.tempValue,onChange:this.setTempValue,onBlur:this.blur}):o.a.createElement(No,{elementName:v+"__output",value:this.state.value,size:i,onClick:this.toggleInput,color:s.dark?"#fff":c.c.OFF_WHITE}),o.a.createElement("div",{id:n,className:v+(r?" "+r:""),style:Object.assign({},Ao,a)},o.a.createElement($.a,_o({className:v+"__label"},g),e))}}])&&jo(n.prototype,r),a&&jo(n,a),t}(r.Component),Do=function(e){if("-"===e[0]){e.shift();var t=e.shift();e.unshift("-".concat(t))}return e},No=function(e){var t=e.value,n=e.onClick,r=e.size,a=e.elementName,i=Eo(function(e){return Number(e).toExponential().replace("+","")}(t).split("e"),2),s=i[0],l=i[1],c=Do(s.split("")),u=Do(l.split(""));return o.a.createElement(vo,{size:r,onClick:n,className:a},c.map((function(e,t){return o.a.createElement(xo,{className:a+"__digit",key:"d".concat(t)},e)})),o.a.createElement(ko,{className:a+"__exp"},"E"),u.map((function(e,t){return o.a.createElement(ko,{className:a+"__expdigit",key:"e".concat(t)},e)})))};To.defaultProps={min:0,max:Number.MAX_SAFE_INTEGER,theme:c.e,labelPosition:"top",precision:2,persisted_props:["value"],persistence_type:"local"},To.propTypes={id:i.a.string,value:i.a.number,size:i.a.number,min:i.a.number,max:i.a.number,precision:i.a.number.isRequired,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"])};var Io=Object(s.d)(To);Io.defaultProps=To.defaultProps;var Lo=Io;function Ro(){var e=zo(["\n color: #ff6e6e;\n background-color: #22272a;\n\n text-shadow: 0 0 2px rgba(0, 0, 0, 0.9), 0 0 9px #ff6e6e;\n\n background-image: linear-gradient(145deg, rgba(255, 255, 255, 0.05) 0%, rgba(0, 0, 0, 0.5) 100%);\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1);\n\n display: block;\n box-sizing: border-box;\n border: none;\n border-radius: 2px;\n font-weight: bold;\n font-size: 12px;\n text-transform: uppercase;\n padding: 0;\n width: ",";\n height: ",";\n text-align: center;\n cursor: pointer;\n letter-spacing: 0.1;\n line-height: 1;\n\n background-color: #22272a;\n color: #ff1a1a;\n\n &::before,\n &::after {\n transition: all 0.1s ease-in;\n background-color: #e03a3a;\n }\n\n &:hover::before,\n &:hover::after {\n background-color: #e64545;\n }\n\n &:active::before,\n &:active::after {\n background-color: #c72121;\n }\n\n &:hover::after,\n &:active::after,\n &:focus::after {\n box-shadow: none;\n }\n"]);return Ro=function(){return e},e}function Fo(){var e=zo(["\n color: white;\n background-color: #ff5e5e;\n\n display: block;\n box-sizing: border-box;\n border: none;\n border-radius: 2px;\n font-weight: bold;\n font-size: 12px;\n text-transform: uppercase;\n padding: 0;\n width: ",";\n min-height: ",";\n text-align: center;\n cursor: pointer;\n letter-spacing: 0.1;\n line-height: 1;\n\n &:hover,\n &:focus,\n &:active {\n color: #fff;\n }\n\n &:hover {\n background-color: #ff8585;\n }\n\n &:active {\n background-color: #e64545;\n }\n"]);return Fo=function(){return e},e}function Ho(){var e=zo(["\n outline: none;\n transition: all 0.1s ease-in;\n ",";\n\n &:disabled {\n opacity: ",";\n cursor: not-allowed;\n }\n"]);return Ho=function(){return e},e}function zo(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Bo=s.c.button(Ho(),(function(e){return e.theme.dark?Vo:Uo}),(function(e){return e.theme.dark?1:.65}));Bo.defaultProps={theme:c.e};var Uo=Object(s.b)(Fo(),(function(e){var t=e.size;return"".concat(t,"px")}),(function(e){var t=e.size;return"".concat(.42*t,"px")})),Vo=Object(s.b)(Ro(),(function(e){var t=e.size;return"".concat(t,"px")}),(function(e){var t=e.size;return"".concat(.42*t,"px")})),Wo=function(e){var t=e.id,n=e.className,r=e.style,a=e.size,i=e.disabled,s=e.children,l=e.n_clicks,c=e.buttonText,u=e.theme,f=Object(q.a)("stopbutton",u),p=Object(q.b)(e);return o.a.createElement("div",{id:t,className:f+(n?" "+n:""),style:r},o.a.createElement($.a,p,o.a.createElement(Bo,{className:f+"__button",size:a,disabled:i,onClick:function(){e.setProps&&e.setProps({n_clicks:l+1})}},s||c)))};Wo.defaultProps={buttonText:"Stop",n_clicks:0,size:92,labelPosition:"top"},Wo.propTypes={id:i.a.string,size:i.a.number,buttonText:i.a.string,n_clicks:i.a.number,disabled:i.a.bool,children:i.a.node,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func};var Go=Object(s.d)(Wo),Yo=n(6),Xo=n.n(Yo),Ko=n(11),$o=n.n(Ko),qo=n(12),Zo=n.n(qo),Jo=n(9),Qo=n.n(Jo),ea=n(13),ta=n.n(ea),na=n(23),ra=n.n(na),oa=n(5),aa=n.n(oa),ia=function(e){var t,n,r=e.className,a=e.included,i=e.vertical,s=e.style,l=e.length,c=e.offset,u=e.reverse;l<0&&(u=!u,l=Math.abs(l),c=100-c);var f=i?(t={},aa()(t,u?"top":"bottom",c+"%"),aa()(t,u?"bottom":"top","auto"),aa()(t,"height",l+"%"),t):(n={},aa()(n,u?"right":"left",c+"%"),aa()(n,u?"left":"right","auto"),aa()(n,"width",l+"%"),n),p=Xo()({},s,f);return a?o.a.createElement("div",{className:r,style:p}):null},sa=n(24),la=n.n(sa),ca=n(41),ua=n.n(ca),fa=n(82),pa=n.n(fa),da=n(14),ha=n.n(da);function ma(e,t,n,r){var o=ha.a.unstable_batchedUpdates?function(e){ha.a.unstable_batchedUpdates(n,e)}:n;return pa()(e,t,o,r)}var ba=n(8),va=n.n(ba),ga=function(e){var t=e.prefixCls,n=e.vertical,r=e.reverse,a=e.marks,i=e.dots,s=e.step,l=e.included,c=e.lowerBound,u=e.upperBound,f=e.max,p=e.min,d=e.dotStyle,h=e.activeDotStyle,m=f-p,b=function(e,t,n,r,o,a){ra()(!n||r>0,"`Slider[step]` should be a positive number in order to make Slider[dots] work.");var i=Object.keys(t).map(parseFloat).sort((function(e,t){return e-t}));if(n&&r)for(var s=o;s<=a;s+=r)-1===i.indexOf(s)&&i.push(s);return i}(0,a,i,s,p,f).map((function(e){var a,i=Math.abs(e-p)/m*100+"%",s=!l&&e===u||l&&e<=u&&e>=c,f=n?Xo()({},d,aa()({},r?"top":"bottom",i)):Xo()({},d,aa()({},r?"right":"left",i));s&&(f=Xo()({},f,h));var b=va()((a={},aa()(a,t+"-dot",!0),aa()(a,t+"-dot-active",s),aa()(a,t+"-dot-reverse",r),a));return o.a.createElement("span",{className:b,style:f,key:e})}));return o.a.createElement("div",{className:t+"-step"},b)};ga.propTypes={prefixCls:i.a.string,activeDotStyle:i.a.object,dotStyle:i.a.object,min:i.a.number,max:i.a.number,upperBound:i.a.number,lowerBound:i.a.number,included:i.a.bool,dots:i.a.bool,step:i.a.number,marks:i.a.object,vertical:i.a.bool,reverse:i.a.bool};var ya=ga,xa=function(e){var t=e.className,n=e.vertical,r=e.reverse,a=e.marks,i=e.included,s=e.upperBound,l=e.lowerBound,c=e.max,u=e.min,f=e.onClickLabel,p=Object.keys(a),d=c-u,h=p.map(parseFloat).sort((function(e,t){return e-t})).map((function(e){var c,p=a[e],h="object"==typeof p&&!o.a.isValidElement(p),m=h?p.label:p;if(!m&&0!==m)return null;var b=!i&&e===s||i&&e<=s&&e>=l,v=va()((c={},aa()(c,t+"-text",!0),aa()(c,t+"-text-active",b),c)),g=aa()({marginBottom:"-50%"},r?"top":"bottom",(e-u)/d*100+"%"),y=aa()({transform:"translateX(-50%)",msTransform:"translateX(-50%)"},r?"right":"left",r?(e-u/4)/d*100+"%":(e-u)/d*100+"%"),x=n?g:y,w=h?Xo()({},x,p.style):x;return o.a.createElement("span",{className:v,style:w,key:e,onMouseDown:function(t){return f(t,e)},onTouchStart:function(t){return f(t,e)}},m)}));return o.a.createElement("div",{className:t},h)};xa.propTypes={className:i.a.string,vertical:i.a.bool,reverse:i.a.bool,marks:i.a.object,included:i.a.bool,upperBound:i.a.number,lowerBound:i.a.number,max:i.a.number,min:i.a.number,onClickLabel:i.a.func};var wa=xa,Oa=function(e){function t(){var e,n,r,o;$o()(this,t);for(var a=arguments.length,i=Array(a),s=0;s=_a.F1&&t<=_a.F12)return!1;switch(t){case _a.ALT:case _a.CAPS_LOCK:case _a.CONTEXT_MENU:case _a.CTRL:case _a.DOWN:case _a.END:case _a.ESC:case _a.HOME:case _a.INSERT:case _a.LEFT:case _a.MAC_FF_META:case _a.META:case _a.NUMLOCK:case _a.NUM_CENTER:case _a.PAGE_DOWN:case _a.PAGE_UP:case _a.PAUSE:case _a.PRINT_SCREEN:case _a.RIGHT:case _a.SHIFT:case _a.UP:case _a.WIN_KEY:case _a.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=_a.ZERO&&e<=_a.NINE)return!0;if(e>=_a.NUM_ZERO&&e<=_a.NUM_MULTIPLY)return!0;if(e>=_a.A&&e<=_a.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case _a.SPACE:case _a.QUESTION_MARK:case _a.NUM_PLUS:case _a.NUM_MINUS:case _a.NUM_PERIOD:case _a.NUM_DIVISION:case _a.SEMICOLON:case _a.DASH:case _a.EQUALS:case _a.COMMA:case _a.PERIOD:case _a.SLASH:case _a.APOSTROPHE:case _a.SINGLE_QUOTE:case _a.OPEN_SQUARE_BRACKET:case _a.BACKSLASH:case _a.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},ja=_a;function Ca(e,t){try{return Object.keys(t).some((function(n){return e.target===Object(da.findDOMNode)(t[n])}))}catch(e){return!1}}function Pa(e,t){var n=t.min,r=t.max;return er}function Ma(e){return e.touches.length>1||"touchend"===e.type.toLowerCase()&&e.touches.length>0}function Aa(e,t){var n=t.marks,r=t.step,o=t.min,a=t.max,i=Object.keys(n).map(parseFloat);if(null!==r){var s=Math.floor((a-o)/r),l=Math.min((e-o)/r,s),c=Math.round(l)*r+o;i.push(c)}var u=i.map((function(t){return Math.abs(e-t)}));return i[u.indexOf(Math.min.apply(Math,Sa()(u)))]}function Ta(e,t){return e?t.clientY:t.pageX}function Da(e,t){return e?t.touches[0].clientY:t.touches[0].pageX}function Na(e,t){var n=t.getBoundingClientRect();return e?n.top+.5*n.height:window.pageXOffset+n.left+.5*n.width}function Ia(e,t){var n=t.max,r=t.min;return e<=r?r:e>=n?n:e}function La(e,t){var n=t.step,r=isFinite(Aa(e,t))?Aa(e,t):0;return null===n?r:parseFloat(r.toFixed(function(e){var t=e.toString(),n=0;return t.indexOf(".")>=0&&(n=t.length-t.indexOf(".")-1),n}(n)))}function Ra(e){e.stopPropagation(),e.preventDefault()}function Fa(e,t,n){var r="increase";switch(e.keyCode){case ja.UP:r=t&&n?"decrease":"increase";break;case ja.RIGHT:r=!t&&n?"decrease":"increase";break;case ja.DOWN:r=t&&n?"increase":"decrease";break;case ja.LEFT:r=!t&&n?"increase":"decrease";break;case ja.END:return function(e,t){return t.max};case ja.HOME:return function(e,t){return t.min};case ja.PAGE_UP:return function(e,t){return e+2*t.step};case ja.PAGE_DOWN:return function(e,t){return e-2*t.step};default:return}return function(e,t){return function(e,t,n){var r={increase:function(e,t){return e+t},decrease:function(e,t){return e-t}},o=r[e](Object.keys(n.marks).indexOf(JSON.stringify(t)),1),a=Object.keys(n.marks)[o];return n.step?r[e](t,n.step):Object.keys(n.marks).length&&n.marks[a]?n.marks[a]:t}(r,e,t)}}function Ha(){}function za(e){var t,n;return n=t=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onMouseDown=function(e){if(0===e.button){var t=n.props.vertical,r=Ta(t,e);if(Ca(e,n.handlesRefs)){var o=Na(t,e.target);n.dragOffset=r-o,r=o}else n.dragOffset=0;n.removeDocumentEvents(),n.onStart(r),n.addDocumentMouseEvents()}},n.onTouchStart=function(e){if(!Ma(e)){var t=n.props.vertical,r=Da(t,e);if(Ca(e,n.handlesRefs)){var o=Na(t,e.target);n.dragOffset=r-o,r=o}else n.dragOffset=0;n.onStart(r),n.addDocumentTouchEvents(),Ra(e)}},n.onFocus=function(e){var t=n.props,r=t.onFocus,o=t.vertical;if(Ca(e,n.handlesRefs)){var a=Na(o,e.target);n.dragOffset=0,n.onStart(a),Ra(e),r&&r(e)}},n.onBlur=function(e){var t=n.props.onBlur;n.onEnd(),t&&t(e)},n.onMouseUp=function(){n.handlesRefs[n.prevMovedHandleIndex]&&n.handlesRefs[n.prevMovedHandleIndex].clickFocus()},n.onMouseMove=function(e){if(n.sliderRef){var t=Ta(n.props.vertical,e);n.onMove(e,t-n.dragOffset)}else n.onEnd()},n.onTouchMove=function(e){if(!Ma(e)&&n.sliderRef){var t=Da(n.props.vertical,e);n.onMove(e,t-n.dragOffset)}else n.onEnd()},n.onKeyDown=function(e){n.sliderRef&&Ca(e,n.handlesRefs)&&n.onKeyboard(e)},n.onClickMarkLabel=function(e,t){e.stopPropagation(),n.onChange({value:t}),n.setState({value:t},(function(){return n.onEnd(!0)}))},n.saveSlider=function(e){n.sliderRef=e};var r=e.step,o=e.max,a=e.min,i=!isFinite(o-a)||(o-a)%r==0;return ra()(!r||Math.floor(r)!==r||i,"Slider[max] - Slider[min] (%s) should be a multiple of Slider[step] (%s)",o-a,r),n.handlesRefs={},n}return ta()(t,e),Zo()(t,[{key:"componentDidMount",value:function(){this.document=this.sliderRef&&this.sliderRef.ownerDocument;var e=this.props,t=e.autoFocus,n=e.disabled;t&&!n&&this.focus()}},{key:"componentWillUnmount",value:function(){ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"componentWillUnmount",this)&&ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"componentWillUnmount",this).call(this),this.removeDocumentEvents()}},{key:"getSliderStart",value:function(){var e=this.sliderRef,t=this.props,n=t.vertical,r=t.reverse,o=e.getBoundingClientRect();return n?r?o.bottom:o.top:window.pageXOffset+(r?o.right:o.left)}},{key:"getSliderLength",value:function(){var e=this.sliderRef;if(!e)return 0;var t=e.getBoundingClientRect();return this.props.vertical?t.height:t.width}},{key:"addDocumentTouchEvents",value:function(){this.onTouchMoveListener=ma(this.document,"touchmove",this.onTouchMove),this.onTouchUpListener=ma(this.document,"touchend",this.onEnd)}},{key:"addDocumentMouseEvents",value:function(){this.onMouseMoveListener=ma(this.document,"mousemove",this.onMouseMove),this.onMouseUpListener=ma(this.document,"mouseup",this.onEnd)}},{key:"removeDocumentEvents",value:function(){this.onTouchMoveListener&&this.onTouchMoveListener.remove(),this.onTouchUpListener&&this.onTouchUpListener.remove(),this.onMouseMoveListener&&this.onMouseMoveListener.remove(),this.onMouseUpListener&&this.onMouseUpListener.remove()}},{key:"focus",value:function(){this.props.disabled||this.handlesRefs[0].focus()}},{key:"blur",value:function(){var e=this;this.props.disabled||Object.keys(this.handlesRefs).forEach((function(t){e.handlesRefs[t]&&e.handlesRefs[t].blur&&e.handlesRefs[t].blur()}))}},{key:"calcValue",value:function(e){var t=this.props,n=t.vertical,r=t.min,o=t.max,a=Math.abs(Math.max(e,0)/this.getSliderLength());return n?(1-a)*(o-r)+r:a*(o-r)+r}},{key:"calcValueByPos",value:function(e){var t=(this.props.reverse?-1:1)*(e-this.getSliderStart());return this.trimAlignValue(this.calcValue(t))}},{key:"calcOffset",value:function(e){var t=this.props,n=t.min;return 100*((e-n)/(t.max-n))}},{key:"saveHandle",value:function(e,t){this.handlesRefs[e]=t}},{key:"render",value:function(){var e,n=this.props,r=n.prefixCls,a=n.className,i=n.marks,s=n.dots,l=n.step,c=n.included,u=n.disabled,f=n.vertical,p=n.reverse,d=n.min,h=n.max,m=n.children,b=n.maximumTrackStyle,v=n.style,g=n.railStyle,y=n.dotStyle,x=n.activeDotStyle,w=ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"render",this).call(this),O=w.tracks,k=w.handles,E=va()(r,(e={},aa()(e,r+"-with-marks",Object.keys(i).length),aa()(e,r+"-disabled",u),aa()(e,r+"-vertical",f),aa()(e,a,a),e));return o.a.createElement("div",{ref:this.saveSlider,className:E,onTouchStart:u?Ha:this.onTouchStart,onMouseDown:u?Ha:this.onMouseDown,onMouseUp:u?Ha:this.onMouseUp,onKeyDown:u?Ha:this.onKeyDown,onFocus:u?Ha:this.onFocus,onBlur:u?Ha:this.onBlur,style:v},o.a.createElement("div",{className:r+"-rail",style:Xo()({},b,g)}),O,o.a.createElement(ya,{prefixCls:r,vertical:f,reverse:p,marks:i,dots:s,step:l,included:c,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:h,min:d,dotStyle:y,activeDotStyle:x}),k,o.a.createElement(wa,{className:r+"-mark",onClickLabel:u?Ha:this.onClickMarkLabel,vertical:f,marks:i,included:c,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:h,min:d,reverse:p}),m)}}]),t}(e),t.displayName="ComponentEnhancer("+e.displayName+")",t.propTypes=Xo()({},e.propTypes,{min:i.a.number,max:i.a.number,startPoint:i.a.number,step:i.a.number,marks:i.a.object,included:i.a.bool,className:i.a.string,prefixCls:i.a.string,disabled:i.a.bool,children:i.a.any,onBeforeChange:i.a.func,onChange:i.a.func,onAfterChange:i.a.func,handle:i.a.func,dots:i.a.bool,vertical:i.a.bool,style:i.a.object,reverse:i.a.bool,minimumTrackStyle:i.a.object,maximumTrackStyle:i.a.object,handleStyle:i.a.oneOfType([i.a.object,i.a.arrayOf(i.a.object)]),trackStyle:i.a.oneOfType([i.a.object,i.a.arrayOf(i.a.object)]),railStyle:i.a.object,dotStyle:i.a.object,activeDotStyle:i.a.object,autoFocus:i.a.bool,onFocus:i.a.func,onBlur:i.a.func}),t.defaultProps=Xo()({},e.defaultProps,{prefixCls:"rc-slider",className:"",min:0,max:100,step:1,marks:{},handle:function(e){var t=e.index,n=la()(e,["index"]);return delete n.dragging,null===n.value?null:o.a.createElement(ka,Xo()({},n,{key:t}))},onBeforeChange:Ha,onChange:Ha,onAfterChange:Ha,included:!0,disabled:!1,dots:!1,vertical:!1,reverse:!1,trackStyle:[{}],handleStyle:[{}],railStyle:{},dotStyle:{},activeDotStyle:{}}),n}var Ba=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onEnd=function(e){var t=n.state.dragging;n.removeDocumentEvents(),(t||e)&&n.props.onAfterChange(n.getValue()),n.setState({dragging:!1})};var r=void 0!==e.defaultValue?e.defaultValue:e.min,o=void 0!==e.value?e.value:r;return n.state={value:n.trimAlignValue(o),dragging:!1},ra()(!("minimumTrackStyle"in e),"minimumTrackStyle will be deprecated, please use trackStyle instead."),ra()(!("maximumTrackStyle"in e),"maximumTrackStyle will be deprecated, please use railStyle instead."),n}return ta()(t,e),Zo()(t,[{key:"componentDidUpdate",value:function(e,t){if("value"in this.props||"min"in this.props||"max"in this.props){var n=this.props,r=n.value,o=n.onChange,a=void 0!==r?r:t.value,i=this.trimAlignValue(a,this.props);i!==t.value&&(this.setState({value:i}),Pa(a,this.props)&&o(i))}}},{key:"onChange",value:function(e){var t=this.props,n=!("value"in t),r=e.value>this.props.max?Xo()({},e,{value:this.props.max}):e;n&&this.setState(r);var o=r.value;t.onChange(o)}},{key:"onStart",value:function(e){this.setState({dragging:!0});var t=this.props,n=this.getValue();t.onBeforeChange(n);var r=this.calcValueByPos(e);this.startValue=r,this.startPosition=e,r!==n&&(this.prevMovedHandleIndex=0,this.onChange({value:r}))}},{key:"onMove",value:function(e,t){Ra(e);var n=this.state.value,r=this.calcValueByPos(t);r!==n&&this.onChange({value:r})}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,r=Fa(e,t.vertical,n);if(r){Ra(e);var o=this.state.value,a=r(o,this.props),i=this.trimAlignValue(a);if(i===o)return;this.onChange({value:i}),this.props.onAfterChange(i),this.onEnd()}}},{key:"getValue",value:function(){return this.state.value}},{key:"getLowerBound",value:function(){return this.props.min}},{key:"getUpperBound",value:function(){return this.state.value}},{key:"trimAlignValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null===e)return null;var n=Xo()({},this.props,t),r=Ia(e,n);return La(r,n)}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,r=t.vertical,a=t.included,i=t.disabled,s=t.minimumTrackStyle,l=t.trackStyle,c=t.handleStyle,u=t.tabIndex,f=t.ariaLabelForHandle,p=t.ariaLabelledByForHandle,d=t.ariaValueTextFormatterForHandle,h=t.min,m=t.max,b=t.startPoint,v=t.reverse,g=t.handle,y=this.state,x=y.value,w=y.dragging,O=this.calcOffset(x),k=g({className:n+"-handle",prefixCls:n,vertical:r,offset:O,value:x,dragging:w,disabled:i,min:h,max:m,reverse:v,index:0,tabIndex:u,ariaLabel:f,ariaLabelledBy:p,ariaValueTextFormatter:d,style:c[0]||c,ref:function(t){return e.saveHandle(0,t)}}),E=void 0!==b?this.calcOffset(b):0,S=l[0]||l;return{tracks:o.a.createElement(ia,{className:n+"-track",vertical:r,included:a,offset:E,reverse:v,length:O-E,style:Xo()({},s,S)}),handles:k}}}]),t}(o.a.Component);Ba.propTypes={defaultValue:i.a.number,value:i.a.number,disabled:i.a.bool,autoFocus:i.a.bool,tabIndex:i.a.number,reverse:i.a.bool,min:i.a.number,max:i.a.number,startPoint:i.a.number,ariaLabelForHandle:i.a.string,ariaLabelledByForHandle:i.a.string,ariaValueTextFormatterForHandle:i.a.func};var Ua=za(Ba),Va=n(83),Wa=n.n(Va),Ga=function(e){var t=e.value,n=e.handle,r=e.bounds,o=e.props,a=o.allowCross,i=o.pushable,s=Number(i),l=Ia(t,o),c=l;return a||null==n||void 0===r||(n>0&&l<=r[n-1]+s&&(c=r[n-1]+s),n=r[n+1]-s&&(c=r[n+1]-s)),La(c,o)},Ya=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onEnd=function(e){var t=n.state.handle;n.removeDocumentEvents(),(null!==t||e)&&n.props.onAfterChange(n.getValue()),n.setState({handle:null})};var r=e.count,o=e.min,a=e.max,i=Array.apply(void 0,Sa()(Array(r+1))).map((function(){return o})),s="defaultValue"in e?e.defaultValue:i,l=(void 0!==e.value?e.value:s).map((function(t,n){return Ga({value:t,handle:n,props:e})})),c=l[0]===a?0:l.length-1;return n.state={handle:null,recent:c,bounds:l},n}return ta()(t,e),Zo()(t,[{key:"componentDidUpdate",value:function(e,t){var n=this;if(("value"in this.props||"min"in this.props||"max"in this.props)&&(this.props.min!==e.min||this.props.max!==e.max||!Wa()(this.props.value,e.value))){var r=this.props,o=r.onChange,a=r.value||t.bounds;if(a.some((function(e){return Pa(e,n.props)})))o(a.map((function(e){return Ia(e,n.props)})))}}},{key:"onChange",value:function(e){var t=this.props;if(!("value"in t))this.setState(e);else{var n={};["handle","recent"].forEach((function(t){void 0!==e[t]&&(n[t]=e[t])})),Object.keys(n).length&&this.setState(n)}var r=Xo()({},this.state,e).bounds;t.onChange(r)}},{key:"onStart",value:function(e){var t=this.props,n=this.state,r=this.getValue();t.onBeforeChange(r);var o=this.calcValueByPos(e);this.startValue=o,this.startPosition=e;var a=this.getClosestBound(o);if(this.prevMovedHandleIndex=this.getBoundNeedMoving(o,a),this.setState({handle:this.prevMovedHandleIndex,recent:this.prevMovedHandleIndex}),o!==r[this.prevMovedHandleIndex]){var i=[].concat(Sa()(n.bounds));i[this.prevMovedHandleIndex]=o,this.onChange({bounds:i})}}},{key:"onMove",value:function(e,t){Ra(e);var n=this.state,r=this.calcValueByPos(t);r!==n.bounds[n.handle]&&this.moveTo(r)}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,r=Fa(e,t.vertical,n);if(r){Ra(e);var o=this.state,a=this.props,i=o.bounds,s=o.handle,l=i[null===s?o.recent:s],c=r(l,a),u=Ga({value:c,handle:s,bounds:o.bounds,props:a});if(u===l)return;this.moveTo(u,!0)}}},{key:"getValue",value:function(){return this.state.bounds}},{key:"getClosestBound",value:function(e){for(var t=this.state.bounds,n=0,r=1;r=t[r]&&(n=r);return Math.abs(t[n+1]-e)=r.length||o<0)return!1;var a=t+n,i=r[o],s=this.props.pushable,l=n*(e[a]-i);return!!this.pushHandle(e,a,n,s-l)&&(e[t]=i,!0)}},{key:"trimAlignValue",value:function(e){var t=this.state,n=t.handle,r=t.bounds;return Ga({value:e,handle:n,bounds:r,props:this.props})}},{key:"render",value:function(){var e=this,t=this.state,n=t.handle,r=t.bounds,a=this.props,i=a.prefixCls,s=a.vertical,l=a.included,c=a.disabled,u=a.min,f=a.max,p=a.reverse,d=a.handle,h=a.trackStyle,m=a.handleStyle,b=a.tabIndex,v=a.ariaLabelGroupForHandles,g=a.ariaLabelledByGroupForHandles,y=a.ariaValueTextFormatterGroupForHandles,x=r.map((function(t){return e.calcOffset(t)})),w=i+"-handle",O=r.map((function(t,r){var o,a=b[r]||0;return(c||null===b[r])&&(a=null),d({className:va()((o={},aa()(o,w,!0),aa()(o,w+"-"+(r+1),!0),o)),prefixCls:i,vertical:s,offset:x[r],value:t,dragging:n===r,index:r,tabIndex:a,min:u,max:f,reverse:p,disabled:c,style:m[r],ref:function(t){return e.saveHandle(r,t)},ariaLabel:v[r],ariaLabelledBy:g[r],ariaValueTextFormatter:y[r]})}));return{tracks:r.slice(0,-1).map((function(e,t){var n,r=t+1,a=va()((n={},aa()(n,i+"-track",!0),aa()(n,i+"-track-"+r,!0),n));return o.a.createElement(ia,{className:a,vertical:s,reverse:p,included:l,offset:x[r-1],length:x[r]-x[r-1],style:h[t],key:r})})),handles:O}}}],[{key:"getDerivedStateFromProps",value:function(e,t){if("value"in e||"min"in e||"max"in e){var n=(e.value||t.bounds).map((function(n,r){return Ga({value:n,handle:r,bounds:t.bounds,props:e})}));return n.length===t.bounds.length&&n.every((function(e,n){return e===t.bounds[n]}))?null:Xo()({},t,{bounds:n})}return null}}]),t}(o.a.Component);Ya.displayName="Range",Ya.propTypes={autoFocus:i.a.bool,defaultValue:i.a.arrayOf(i.a.number),value:i.a.arrayOf(i.a.number),count:i.a.number,pushable:i.a.oneOfType([i.a.bool,i.a.number]),allowCross:i.a.bool,disabled:i.a.bool,reverse:i.a.bool,tabIndex:i.a.arrayOf(i.a.number),min:i.a.number,max:i.a.number,ariaLabelGroupForHandles:i.a.arrayOf(i.a.string),ariaLabelledByGroupForHandles:i.a.arrayOf(i.a.string),ariaValueTextFormatterGroupForHandles:i.a.arrayOf(i.a.func)},Ya.defaultProps={count:1,allowCross:!0,pushable:!1,tabIndex:[],ariaLabelGroupForHandles:[],ariaLabelledByGroupForHandles:[],ariaValueTextFormatterGroupForHandles:[]};var Xa=za(Ya);function Ka(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}function $a(e){return e instanceof HTMLElement?e:ha.a.findDOMNode(e)}function qa(e){return(qa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Za(e,t){"function"==typeof e?e(t):"object"===qa(e)&&e&&"current"in e&&(e.current=t)}function Ja(){for(var e=arguments.length,t=new Array(e),n=0;n=0&&t.left>=0&&t.bottom>t.top&&t.right>t.left?t:null}function ts(e){var t,n,r;if(qi.isWindow(e)||9===e.nodeType){var o=qi.getWindow(e);t={left:qi.getWindowScrollLeft(o),top:qi.getWindowScrollTop(o)},n=qi.viewportWidth(o),r=qi.viewportHeight(o)}else t=qi.offset(e),n=qi.outerWidth(e),r=qi.outerHeight(e);return t.width=n,t.height=r,t}function ns(e,t){var n=t.charAt(0),r=t.charAt(1),o=e.width,a=e.height,i=e.left,s=e.top;return"c"===n?s+=a/2:"b"===n&&(s+=a),"c"===r?i+=o/2:"r"===r&&(i+=o),{left:i,top:s}}function rs(e,t,n,r,o){var a=ns(t,n[1]),i=ns(e,n[0]),s=[i.left-a.left,i.top-a.top];return{left:Math.round(e.left-s[0]+r[0]-o[0]),top:Math.round(e.top-s[1]+r[1]-o[1])}}function os(e,t,n){return e.leftn.right}function as(e,t,n){return e.topn.bottom}function is(e,t,n){var r=[];return qi.each(e,(function(e){r.push(e.replace(t,(function(e){return n[e]})))})),r}function ss(e,t){return e[t]=-e[t],e}function ls(e,t){return(/%$/.test(e)?parseInt(e.substring(0,e.length-1),10)/100*t:parseInt(e,10))||0}function cs(e,t){e[0]=ls(e[0],t.width),e[1]=ls(e[1],t.height)}function us(e,t,n,r){var o=n.points,a=n.offset||[0,0],i=n.targetOffset||[0,0],s=n.overflow,l=n.source||e;a=[].concat(a),i=[].concat(i),s=s||{};var c={},u=0,f=es(l),p=ts(l);cs(a,p),cs(i,t);var d=rs(p,t,o,a,i),h=qi.merge(p,d);if(f&&(s.adjustX||s.adjustY)&&r){if(s.adjustX&&os(d,p,f)){var m=is(o,/[lr]/gi,{l:"r",r:"l"}),b=ss(a,0),v=ss(i,0);(function(e,t,n){return e.left>n.right||e.left+t.widthn.bottom||e.top+t.height=n.left&&o.left+a.width>n.right&&(a.width-=o.left+a.width-n.right),r.adjustX&&o.left+a.width>n.right&&(o.left=Math.max(n.right-a.width,n.left)),r.adjustY&&o.top=n.top&&o.top+a.height>n.bottom&&(a.height-=o.top+a.height-n.bottom),r.adjustY&&o.top+a.height>n.bottom&&(o.top=Math.max(n.bottom-a.height,n.top)),qi.mix(o,a)}(d,p,f,c))}return h.width!==p.width&&qi.css(l,"width",qi.width(l)+h.width-p.width),h.height!==p.height&&qi.css(l,"height",qi.height(l)+h.height-p.height),qi.offset(l,{left:h.left,top:h.top},{useCssRight:n.useCssRight,useCssBottom:n.useCssBottom,useCssTransform:n.useCssTransform,ignoreShake:n.ignoreShake}),{points:o,offset:a,targetOffset:i,overflow:c}}function fs(e,t,n){var r=n.target||t;return us(e,ts(r),n,!function(e){var t=es(e),n=ts(e);return!t||n.left+n.width<=t.left||n.top+n.height<=t.top||n.left>=t.right||n.top>=t.bottom}(r))}function ps(e,t,n){var r,o,a=qi.getDocument(e),i=a.defaultView||a.parentWindow,s=qi.getWindowScrollLeft(i),l=qi.getWindowScrollTop(i),c=qi.viewportWidth(i),u=qi.viewportHeight(i);r="pageX"in t?t.pageX:s+t.clientX,o="pageY"in t?t.pageY:l+t.clientY;var f=r>=0&&r<=s+c&&o>=0&&o<=l+u;return us(e,{left:r,top:o,width:0,height:0},function(e){for(var t=1;t1&&(p=o.a.createElement("div",{className:"".concat(n,"-content")},s)),o.a.createElement("div",{ref:t,className:va()(r,!a&&"".concat(e.hiddenClassName)),onMouseEnter:l,onMouseLeave:c,onMouseDown:u,onTouchStart:f,style:i},p)}));zs.displayName="PopupInner";var Bs=zs;function Us(e){var t=e.prefixCls,n=e.motion,r=e.animation,o=e.transitionName;return n||(r?{motionName:"".concat(t,"-").concat(r)}:o?{motionName:o}:null)}function Vs(e){return(Vs="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ws(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Gs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ys(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var El=Object(r.forwardRef)((function(e,t){var n=e.overlayClassName,a=e.trigger,i=void 0===a?["hover"]:a,s=e.mouseEnterDelay,l=void 0===s?0:s,c=e.mouseLeaveDelay,u=void 0===c?.1:c,f=e.overlayStyle,p=e.prefixCls,d=void 0===p?"rc-tooltip":p,h=e.children,m=e.onVisibleChange,b=e.afterVisibleChange,v=e.transitionName,g=e.animation,y=e.placement,x=void 0===y?"right":y,w=e.align,O=void 0===w?{}:w,k=e.destroyTooltipOnHide,E=void 0!==k&&k,S=e.defaultVisible,_=e.getTooltipContainer,j=kl(e,["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer"]),C=Object(r.useRef)(null);Object(r.useImperativeHandle)(t,(function(){return C.current}));var P=function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},n=t.isTarget,r=t.showLabel,a=o.a.createElement(vc,Ac({isTarget:n},e),o.a.createElement("div",{className:"label"},e.label),o.a.createElement("div",{className:"value"},e.value));return o.a.createElement(lc,Ac({isTarget:n},e),r&&a,o.a.createElement(fc,Ac({isTarget:n,showLabel:r},e)))},Dc=function(e){if(!e.color.ranges||!Re(e)){var t=Ve(e.color);return{trackStyle:{backgroundColor:t},activeDotStyle:e.theme.dark?{background:t,boxShadow:"0 0 6px 1px ".concat(t)}:{borderColor:t}}}return{railStyle:{backgroundImage:"".concat(Ue(e),", linear-gradient(0deg, #000, #000)"),backgroundBlendMode:e.theme.dark?"none":"overlay"},trackStyle:{mixBlendMode:"overlay",background:e.theme.dark?"#fff":"#000"},dotStyle:{display:"none"}}},Nc=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=function(e,t){return!t||"object"!==Oc(t)&&"function"!=typeof t?Pc(e):t}(this,Cc(t).call(this,e))).state={value:null!=e.value?e.value:e.min,trackStyle:Dc(e)},n.onChange=n.onChange.bind(Pc(n)),n.onAfterChange=n.onAfterChange.bind(Pc(n)),n.renderSliderHandle=n.renderSliderHandle.bind(Pc(n)),n.renderTargets=n.renderTargets.bind(Pc(n)),n.calcLabelOffset=n.calcLabelOffset.bind(Pc(n)),n}var n,r,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Mc(e,t)}(t,e),n=t,(r=[{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t={},n=Object(q.b)(this.props);void 0!==e.value&&e.value!==this.state.value&&(t.value=e.value),jl()(e.color,this.props.color)||(t.trackStyle=Dc(Sc({},n,{},e))),this.setState(t)}},{key:"onChange",value:function(e){var t=this.props,n=t.updatemode,r=t.setProps;this.props.value&&"drag"===n||this.setState({value:e}),"drag"===n&&r&&r({value:e})}},{key:"onAfterChange",value:function(e){var t=this.props,n=t.updatemode,r=t.setProps;"mouseup"===n&&r&&r({value:e})}},{key:"renderSliderHandle",value:function(e){var t=this.props.handleLabel,n=Sc({},Object(q.b)(this.props),{},e);return t?(n=Sc({},n,{value:t.showCurrentValue&&this.state.value,label:t.label||(t instanceof Object?" ":t),color:t.color||Ve(this.props.color),style:t.style}),Tc(n,{showLabel:!0})):Tc(n)}},{key:"renderTargets",value:function(){var e=Object(q.b)(this.props);return Object.entries(this.props.targets).reduce((function(t,n){var r=kc(n,2),o=r[0],a=r[1],i=Sc({},e,{label:a.label||a,value:a.showCurrentValue&&o,color:a.color,style:a.style}),s=Tc(i,{isTarget:!0,showLabel:!!a});return t[o]={style:bc,label:s},t}),{})}},{key:"calcLabelOffset",value:function(e){var t=e.vertical,n=e.labelPosition,r=e.marks,o=e.targets,a=e.handleLabel;if(t)return null;if("bottom"===n)return"transform: translateY(".concat(r?20:0,"px);");var i=!1;return Object.values(o).map((function(e){e.showCurrentValue&&(i=!0)})),a&&a.showCurrentValue&&(i=!0),"transform: translateY(".concat(i?-38:-16,"px);")}},{key:"render",value:function(){var e=this.state.value,t=this.props,n=t.className,r=t.id,a=t.theme,i=t.label,s=t.size,c=t.vertical,u=t.style,f=t.marks,p=Object(q.a)("slider",a.dark),d=Object(q.b)(this.props),h=this.props.vertical?Sc({},u,{marginLeft:"45px"}):Sc({},u,{marginTop:"45px"});return h=this.props.fullSize?this.props.vertical?Sc({},h,{height:"100%"}):Sc({},h,{width:"100%"}):h,o.a.createElement("div",{id:r,style:h,className:p+(n?" "+n:"")},o.a.createElement($.a,Ac({className:p+"__label",labelCSS:i?this.calcLabelOffset(this.props):null},d),o.a.createElement(sc,{fullSize:this.props.fullSize,size:s,vertical:c},o.a.createElement(Sl,Ac({className:p+"__slider",onChange:this.onChange,onAfterChange:this.onAfterChange,value:e,handle:this.renderSliderHandle,marks:Sc({},f,{},this.renderTargets())},this.state.trackStyle,Object(l.a)(["setProps","updatemode","value","marks"],d))))))}}])&&jc(n.prototype,r),a&&jc(n,a),t}(r.Component);Nc.defaultProps=Vc,Nc.propTypes=Wc;var Ic=Object(s.d)(Nc);function Lc(e){return(Lc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Rc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Fc(e,t){for(var n=0;no){b.current.innerHTML=e.exceedMessage?"string"==typeof e.exceedMessage?e.exceedMessage:e.exceedMessage(r,o)||"":""}else if(r div {\n margin-top: 56px;\n line-height: 28px;\n }\n"]);return Zc=function(){return e},e}function Jc(){var e=eu(["\n width: ","px;\n height: ","px;\n border-radius: 50%;\n background-color: ",";\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n bottom: -","px;\n z-index: -1;\n"]);return Jc=function(){return e},e}function Qc(){var e=eu(["\n display: flex;\n flex-direction: column;\n align-items: center;\n"]);return Qc=function(){return e},e}function eu(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var tu=s.c.div(Qc()),nu=s.c.div(Jc(),30,30,(function(e){return e.on?e.color||e.theme.primary:e.theme.secondary}),20);nu.defaultProps={theme:c.e};var ru=s.c.div(Zc());function ou(){return(ou=Object.assign||function(e){for(var t=1;t1?arguments[1]:void 0,b=void 0!==m,v=0,g=u(p);if(b&&(m=r(m,h>2?arguments[2]:void 0,2)),null==g||d==Array&&s(g))for(n=new d(t=l(p.length));t>v;v++)c(n,v,b?m(p[v],v):p[v]);else for(f=g.call(p),n=new d;!(o=f.next()).done;v++)c(n,v,b?i(f,m,[o.value,v],!0):o.value);return n.length=v,n}})},function(e,t,n){var r=n(26);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var a=e.return;throw void 0!==a&&r(a.call(e)),t}}},function(e,t,n){var r=n(35),o=n(16)("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||a[o]===e)}},function(e,t,n){"use strict";var r=n(19),o=n(33);e.exports=function(e,t,n){t in e?r.f(e,t,o(0,n)):e[t]=n}},function(e,t,n){var r=n(147),o=n(16)("iterator"),a=n(35);e.exports=n(10).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||a[r(e)]}},function(e,t,n){var r=n(45),o=n(16)("toStringTag"),a="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,i;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:a?r(t):"Object"==(i=r(t))&&"function"==typeof t.callee?"Arguments":i}},function(e,t,n){var r=n(16)("iterator"),o=!1;try{var a=[7][r]();a.return=function(){o=!0},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var a=[7],i=a[r]();i.next=function(){return{done:n=!0}},a[r]=function(){return i},e(a)}catch(e){}return n}},function(e,t,n){(function(t){(function(){var n,r,o,a,i,s;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:null!=t&&t.hrtime?(e.exports=function(){return(n()-i)/1e6},r=t.hrtime,a=(n=function(){var e;return 1e9*(e=r())[0]+e[1]})(),s=1e9*t.uptime(),i=a-s):Date.now?(e.exports=function(){return Date.now()-o},o=Date.now()):(e.exports=function(){return(new Date).getTime()-o},o=(new Date).getTime())}).call(this)}).call(this,n(63))},function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}(e.exports="function"==typeof Object.keys?Object.keys:n).shim=n},function(e,t){var n="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();function r(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function o(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}(t=e.exports=n?r:o).supported=r,t.unsupported=o},function(e,t,n){var r=n(153),o=n(154);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[e.i,o,""]]);var a={insert:function(e){document.head.insertBefore(e,document.head.firstElementChild)},singleton:!1},i=(r(o,a),o.locals?o.locals:{});e.exports=i},function(e,t,n){"use strict";var r,o=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},a=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),i=[];function s(e){for(var t=-1,n=0;n0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;if(isNaN(e))return e;var n=t.toString().split("."),r=ke(n,2),o=(r[0],r[1]),a=o?o.length:0;return e.toFixed(a)},_e=function(e){var t=e.min,n=e.max,r=e.value;return null==r||rn?n:r},je=function(e){var t=e.min,n=e.max,r=e.value,o=e.progressionTarget,a=void 0===o?100:o;return r=Number(r),1*Math.abs(r-t)/Math.abs(n-t)*a},Ce=function(e,t){return Number(Math.round(e+"e"+t)+"e-"+t)},Pe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9999;return Math.floor(Math.random()*(t-e+1))+e},Me=n(81),Ae=n.n(Me);function Te(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e))&&"[object Arguments]"!==Object.prototype.toString.call(e))return;var n=[],r=!0,o=!1,a=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function De(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);ta&&f.push({key:p,subKey:o,index:0}),n[p][1]>a&&f.push({key:p,subKey:o,index:1}),n[p][0]i&&(n[p][0]=i),s[0]==n[p][1]&&n[p][1]>i&&(n[p][1]=i),s[s.length-1]==n[p][0]&&n[p][0]1&&void 0!==arguments[1]?arguments[1]:10;return"e"===t&&(t=Math.exp(1)),Math.log(e)/Math.log(t)},generateLogFormatter:function(e){var t=e.base,n=void 0===t?10:t,r=e.isSVG,a=void 0!==r&&r;return function(e){return a?o.a.createElement("tspan",null,n,o.a.createElement("tspan",{dy:"-6px"},e)):o.a.createElement("span",null,n,o.a.createElement("sup",null,e))}},formatValue:function(e,t){return o.a.createElement(Yt,null,"~",t,o.a.createElement("sup",null,Ce(e,2)))},genLogMarks:function(e,t){var n=e.min,r=e.max,a=e.step,i=void 0===a?1:a,s=e.base,l=void 0===s?10:s,c=e.marks;if(!c){var u=n;for(c={};u<=r;)c[u]=!0,u+=i}return Object.keys(c).forEach((function(e){"boolean"==typeof c[e]&&(c[e]=t?o.a.createElement("tspan",null,l,o.a.createElement("tspan",{dy:"-6px"},e)):o.a.createElement("span",null,l,o.a.createElement("sup",null,e)))})),c}};function Kt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qt(e){var t=function(e){var t=e.min,n=e.max,r=e.scale,o=void 0===r?{}:r,a=e.formatter,i={},s=null!=o.start,l=null!=o.interval,c=null!=o.labelInterval;i.min=t,i.max=n,i.start=s?o.start:t,i.interval=l?o.interval:function(e,t){var n=Math.ceil,r=1*Math.abs(t-e)/10;return r>1?n(r):(o=r,Number(o.toFixed(2)));var o}(i.start,n),i.labelInterval=c?o.labelInterval:2,i.custom=o.custom||{},i.formatter=a||Zt;var u=!s&&!l&&!c,f=Object.keys(i.custom).length;return i.onlyRenderCustom=f&&u,i.start=i.start!=t?t:i.start,i}(e),n=function(e){for(var t=1;to){h.current.innerHTML=e.exceedMessage?"string"==typeof e.exceedMessage?e.exceedMessage:e.exceedMessage(r,o)||"":""}else if(r=10?.05*n:.5,o=n-2*r;return Object(s.b)(cn(),e.vertical?"".concat(o,"px"):"100%",e.vertical?"100%":"".concat(o,"px"),e.vertical?"".concat(r,"px 0"):"0 ".concat(r,"px"))}),(function(e){return e.theme.dark&&Sn}));En.defaultProps={theme:c.e};var Sn=Object(s.b)(ln(),(function(e){var t=e.color,n=e.theme;if(!e.gradient)return Object(s.b)(sn(),t||n.primary)}),(function(e){var t=e.color,n=e.theme;return"2px 2px 6px 1px rgba(0, 0, 0, 0.45), inset 1px 1px 2px 0 rgba(255, 255, 255, 0.3),\n 1px 1px 1px 0px rgba(0, 0, 0, 0.6), 0 0 3px 0px ".concat(t||n.primary)})),_n=s.c.div(an(),(function(e){return e.vertical?Object(s.b)(on()):""}));function jn(){return(jn=Object.assign||function(e){for(var t=1;t=n[0]&&e<=n[1]}))[0];return n&&n[0]},Dn=function(e){var t=e.step,n=e.min,r=e.max,a=e.label,i=e.labelPosition,s=e.id,l=e.className,c=e.color,u=e.size,f=e.style,p=e.showCurrentValue,d=e.vertical,h=e.theme,m=e.value||n,b=null,v=[],g=Math.max(Math.min(r,m),n);c.gradient&&Re({color:c,min:n,max:r})&&(b=function(e){var t=e.color,n=e.min,r=e.max,o=0,a=Be(t.ranges).map((function(e){var t=Te(e,2),a=t[0],i=t[1],s=1*(i[1]-i[0])/(r-n),l=o;return o=o+s,{color:a,pos:l}}));return Ae()(a)}({color:c,min:n,max:r}));for(var y=Object(q.a)("graduatedbar",h),x=Object(q.b)(e),w=n;wthis.props.min&&ee?this.props.min:this.props.max}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){void 0!==e.value&&this.setState({value:e.value}),this.state.max!=e.max&&this.setState({max:e.max instanceof Number?e.max:this.state.max}),this.state.min!=e.min&&this.setState({min:e.min instanceof Number?e.min:this.state.min})}},{key:"componentDidMount",value:function(){window.addEventListener("mouseup",this.onMouseUp,!1),n(42)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("mouseup",this.onMouseUp,!1)}},{key:"onMouseDown",value:function(){this.setState({isDragging:!0})}},{key:"onMouseUp",value:function(){this.state.isDragging&&this.setState((function(e){return{rotation:e.currentDeg,isDragging:!1,startAngle:-1}}))}},{key:"onMouseMove",value:function(e){if(this.state.isDragging){var t=this.props,n=t.min,r=t.max,o=this.state.rotation,a=this.state.startAngle;e.touches&&(e=e.touches[0]);var i=this.knobElement.getBoundingClientRect(),s=i.width/2+i.left,l=i.height/2+i.top,u=Math.atan2(e.clientX-s,e.clientY-l)*(180/Math.PI);e.clientX-s>=0?u=Math.abs(360-u)+180:u-=180,u=Math.abs(u),-1===a&&(a=u,this.setState({startAngle:a}));var f=Math.floor(u-a+o);f=Math.min(f,c.b),f=Math.max(f,0),this.setState({currentDeg:f}),this.setValue(Ce(function(e){var t=e.min,n=e.max,r=e.deg;return je({min:0,max:c.b,value:r,progressionTarget:n-t})+t}({min:n,max:r,deg:f}),2))}}},{key:"setValue",value:function(e){this.setState({value:e}),this.props.setProps&&this.props.setProps({value:e})}},{key:"render",value:function(){var e=this,t=this.props,n=t.min,r=t.max,a=t.value,i=void 0===a?this.props.min:a,s=this.props,l=s.id,c=s.className,u=s.labelPosition,f=s.color,p=s.style,d=s.disabled,h=s.theme,m=s.textColor,b=je({min:n,max:r,value:this.getValue(i),progressionTarget:1}),v=m||Ve(f),g=Object(q.a)("knob",h),y=Object(q.b)(this.props),x=o.a.createElement(o.a.Fragment,null,o.a.createElement(gt,{className:g+"__current-value",valueColor:v,valueSize:Math.min(13.3333*(this.props.size+32)/100,32),units:!1,css:"transform: translateY(0%); top: 0;"},i.toFixed(this.props.digits)));return o.a.createElement("div",{id:l,className:g+(c?" "+c:""),style:p},o.a.createElement($.a,Kn({className:g+"__label"},y,{labelCSS:"top"===u?null:"transform: translateY(-40px);"}),o.a.createElement(Yn,{className:g+"__container",colorValue:v,color:Ve(f)},this.props.showCurrentValue&&x,o.a.createElement(Fn,Kn({progress:b},y,this.state,{min:this.props.min!=this.state.min?this.props.min:this.state.min,max:this.props.max!=this.state.max?this.props.max:this.state.max,value:this.getValue(i),scale:qt(this.props),currentDeg:Qn({min:this.props.min,max:this.props.max,value:this.getValue(i)}),refFunc:function(t){return e.knobElement=t},onMouseDown:d?this.noop:this.onMouseDown,onMouseUp:d?this.noop:this.onMouseUp,onMouseMove:d?this.noop:this.onMouseMove})))))}}])&&$n(r.prototype,a),i&&$n(r,i),t}(r.Component);er.defaultProps={min:0,max:10,theme:c.e,labelPosition:"top",persisted_props:["value"],persistence_type:"local",size:114},er.propTypes={id:i.a.string,value:i.a.number,color:i.a.oneOfType([i.a.string,i.a.shape({default:i.a.string,gradient:i.a.bool,ranges:i.a.shape({color:i.a.arrayOf(i.a.number)})})]),size:i.a.number,min:i.a.number,max:i.a.number,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),scale:i.a.shape({start:i.a.number,interval:i.a.number,labelInterval:i.a.number,custom:i.a.oneOfType([i.a.number,i.a.shape({style:i.a.string,label:i.a.string})])}),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"]),showCurrentValue:i.a.bool,textColor:i.a.string,digits:i.a.number};var tr=Object(s.d)(er);tr.defaultProps=er.defaultProps;var nr=tr;function rr(){var e=lr(["\n & .darkLED-fill {\n fill: ",";\n }\n"]);return rr=function(){return e},e}function or(){var e=lr(["\n border-radius: 3px;\n padding: 12px 8px 12px 14px;\n border: 1px solid ",";\n background: ",";\n"]);return or=function(){return e},e}function ar(){var e=lr(["\n padding: 12px 8px 4px 16px;\n background-color: #22272a;\n background-image: linear-gradient(145deg, rgba(255, 255, 255, 0.05) 0%, rgba(0, 0, 0, 0.5) 100%);\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1);\n"]);return ar=function(){return e},e}function ir(){var e=lr(["\n background-color: ",";\n "]);return ir=function(){return e},e}function sr(){var e=lr(["\n display: inline-flex;\n flex-direction: row;\n ",";\n ","\n"]);return sr=function(){return e},e}function lr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var cr=s.c.div(sr(),(function(e){return e.theme.dark?ur:fr}),(function(e){var t=e.backgroundColor;return Object(s.b)(ir(),t)})),ur=Object(s.b)(ar()),fr=Object(s.b)(or(),(function(e){return e.theme.detail}),(function(e){return e.backgroundColor}));cr.defaultProps={theme:c.e};var pr=s.c.div(rr(),(function(e){return e.color})),dr={0:["A","B","C","D","E","F"],1:["B","C"],2:["A","B","G","E","D"],3:["A","B","G","C","D"],4:["F","G","B","C"],5:["A","F","G","C","D"],6:["A","F","G","C","D","E"],7:["A","B","C"],8:["A","B","C","D","E","F","G"],9:["A","B","C","D","F","G"],"-":["G"]},hr={A:{base:"M3.778 3.778L6.555 1h16.667L26 3.778l-2.778 2.778H6.555L3.778 3.778z",stroke:"M3.778 3.778L6.555 1h16.667L26 3.778l-2.778 2.778H6.555L3.778 3.778z"},B:{base:"M26 3.778l2.778 2.777v16.667L26 26l-2.778-2.778V6.555L26 3.778z",stroke:"M26 3.778l2.778 2.777v16.667L26 26l-2.778-2.778V6.555L26 3.778z"},C:{base:"M26 26l2.778 2.778v16.666L26 48.222l-2.778-2.778V28.778L26 26z",stroke:"M26 26l2.778 2.778v16.666L26 48.222l-2.778-2.778V28.778L26 26z"},D:{base:"M26 48.222L23.222 51H6.555l-2.777-2.778 2.777-2.778h16.667L26 48.222z",stroke:"M26 48.222L23.222 51H6.555l-2.777-2.778 2.777-2.778h16.667L26 48.222z"},E:{base:"M3.778 48.222L1 45.444V28.778L3.778 26l2.778 2.778v16.666l-2.778 2.778z",stroke:"M3.778 48.222L1 45.444V28.778L3.778 26l2.778 2.778v16.666l-2.778 2.778z"},F:{base:"M3.778 26L1 23.222V6.555l2.778-2.777 2.778 2.777v16.667L3.778 26z",stroke:"M3.778 26L1 23.222V6.555l2.778-2.777 2.778 2.777v16.667L3.778 26z"},G:{base:"M3.778 26l2.777-2.778h16.667L26 26l-2.778 2.778H6.555L3.778 26z",stroke:"M3.778 26l2.777-2.778h16.667L26 26l-2.778 2.778H6.555L3.778 26z"}},mr=function(e){var t=e.paths,n=t.base,r=t.stroke,a=e.fillColor,i=e.strokeColor;return o.a.createElement("g",null,o.a.createElement("path",{fill:a,fillRule:"evenodd",d:n,clipRule:"evenodd"}),o.a.createElement("path",{stroke:i,strokeWidth:".75",d:r}))},br=function(e){var t=e.fillColor,n=e.strokeColor;return o.a.createElement("g",{transform:"translate(29 46)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"}))},vr=function(e){var t=e.fillColor,n=e.strokeColor;return o.a.createElement("g",null,o.a.createElement("g",{transform:"translate(32 36)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"})),o.a.createElement("g",{transform:"translate(32 9)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"})))},gr=function(e){var t=e.value,n=e.hasColon,r=e.hasDecimal,a=e.color,i=e.backgroundColor,s=e.size,l=e.className,c=xt()(i).darken(.2).fade(.85),u=dr[t].map((function(e){return o.a.createElement(mr,{key:e,fillColor:a,strokeColor:i,paths:hr[e]})})),f=["A","B","C","D","E","F","G"].map((function(e){return o.a.createElement(mr,{key:e,fillColor:c,strokeColor:i,paths:hr[e]})})),p=n?s:s*(6/7),d=s*(9/7);return o.a.createElement("div",{className:l},o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:p,height:d},o.a.createElement("g",{fill:"none",style:{transform:"scale(".concat(Number(s)/42,")")}},f,u,n&&o.a.createElement(vr,{fillColor:a,strokeColor:i}),r&&o.a.createElement(br,{fillColor:a,strokeColor:i}))))},yr=function(e){var t=e.value,n=e.hasColon,r=e.hasDecimal,a=e.color,i=e.size,s=e.className,l=dr[t].map((function(e){return ye[e]})),c=n?i:i*(6/7),u=i*(9/7);return o.a.createElement(pr,{className:s,color:a},o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:c,height:u},ge,o.a.createElement("g",{fill:"none",fillRule:"evenodd",filter:"url(#darkLED-a)",style:{transform:"scale(".concat(Number(i)/42,")")}},l,n&&we,r&&xe)))},xr=function(e){return e.theme.dark?o.a.createElement(yr,e):o.a.createElement(gr,e)},wr=/^(\-)?((\.|:)?[0-9])*$/,Or=wr.test.bind(wr),kr=function(e){var t=Object(q.a)("leddisplay",e.theme),n=Or(e.value)?function(e,t){var n=e.value,r=e.color,a=e.backgroundColor,i=e.theme,s=e.size,l=n.toString().split("").reverse(),c=[];!function(e){var t=!1;"-"===e[e.length-1]&&(t=!0,e.pop());var n=e[e.length-1];[".",":"].includes(n)&&e.push("0");t&&e.push("-")}(l);var u=0;for(;l.length;){var f=l.pop(),p=l.pop();c.push(o.a.createElement(xr,{className:t+"__digit",theme:i,key:u++,value:f,hasColon:":"===p,hasDecimal:"."===p,color:r,backgroundColor:a,size:s})),p&&"."!==p&&":"!==p&&l.push(p)}return c}(e,t):null,r=o.a.createElement(cr,{backgroundColor:e.backgroundColor},n),a=Object(q.b)(e);return o.a.createElement("div",{id:e.id,className:t+(e.className?" "+e.className:""),style:e.style},o.a.createElement($.a,a,n?r:"Invalid Input"))};kr.defaultProps={color:c.c.PRIMARY,backgroundColor:"#fff",size:42,theme:c.e,labelPosition:"top"},kr.propTypes={id:i.a.string,value:i.a.oneOfType([i.a.number,i.a.string]),color:i.a.string,backgroundColor:i.a.string,size:i.a.number,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object};var Er=Object(s.d)(kr),Sr=n(15),_r=n.n(Sr);_r.a.prototype.UNSAFE_componentWillMount=_r.a.prototype.componentWillMount,_r.a.prototype.UNSAFE_componentWillReceiveProps=_r.a.prototype.componentWillReceiveProps,_r.a.prototype.UNSAFE_componentWillUpdate=_r.a.prototype.componentWillUpdate,delete _r.a.prototype.componentWillMount,delete _r.a.prototype.componentWillReceiveProps,delete _r.a.prototype.componentWillUpdate;var jr=_r.a;function Cr(e){return(Cr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Pr(){return(Pr=Object.assign||function(e){for(var t=1;t=this.props.min&&e<=this.props.max&&(this.setState({value:e}),this.props.setProps&&this.props.setProps({value:e}))}},{key:"render",value:function(){var e=this.props,t=e.size,n=e.theme,r=e.style,a=e.className,i=e.id,s=e.disabled,l=e.min,u=e.max,f={background:"none",boxShadow:"none",border:"none",color:n.secondary,cursor:"pointer"},p=Math.max(this.state.value?16-2*this.state.value.toString().length:16,10),d={borderRadius:3,border:n.dark?"none":"1px solid ".concat(c.c.GREY),outline:"none",paddingRight:p,paddingLeft:p,paddingTop:8,paddingBottom:8,width:t||56,color:n.dark?"#fff":c.c.OFF_WHITE,backgroundColor:n.dark?"#22272a":"#fff",fontSize:14,boxSizing:"border-box"},h=Object(q.a)("numericinput",n),m=Object(q.b)(this.props);return o.a.createElement("div",{id:i,className:h+(a?" "+a:""),style:r},o.a.createElement($.a,Pr({className:h+"__label"},m),o.a.createElement(jr,{className:h+"__input",disabled:s,style:{input:d,"input:not(.form-control)":d,btn:f,"btn:hover":f,"btn:active":f,"input:disabled":{opacity:.65,cursor:"not-allowed"}},min:l,max:u,value:this.state.value,onChange:this.setValue,mobile:!1})))}}])&&Mr(n.prototype,r),a&&Mr(n,a),t}(r.Component);Nr.defaultProps={min:0,max:10,theme:c.e,labelPosition:"top",persisted_props:["value"],persistence_type:"local",style:{display:"flex",justifyContent:"center"}},Nr.propTypes={id:i.a.string,value:i.a.number,size:i.a.number,min:i.a.number,max:i.a.number,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"])};var Ir=Object(s.d)(Nr);Ir.defaultProps=Nr.defaultProps;var Lr=Ir;function Rr(){var e=Wr(["\n box-shadow: 0 0 8px 2px ",";\n "]);return Rr=function(){return e},e}function Fr(){var e=Wr(["\n width: ","px;\n height: ","px;\n "]);return Fr=function(){return e},e}function Hr(){var e=Wr(["\n "," border-radius: 100%;\n padding: 0;\n margin-bottom: 8px;\n\n &::before,\n &::after {\n left: 4%;\n border-radius: 100%;\n transition: all 0.1s ease-in;\n }\n\n &::before {\n top: 8%;\n width: 86%;\n height: 86%;\n }\n\n &::after {\n top: 4%;\n width: 92%;\n height: 92%;\n\n ",";\n }\n\n &:hover::before {\n background-color: rgba(0, 0, 0, 0.8);\n }\n\n &:hover::after {\n box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.66);\n }\n\n &:focus::after,\n &:active::after {\n box-shadow: ",";\n }\n"]);return Hr=function(){return e},e}function zr(){var e=Wr(["\n width: ","px;\n height: ","px;\n "]);return zr=function(){return e},e}function Br(){var e=Wr(["\n border-radius: 50%;\n box-sizing: border-box;\n background: #fff;\n border: 1px solid ",";\n "," margin-bottom: ",";\n padding: 0;\n\n &:focus,\n &:hover {\n border-color: ",";\n }\n"]);return Br=function(){return e},e}function Ur(){var e=Wr(["\n cursor: pointer;\n outline: none;\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:disabled {\n opacity: ",";\n cursor: not-allowed;\n }\n\n ",";\n"]);return Ur=function(){return e},e}function Vr(){var e=Wr(["\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n\n & svg {\n margin: 0 auto;\n }\n"]);return Vr=function(){return e},e}function Wr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Gr=Object(s.c)("div")(Vr()),Yr=s.c.button(Ur(),(function(e){return e.theme.dark?1:.65}),(function(e){return e.theme.dark?Kr:Xr})),Xr=Object(s.b)(Br(),(function(e){return e.theme.secondary}),(function(e){var t=e.size;return Object(s.b)(zr(),t,t)}),(function(e){var t=e.size;return"".concat(.0625*t,"px")}),(function(e){return e.theme.secondary})),Kr=Object(s.b)(Hr(),(function(e){var t=e.size;return Object(s.b)(Fr(),t,t)}),(function(e){var t=e.on,n=e.color,r=e.theme;return t?Object(s.b)(Rr(),n||r.primary):""}),(function(e){var t=e.on,n=e.color,r=e.theme;return t?"0 0 8px 2px ".concat(n||r.primary):"0 0 3px 0 rgba(0,0,0,0.66)"}));Yr.defaultProps={theme:c.e};var $r=function(e){var t=e.color,n=e.theme,r=e.on,a=e.size;return o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:a,height:a,viewBox:"0 0 14 14"},o.a.createElement("path",{fill:r?t||n.primary:n.secondary,fillRule:"evenodd",d:"M24.5173333,14.68 C25.2764482,15.3271143 25.8799978,16.1111065 26.328,17.032 C26.7760022,17.9777825 27,18.9671059 27,20 C27,21.2693397 26.6826698,22.4453279 26.048,23.528 C25.4257747,24.5857831 24.5857831,25.4257747 23.528,26.048 C22.4453279,26.6826698 21.2693397,27 20,27 C18.7306603,27 17.5546721,26.6826698 16.472,26.048 C15.4142169,25.4257747 14.5742253,24.5857831 13.952,23.528 C13.3173302,22.4453279 13,21.2693397 13,20 C13,18.9671059 13.2302199,17.9777825 13.6906667,17.032 C14.1262244,16.1111065 14.7235518,15.3271143 15.4826667,14.68 L16.5653333,15.7626667 C15.9555525,16.2728914 15.4764462,16.8888853 15.128,17.6106667 C14.7546648,18.3697816 14.568,19.1662181 14.568,20 C14.568,20.9955605 14.8106642,21.9102181 15.296,22.744 C15.7813358,23.5653374 16.4346626,24.2186642 17.256,24.704 C18.0897819,25.1893358 19.0044395,25.432 20,25.432 C20.9955605,25.432 21.9102181,25.1893358 22.744,24.704 C23.5653374,24.2186642 24.2186642,23.5653374 24.704,22.744 C25.1893358,21.9102181 25.432,20.9955605 25.432,20 C25.432,19.1537735 25.2546684,18.3666703 24.9,17.6386667 C24.5453316,16.910663 24.056892,16.2977803 23.4346667,15.8 L24.5173333,14.68 Z M20.7653333,13 L20.7653333,20.7653333 L19.2346667,20.7653333 L19.2346667,13 L20.7653333,13 Z",transform:"translate(-13 -13)"}))};$r.defaultProps={theme:c.e};var qr=$r;function Zr(e){return(Zr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Jr(){return(Jr=Object.assign||function(e){for(var t=1;t=this.props.min&&e<=this.props.max){var t=this.formatPrecision(e);this.setState({value:t}),this.props.setProps&&this.props.setProps({value:t})}}},{key:"toggleInput",value:function(){if(!this.props.disabled){var e=!this.state.isInput;this.setState({isInput:e}),e&&this.setState({tempValue:this.state.value})}}},{key:"setTempValue",value:function(e){this.setState({tempValue:e})}},{key:"blur",value:function(){null!=this.state.tempValue&&this.setValue(this.state.tempValue),this.setState({tempValue:null}),this.toggleInput()}},{key:"render",value:function(){var e,t=this.props,n=t.id,r=t.className,a=t.style,i=t.size,s=t.theme,l=t.disabled,u=t.precision,f=t.min,p=t.max,d={background:"none",boxShadow:"none",border:"none",color:s.secondary,cursor:"pointer"},h=this.state.value?16-2*this.state.value.toString().length:16,m=Math.max(h,10),b={borderRadius:3,border:s.dark?"none":"1px solid ".concat(c.c.GREY),outline:"none",paddingRight:m,paddingLeft:m,paddingTop:4,paddingBottom:4,width:i||56+20*u,height:36,backgroundColor:s.dark?"#22272a":"#fff",color:s.dark?"#fff":"#000",fontSize:14,lineHeight:14,boxSizing:"border-box"},v=Object(q.a)("precisioninput",s.dark),g=Object(q.b)(this.props);return e=this.state.isInput?o.a.createElement(jr,{autoFocus:!0,className:v+"__input",disabled:l,style:{input:b,"input:not(.form-control)":b,btn:d,"btn:hover":d,"btn:active":d,"input:disabled":{opacity:.65,cursor:"not-allowed"}},min:f,max:p,value:this.state.tempValue,onChange:this.setTempValue,onBlur:this.blur}):o.a.createElement(No,{elementName:v+"__output",value:this.state.value,size:i,onClick:this.toggleInput,color:s.dark?"#fff":c.c.OFF_WHITE}),o.a.createElement("div",{id:n,className:v+(r?" "+r:""),style:Object.assign({},Ao,a)},o.a.createElement($.a,_o({className:v+"__label"},g),e))}}])&&jo(n.prototype,r),a&&jo(n,a),t}(r.Component),Do=function(e){if("-"===e[0]){e.shift();var t=e.shift();e.unshift("-".concat(t))}return e},No=function(e){var t=e.value,n=e.onClick,r=e.size,a=e.elementName,i=Eo(function(e){return Number(e).toExponential().replace("+","")}(t).split("e"),2),s=i[0],l=i[1],c=Do(s.split("")),u=Do(l.split(""));return o.a.createElement(vo,{size:r,onClick:n,className:a},c.map((function(e,t){return o.a.createElement(xo,{className:a+"__digit",key:"d".concat(t)},e)})),o.a.createElement(ko,{className:a+"__exp"},"E"),u.map((function(e,t){return o.a.createElement(ko,{className:a+"__expdigit",key:"e".concat(t)},e)})))};To.defaultProps={min:0,max:Number.MAX_SAFE_INTEGER,theme:c.e,labelPosition:"top",precision:2,persisted_props:["value"],persistence_type:"local"},To.propTypes={id:i.a.string,value:i.a.number,size:i.a.number,min:i.a.number,max:i.a.number,precision:i.a.number.isRequired,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"])};var Io=Object(s.d)(To);Io.defaultProps=To.defaultProps;var Lo=Io;function Ro(){var e=zo(["\n color: #ff6e6e;\n background-color: #22272a;\n\n text-shadow: 0 0 2px rgba(0, 0, 0, 0.9), 0 0 9px #ff6e6e;\n\n background-image: linear-gradient(145deg, rgba(255, 255, 255, 0.05) 0%, rgba(0, 0, 0, 0.5) 100%);\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1);\n\n display: block;\n box-sizing: border-box;\n border: none;\n border-radius: 2px;\n font-weight: bold;\n font-size: 12px;\n text-transform: uppercase;\n padding: 0;\n width: ",";\n height: ",";\n text-align: center;\n cursor: pointer;\n letter-spacing: 0.1;\n line-height: 1;\n\n background-color: #22272a;\n color: #ff1a1a;\n\n &::before,\n &::after {\n transition: all 0.1s ease-in;\n background-color: #e03a3a;\n }\n\n &:hover::before,\n &:hover::after {\n background-color: #e64545;\n }\n\n &:active::before,\n &:active::after {\n background-color: #c72121;\n }\n\n &:hover::after,\n &:active::after,\n &:focus::after {\n box-shadow: none;\n }\n"]);return Ro=function(){return e},e}function Fo(){var e=zo(["\n color: white;\n background-color: #ff5e5e;\n\n display: block;\n box-sizing: border-box;\n border: none;\n border-radius: 2px;\n font-weight: bold;\n font-size: 12px;\n text-transform: uppercase;\n padding: 0;\n width: ",";\n min-height: ",";\n text-align: center;\n cursor: pointer;\n letter-spacing: 0.1;\n line-height: 1;\n\n &:hover,\n &:focus,\n &:active {\n color: #fff;\n }\n\n &:hover {\n background-color: #ff8585;\n }\n\n &:active {\n background-color: #e64545;\n }\n"]);return Fo=function(){return e},e}function Ho(){var e=zo(["\n outline: none;\n transition: all 0.1s ease-in;\n ",";\n\n &:disabled {\n opacity: ",";\n cursor: not-allowed;\n }\n"]);return Ho=function(){return e},e}function zo(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Bo=s.c.button(Ho(),(function(e){return e.theme.dark?Vo:Uo}),(function(e){return e.theme.dark?1:.65}));Bo.defaultProps={theme:c.e};var Uo=Object(s.b)(Fo(),(function(e){var t=e.size;return"".concat(t,"px")}),(function(e){var t=e.size;return"".concat(.42*t,"px")})),Vo=Object(s.b)(Ro(),(function(e){var t=e.size;return"".concat(t,"px")}),(function(e){var t=e.size;return"".concat(.42*t,"px")})),Wo=function(e){var t=e.id,n=e.className,r=e.style,a=e.size,i=e.disabled,s=e.children,l=e.n_clicks,c=e.buttonText,u=e.theme,f=Object(q.a)("stopbutton",u),p=Object(q.b)(e);return o.a.createElement("div",{id:t,className:f+(n?" "+n:""),style:r},o.a.createElement($.a,p,o.a.createElement(Bo,{className:f+"__button",size:a,disabled:i,onClick:function(){e.setProps&&e.setProps({n_clicks:l+1})}},s||c)))};Wo.defaultProps={buttonText:"Stop",n_clicks:0,size:92,labelPosition:"top"},Wo.propTypes={id:i.a.string,size:i.a.number,buttonText:i.a.string,n_clicks:i.a.number,disabled:i.a.bool,children:i.a.node,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func};var Go=Object(s.d)(Wo),Yo=n(6),Xo=n.n(Yo),Ko=n(11),$o=n.n(Ko),qo=n(12),Zo=n.n(qo),Jo=n(9),Qo=n.n(Jo),ea=n(13),ta=n.n(ea),na=n(23),ra=n.n(na),oa=n(5),aa=n.n(oa),ia=function(e){var t,n,r=e.className,a=e.included,i=e.vertical,s=e.style,l=e.length,c=e.offset,u=e.reverse;l<0&&(u=!u,l=Math.abs(l),c=100-c);var f=i?(t={},aa()(t,u?"top":"bottom",c+"%"),aa()(t,u?"bottom":"top","auto"),aa()(t,"height",l+"%"),t):(n={},aa()(n,u?"right":"left",c+"%"),aa()(n,u?"left":"right","auto"),aa()(n,"width",l+"%"),n),p=Xo()({},s,f);return a?o.a.createElement("div",{className:r,style:p}):null},sa=n(24),la=n.n(sa),ca=n(41),ua=n.n(ca),fa=n(82),pa=n.n(fa),da=n(14),ha=n.n(da);function ma(e,t,n,r){var o=ha.a.unstable_batchedUpdates?function(e){ha.a.unstable_batchedUpdates(n,e)}:n;return pa()(e,t,o,r)}var ba=n(8),va=n.n(ba),ga=function(e){var t=e.prefixCls,n=e.vertical,r=e.reverse,a=e.marks,i=e.dots,s=e.step,l=e.included,c=e.lowerBound,u=e.upperBound,f=e.max,p=e.min,d=e.dotStyle,h=e.activeDotStyle,m=f-p,b=function(e,t,n,r,o,a){ra()(!n||r>0,"`Slider[step]` should be a positive number in order to make Slider[dots] work.");var i=Object.keys(t).map(parseFloat).sort((function(e,t){return e-t}));if(n&&r)for(var s=o;s<=a;s+=r)-1===i.indexOf(s)&&i.push(s);return i}(0,a,i,s,p,f).map((function(e){var a,i=Math.abs(e-p)/m*100+"%",s=!l&&e===u||l&&e<=u&&e>=c,f=n?Xo()({},d,aa()({},r?"top":"bottom",i)):Xo()({},d,aa()({},r?"right":"left",i));s&&(f=Xo()({},f,h));var b=va()((a={},aa()(a,t+"-dot",!0),aa()(a,t+"-dot-active",s),aa()(a,t+"-dot-reverse",r),a));return o.a.createElement("span",{className:b,style:f,key:e})}));return o.a.createElement("div",{className:t+"-step"},b)};ga.propTypes={prefixCls:i.a.string,activeDotStyle:i.a.object,dotStyle:i.a.object,min:i.a.number,max:i.a.number,upperBound:i.a.number,lowerBound:i.a.number,included:i.a.bool,dots:i.a.bool,step:i.a.number,marks:i.a.object,vertical:i.a.bool,reverse:i.a.bool};var ya=ga,xa=function(e){var t=e.className,n=e.vertical,r=e.reverse,a=e.marks,i=e.included,s=e.upperBound,l=e.lowerBound,c=e.max,u=e.min,f=e.onClickLabel,p=Object.keys(a),d=c-u,h=p.map(parseFloat).sort((function(e,t){return e-t})).map((function(e){var c,p=a[e],h="object"==typeof p&&!o.a.isValidElement(p),m=h?p.label:p;if(!m&&0!==m)return null;var b=!i&&e===s||i&&e<=s&&e>=l,v=va()((c={},aa()(c,t+"-text",!0),aa()(c,t+"-text-active",b),c)),g=aa()({marginBottom:"-50%"},r?"top":"bottom",(e-u)/d*100+"%"),y=aa()({transform:"translateX(-50%)",msTransform:"translateX(-50%)"},r?"right":"left",r?(e-u/4)/d*100+"%":(e-u)/d*100+"%"),x=n?g:y,w=h?Xo()({},x,p.style):x;return o.a.createElement("span",{className:v,style:w,key:e,onMouseDown:function(t){return f(t,e)},onTouchStart:function(t){return f(t,e)}},m)}));return o.a.createElement("div",{className:t},h)};xa.propTypes={className:i.a.string,vertical:i.a.bool,reverse:i.a.bool,marks:i.a.object,included:i.a.bool,upperBound:i.a.number,lowerBound:i.a.number,max:i.a.number,min:i.a.number,onClickLabel:i.a.func};var wa=xa,Oa=function(e){function t(){var e,n,r,o;$o()(this,t);for(var a=arguments.length,i=Array(a),s=0;s=_a.F1&&t<=_a.F12)return!1;switch(t){case _a.ALT:case _a.CAPS_LOCK:case _a.CONTEXT_MENU:case _a.CTRL:case _a.DOWN:case _a.END:case _a.ESC:case _a.HOME:case _a.INSERT:case _a.LEFT:case _a.MAC_FF_META:case _a.META:case _a.NUMLOCK:case _a.NUM_CENTER:case _a.PAGE_DOWN:case _a.PAGE_UP:case _a.PAUSE:case _a.PRINT_SCREEN:case _a.RIGHT:case _a.SHIFT:case _a.UP:case _a.WIN_KEY:case _a.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=_a.ZERO&&e<=_a.NINE)return!0;if(e>=_a.NUM_ZERO&&e<=_a.NUM_MULTIPLY)return!0;if(e>=_a.A&&e<=_a.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case _a.SPACE:case _a.QUESTION_MARK:case _a.NUM_PLUS:case _a.NUM_MINUS:case _a.NUM_PERIOD:case _a.NUM_DIVISION:case _a.SEMICOLON:case _a.DASH:case _a.EQUALS:case _a.COMMA:case _a.PERIOD:case _a.SLASH:case _a.APOSTROPHE:case _a.SINGLE_QUOTE:case _a.OPEN_SQUARE_BRACKET:case _a.BACKSLASH:case _a.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},ja=_a;function Ca(e,t){try{return Object.keys(t).some((function(n){return e.target===Object(da.findDOMNode)(t[n])}))}catch(e){return!1}}function Pa(e,t){var n=t.min,r=t.max;return er}function Ma(e){return e.touches.length>1||"touchend"===e.type.toLowerCase()&&e.touches.length>0}function Aa(e,t){var n=t.marks,r=t.step,o=t.min,a=t.max,i=Object.keys(n).map(parseFloat);if(null!==r){var s=Math.floor((a-o)/r),l=Math.min((e-o)/r,s),c=Math.round(l)*r+o;i.push(c)}var u=i.map((function(t){return Math.abs(e-t)}));return i[u.indexOf(Math.min.apply(Math,Sa()(u)))]}function Ta(e,t){return e?t.clientY:t.pageX}function Da(e,t){return e?t.touches[0].clientY:t.touches[0].pageX}function Na(e,t){var n=t.getBoundingClientRect();return e?n.top+.5*n.height:window.pageXOffset+n.left+.5*n.width}function Ia(e,t){var n=t.max,r=t.min;return e<=r?r:e>=n?n:e}function La(e,t){var n=t.step,r=isFinite(Aa(e,t))?Aa(e,t):0;return null===n?r:parseFloat(r.toFixed(function(e){var t=e.toString(),n=0;return t.indexOf(".")>=0&&(n=t.length-t.indexOf(".")-1),n}(n)))}function Ra(e){e.stopPropagation(),e.preventDefault()}function Fa(e,t,n){var r="increase";switch(e.keyCode){case ja.UP:r=t&&n?"decrease":"increase";break;case ja.RIGHT:r=!t&&n?"decrease":"increase";break;case ja.DOWN:r=t&&n?"increase":"decrease";break;case ja.LEFT:r=!t&&n?"increase":"decrease";break;case ja.END:return function(e,t){return t.max};case ja.HOME:return function(e,t){return t.min};case ja.PAGE_UP:return function(e,t){return e+2*t.step};case ja.PAGE_DOWN:return function(e,t){return e-2*t.step};default:return}return function(e,t){return function(e,t,n){var r={increase:function(e,t){return e+t},decrease:function(e,t){return e-t}},o=r[e](Object.keys(n.marks).indexOf(JSON.stringify(t)),1),a=Object.keys(n.marks)[o];return n.step?r[e](t,n.step):Object.keys(n.marks).length&&n.marks[a]?n.marks[a]:t}(r,e,t)}}function Ha(){}function za(e){var t,n;return n=t=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onMouseDown=function(e){if(0===e.button){var t=n.props.vertical,r=Ta(t,e);if(Ca(e,n.handlesRefs)){var o=Na(t,e.target);n.dragOffset=r-o,r=o}else n.dragOffset=0;n.removeDocumentEvents(),n.onStart(r),n.addDocumentMouseEvents()}},n.onTouchStart=function(e){if(!Ma(e)){var t=n.props.vertical,r=Da(t,e);if(Ca(e,n.handlesRefs)){var o=Na(t,e.target);n.dragOffset=r-o,r=o}else n.dragOffset=0;n.onStart(r),n.addDocumentTouchEvents(),Ra(e)}},n.onFocus=function(e){var t=n.props,r=t.onFocus,o=t.vertical;if(Ca(e,n.handlesRefs)){var a=Na(o,e.target);n.dragOffset=0,n.onStart(a),Ra(e),r&&r(e)}},n.onBlur=function(e){var t=n.props.onBlur;n.onEnd(),t&&t(e)},n.onMouseUp=function(){n.handlesRefs[n.prevMovedHandleIndex]&&n.handlesRefs[n.prevMovedHandleIndex].clickFocus()},n.onMouseMove=function(e){if(n.sliderRef){var t=Ta(n.props.vertical,e);n.onMove(e,t-n.dragOffset)}else n.onEnd()},n.onTouchMove=function(e){if(!Ma(e)&&n.sliderRef){var t=Da(n.props.vertical,e);n.onMove(e,t-n.dragOffset)}else n.onEnd()},n.onKeyDown=function(e){n.sliderRef&&Ca(e,n.handlesRefs)&&n.onKeyboard(e)},n.onClickMarkLabel=function(e,t){e.stopPropagation(),n.onChange({value:t}),n.setState({value:t},(function(){return n.onEnd(!0)}))},n.saveSlider=function(e){n.sliderRef=e};var r=e.step,o=e.max,a=e.min,i=!isFinite(o-a)||(o-a)%r==0;return ra()(!r||Math.floor(r)!==r||i,"Slider[max] - Slider[min] (%s) should be a multiple of Slider[step] (%s)",o-a,r),n.handlesRefs={},n}return ta()(t,e),Zo()(t,[{key:"componentDidMount",value:function(){this.document=this.sliderRef&&this.sliderRef.ownerDocument;var e=this.props,t=e.autoFocus,n=e.disabled;t&&!n&&this.focus()}},{key:"componentWillUnmount",value:function(){ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"componentWillUnmount",this)&&ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"componentWillUnmount",this).call(this),this.removeDocumentEvents()}},{key:"getSliderStart",value:function(){var e=this.sliderRef,t=this.props,n=t.vertical,r=t.reverse,o=e.getBoundingClientRect();return n?r?o.bottom:o.top:window.pageXOffset+(r?o.right:o.left)}},{key:"getSliderLength",value:function(){var e=this.sliderRef;if(!e)return 0;var t=e.getBoundingClientRect();return this.props.vertical?t.height:t.width}},{key:"addDocumentTouchEvents",value:function(){this.onTouchMoveListener=ma(this.document,"touchmove",this.onTouchMove),this.onTouchUpListener=ma(this.document,"touchend",this.onEnd)}},{key:"addDocumentMouseEvents",value:function(){this.onMouseMoveListener=ma(this.document,"mousemove",this.onMouseMove),this.onMouseUpListener=ma(this.document,"mouseup",this.onEnd)}},{key:"removeDocumentEvents",value:function(){this.onTouchMoveListener&&this.onTouchMoveListener.remove(),this.onTouchUpListener&&this.onTouchUpListener.remove(),this.onMouseMoveListener&&this.onMouseMoveListener.remove(),this.onMouseUpListener&&this.onMouseUpListener.remove()}},{key:"focus",value:function(){this.props.disabled||this.handlesRefs[0].focus()}},{key:"blur",value:function(){var e=this;this.props.disabled||Object.keys(this.handlesRefs).forEach((function(t){e.handlesRefs[t]&&e.handlesRefs[t].blur&&e.handlesRefs[t].blur()}))}},{key:"calcValue",value:function(e){var t=this.props,n=t.vertical,r=t.min,o=t.max,a=Math.abs(Math.max(e,0)/this.getSliderLength());return n?(1-a)*(o-r)+r:a*(o-r)+r}},{key:"calcValueByPos",value:function(e){var t=(this.props.reverse?-1:1)*(e-this.getSliderStart());return this.trimAlignValue(this.calcValue(t))}},{key:"calcOffset",value:function(e){var t=this.props,n=t.min;return 100*((e-n)/(t.max-n))}},{key:"saveHandle",value:function(e,t){this.handlesRefs[e]=t}},{key:"render",value:function(){var e,n=this.props,r=n.prefixCls,a=n.className,i=n.marks,s=n.dots,l=n.step,c=n.included,u=n.disabled,f=n.vertical,p=n.reverse,d=n.min,h=n.max,m=n.children,b=n.maximumTrackStyle,v=n.style,g=n.railStyle,y=n.dotStyle,x=n.activeDotStyle,w=ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"render",this).call(this),O=w.tracks,k=w.handles,E=va()(r,(e={},aa()(e,r+"-with-marks",Object.keys(i).length),aa()(e,r+"-disabled",u),aa()(e,r+"-vertical",f),aa()(e,a,a),e));return o.a.createElement("div",{ref:this.saveSlider,className:E,onTouchStart:u?Ha:this.onTouchStart,onMouseDown:u?Ha:this.onMouseDown,onMouseUp:u?Ha:this.onMouseUp,onKeyDown:u?Ha:this.onKeyDown,onFocus:u?Ha:this.onFocus,onBlur:u?Ha:this.onBlur,style:v},o.a.createElement("div",{className:r+"-rail",style:Xo()({},b,g)}),O,o.a.createElement(ya,{prefixCls:r,vertical:f,reverse:p,marks:i,dots:s,step:l,included:c,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:h,min:d,dotStyle:y,activeDotStyle:x}),k,o.a.createElement(wa,{className:r+"-mark",onClickLabel:u?Ha:this.onClickMarkLabel,vertical:f,marks:i,included:c,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:h,min:d,reverse:p}),m)}}]),t}(e),t.displayName="ComponentEnhancer("+e.displayName+")",t.propTypes=Xo()({},e.propTypes,{min:i.a.number,max:i.a.number,startPoint:i.a.number,step:i.a.number,marks:i.a.object,included:i.a.bool,className:i.a.string,prefixCls:i.a.string,disabled:i.a.bool,children:i.a.any,onBeforeChange:i.a.func,onChange:i.a.func,onAfterChange:i.a.func,handle:i.a.func,dots:i.a.bool,vertical:i.a.bool,style:i.a.object,reverse:i.a.bool,minimumTrackStyle:i.a.object,maximumTrackStyle:i.a.object,handleStyle:i.a.oneOfType([i.a.object,i.a.arrayOf(i.a.object)]),trackStyle:i.a.oneOfType([i.a.object,i.a.arrayOf(i.a.object)]),railStyle:i.a.object,dotStyle:i.a.object,activeDotStyle:i.a.object,autoFocus:i.a.bool,onFocus:i.a.func,onBlur:i.a.func}),t.defaultProps=Xo()({},e.defaultProps,{prefixCls:"rc-slider",className:"",min:0,max:100,step:1,marks:{},handle:function(e){var t=e.index,n=la()(e,["index"]);return delete n.dragging,null===n.value?null:o.a.createElement(ka,Xo()({},n,{key:t}))},onBeforeChange:Ha,onChange:Ha,onAfterChange:Ha,included:!0,disabled:!1,dots:!1,vertical:!1,reverse:!1,trackStyle:[{}],handleStyle:[{}],railStyle:{},dotStyle:{},activeDotStyle:{}}),n}var Ba=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onEnd=function(e){var t=n.state.dragging;n.removeDocumentEvents(),(t||e)&&n.props.onAfterChange(n.getValue()),n.setState({dragging:!1})};var r=void 0!==e.defaultValue?e.defaultValue:e.min,o=void 0!==e.value?e.value:r;return n.state={value:n.trimAlignValue(o),dragging:!1},ra()(!("minimumTrackStyle"in e),"minimumTrackStyle will be deprecated, please use trackStyle instead."),ra()(!("maximumTrackStyle"in e),"maximumTrackStyle will be deprecated, please use railStyle instead."),n}return ta()(t,e),Zo()(t,[{key:"componentDidUpdate",value:function(e,t){if("value"in this.props||"min"in this.props||"max"in this.props){var n=this.props,r=n.value,o=n.onChange,a=void 0!==r?r:t.value,i=this.trimAlignValue(a,this.props);i!==t.value&&(this.setState({value:i}),Pa(a,this.props)&&o(i))}}},{key:"onChange",value:function(e){var t=this.props,n=!("value"in t),r=e.value>this.props.max?Xo()({},e,{value:this.props.max}):e;n&&this.setState(r);var o=r.value;t.onChange(o)}},{key:"onStart",value:function(e){this.setState({dragging:!0});var t=this.props,n=this.getValue();t.onBeforeChange(n);var r=this.calcValueByPos(e);this.startValue=r,this.startPosition=e,r!==n&&(this.prevMovedHandleIndex=0,this.onChange({value:r}))}},{key:"onMove",value:function(e,t){Ra(e);var n=this.state.value,r=this.calcValueByPos(t);r!==n&&this.onChange({value:r})}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,r=Fa(e,t.vertical,n);if(r){Ra(e);var o=this.state.value,a=r(o,this.props),i=this.trimAlignValue(a);if(i===o)return;this.onChange({value:i}),this.props.onAfterChange(i),this.onEnd()}}},{key:"getValue",value:function(){return this.state.value}},{key:"getLowerBound",value:function(){return this.props.min}},{key:"getUpperBound",value:function(){return this.state.value}},{key:"trimAlignValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null===e)return null;var n=Xo()({},this.props,t),r=Ia(e,n);return La(r,n)}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,r=t.vertical,a=t.included,i=t.disabled,s=t.minimumTrackStyle,l=t.trackStyle,c=t.handleStyle,u=t.tabIndex,f=t.ariaLabelForHandle,p=t.ariaLabelledByForHandle,d=t.ariaValueTextFormatterForHandle,h=t.min,m=t.max,b=t.startPoint,v=t.reverse,g=t.handle,y=this.state,x=y.value,w=y.dragging,O=this.calcOffset(x),k=g({className:n+"-handle",prefixCls:n,vertical:r,offset:O,value:x,dragging:w,disabled:i,min:h,max:m,reverse:v,index:0,tabIndex:u,ariaLabel:f,ariaLabelledBy:p,ariaValueTextFormatter:d,style:c[0]||c,ref:function(t){return e.saveHandle(0,t)}}),E=void 0!==b?this.calcOffset(b):0,S=l[0]||l;return{tracks:o.a.createElement(ia,{className:n+"-track",vertical:r,included:a,offset:E,reverse:v,length:O-E,style:Xo()({},s,S)}),handles:k}}}]),t}(o.a.Component);Ba.propTypes={defaultValue:i.a.number,value:i.a.number,disabled:i.a.bool,autoFocus:i.a.bool,tabIndex:i.a.number,reverse:i.a.bool,min:i.a.number,max:i.a.number,startPoint:i.a.number,ariaLabelForHandle:i.a.string,ariaLabelledByForHandle:i.a.string,ariaValueTextFormatterForHandle:i.a.func};var Ua=za(Ba),Va=n(83),Wa=n.n(Va),Ga=function(e){var t=e.value,n=e.handle,r=e.bounds,o=e.props,a=o.allowCross,i=o.pushable,s=Number(i),l=Ia(t,o),c=l;return a||null==n||void 0===r||(n>0&&l<=r[n-1]+s&&(c=r[n-1]+s),n=r[n+1]-s&&(c=r[n+1]-s)),La(c,o)},Ya=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onEnd=function(e){var t=n.state.handle;n.removeDocumentEvents(),(null!==t||e)&&n.props.onAfterChange(n.getValue()),n.setState({handle:null})};var r=e.count,o=e.min,a=e.max,i=Array.apply(void 0,Sa()(Array(r+1))).map((function(){return o})),s="defaultValue"in e?e.defaultValue:i,l=(void 0!==e.value?e.value:s).map((function(t,n){return Ga({value:t,handle:n,props:e})})),c=l[0]===a?0:l.length-1;return n.state={handle:null,recent:c,bounds:l},n}return ta()(t,e),Zo()(t,[{key:"componentDidUpdate",value:function(e,t){var n=this;if(("value"in this.props||"min"in this.props||"max"in this.props)&&(this.props.min!==e.min||this.props.max!==e.max||!Wa()(this.props.value,e.value))){var r=this.props,o=r.onChange,a=r.value||t.bounds;if(a.some((function(e){return Pa(e,n.props)})))o(a.map((function(e){return Ia(e,n.props)})))}}},{key:"onChange",value:function(e){var t=this.props;if(!("value"in t))this.setState(e);else{var n={};["handle","recent"].forEach((function(t){void 0!==e[t]&&(n[t]=e[t])})),Object.keys(n).length&&this.setState(n)}var r=Xo()({},this.state,e).bounds;t.onChange(r)}},{key:"onStart",value:function(e){var t=this.props,n=this.state,r=this.getValue();t.onBeforeChange(r);var o=this.calcValueByPos(e);this.startValue=o,this.startPosition=e;var a=this.getClosestBound(o);if(this.prevMovedHandleIndex=this.getBoundNeedMoving(o,a),this.setState({handle:this.prevMovedHandleIndex,recent:this.prevMovedHandleIndex}),o!==r[this.prevMovedHandleIndex]){var i=[].concat(Sa()(n.bounds));i[this.prevMovedHandleIndex]=o,this.onChange({bounds:i})}}},{key:"onMove",value:function(e,t){Ra(e);var n=this.state,r=this.calcValueByPos(t);r!==n.bounds[n.handle]&&this.moveTo(r)}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,r=Fa(e,t.vertical,n);if(r){Ra(e);var o=this.state,a=this.props,i=o.bounds,s=o.handle,l=i[null===s?o.recent:s],c=r(l,a),u=Ga({value:c,handle:s,bounds:o.bounds,props:a});if(u===l)return;this.moveTo(u,!0)}}},{key:"getValue",value:function(){return this.state.bounds}},{key:"getClosestBound",value:function(e){for(var t=this.state.bounds,n=0,r=1;r=t[r]&&(n=r);return Math.abs(t[n+1]-e)=r.length||o<0)return!1;var a=t+n,i=r[o],s=this.props.pushable,l=n*(e[a]-i);return!!this.pushHandle(e,a,n,s-l)&&(e[t]=i,!0)}},{key:"trimAlignValue",value:function(e){var t=this.state,n=t.handle,r=t.bounds;return Ga({value:e,handle:n,bounds:r,props:this.props})}},{key:"render",value:function(){var e=this,t=this.state,n=t.handle,r=t.bounds,a=this.props,i=a.prefixCls,s=a.vertical,l=a.included,c=a.disabled,u=a.min,f=a.max,p=a.reverse,d=a.handle,h=a.trackStyle,m=a.handleStyle,b=a.tabIndex,v=a.ariaLabelGroupForHandles,g=a.ariaLabelledByGroupForHandles,y=a.ariaValueTextFormatterGroupForHandles,x=r.map((function(t){return e.calcOffset(t)})),w=i+"-handle",O=r.map((function(t,r){var o,a=b[r]||0;return(c||null===b[r])&&(a=null),d({className:va()((o={},aa()(o,w,!0),aa()(o,w+"-"+(r+1),!0),o)),prefixCls:i,vertical:s,offset:x[r],value:t,dragging:n===r,index:r,tabIndex:a,min:u,max:f,reverse:p,disabled:c,style:m[r],ref:function(t){return e.saveHandle(r,t)},ariaLabel:v[r],ariaLabelledBy:g[r],ariaValueTextFormatter:y[r]})}));return{tracks:r.slice(0,-1).map((function(e,t){var n,r=t+1,a=va()((n={},aa()(n,i+"-track",!0),aa()(n,i+"-track-"+r,!0),n));return o.a.createElement(ia,{className:a,vertical:s,reverse:p,included:l,offset:x[r-1],length:x[r]-x[r-1],style:h[t],key:r})})),handles:O}}}],[{key:"getDerivedStateFromProps",value:function(e,t){if("value"in e||"min"in e||"max"in e){var n=(e.value||t.bounds).map((function(n,r){return Ga({value:n,handle:r,bounds:t.bounds,props:e})}));return n.length===t.bounds.length&&n.every((function(e,n){return e===t.bounds[n]}))?null:Xo()({},t,{bounds:n})}return null}}]),t}(o.a.Component);Ya.displayName="Range",Ya.propTypes={autoFocus:i.a.bool,defaultValue:i.a.arrayOf(i.a.number),value:i.a.arrayOf(i.a.number),count:i.a.number,pushable:i.a.oneOfType([i.a.bool,i.a.number]),allowCross:i.a.bool,disabled:i.a.bool,reverse:i.a.bool,tabIndex:i.a.arrayOf(i.a.number),min:i.a.number,max:i.a.number,ariaLabelGroupForHandles:i.a.arrayOf(i.a.string),ariaLabelledByGroupForHandles:i.a.arrayOf(i.a.string),ariaValueTextFormatterGroupForHandles:i.a.arrayOf(i.a.func)},Ya.defaultProps={count:1,allowCross:!0,pushable:!1,tabIndex:[],ariaLabelGroupForHandles:[],ariaLabelledByGroupForHandles:[],ariaValueTextFormatterGroupForHandles:[]};var Xa=za(Ya);function Ka(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}function $a(e){return e instanceof HTMLElement?e:ha.a.findDOMNode(e)}function qa(e){return(qa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Za(e,t){"function"==typeof e?e(t):"object"===qa(e)&&e&&"current"in e&&(e.current=t)}function Ja(){for(var e=arguments.length,t=new Array(e),n=0;n=0&&t.left>=0&&t.bottom>t.top&&t.right>t.left?t:null}function ts(e){var t,n,r;if(qi.isWindow(e)||9===e.nodeType){var o=qi.getWindow(e);t={left:qi.getWindowScrollLeft(o),top:qi.getWindowScrollTop(o)},n=qi.viewportWidth(o),r=qi.viewportHeight(o)}else t=qi.offset(e),n=qi.outerWidth(e),r=qi.outerHeight(e);return t.width=n,t.height=r,t}function ns(e,t){var n=t.charAt(0),r=t.charAt(1),o=e.width,a=e.height,i=e.left,s=e.top;return"c"===n?s+=a/2:"b"===n&&(s+=a),"c"===r?i+=o/2:"r"===r&&(i+=o),{left:i,top:s}}function rs(e,t,n,r,o){var a=ns(t,n[1]),i=ns(e,n[0]),s=[i.left-a.left,i.top-a.top];return{left:Math.round(e.left-s[0]+r[0]-o[0]),top:Math.round(e.top-s[1]+r[1]-o[1])}}function os(e,t,n){return e.leftn.right}function as(e,t,n){return e.topn.bottom}function is(e,t,n){var r=[];return qi.each(e,(function(e){r.push(e.replace(t,(function(e){return n[e]})))})),r}function ss(e,t){return e[t]=-e[t],e}function ls(e,t){return(/%$/.test(e)?parseInt(e.substring(0,e.length-1),10)/100*t:parseInt(e,10))||0}function cs(e,t){e[0]=ls(e[0],t.width),e[1]=ls(e[1],t.height)}function us(e,t,n,r){var o=n.points,a=n.offset||[0,0],i=n.targetOffset||[0,0],s=n.overflow,l=n.source||e;a=[].concat(a),i=[].concat(i),s=s||{};var c={},u=0,f=es(l),p=ts(l);cs(a,p),cs(i,t);var d=rs(p,t,o,a,i),h=qi.merge(p,d);if(f&&(s.adjustX||s.adjustY)&&r){if(s.adjustX&&os(d,p,f)){var m=is(o,/[lr]/gi,{l:"r",r:"l"}),b=ss(a,0),v=ss(i,0);(function(e,t,n){return e.left>n.right||e.left+t.widthn.bottom||e.top+t.height=n.left&&o.left+a.width>n.right&&(a.width-=o.left+a.width-n.right),r.adjustX&&o.left+a.width>n.right&&(o.left=Math.max(n.right-a.width,n.left)),r.adjustY&&o.top=n.top&&o.top+a.height>n.bottom&&(a.height-=o.top+a.height-n.bottom),r.adjustY&&o.top+a.height>n.bottom&&(o.top=Math.max(n.bottom-a.height,n.top)),qi.mix(o,a)}(d,p,f,c))}return h.width!==p.width&&qi.css(l,"width",qi.width(l)+h.width-p.width),h.height!==p.height&&qi.css(l,"height",qi.height(l)+h.height-p.height),qi.offset(l,{left:h.left,top:h.top},{useCssRight:n.useCssRight,useCssBottom:n.useCssBottom,useCssTransform:n.useCssTransform,ignoreShake:n.ignoreShake}),{points:o,offset:a,targetOffset:i,overflow:c}}function fs(e,t,n){var r=n.target||t;return us(e,ts(r),n,!function(e){var t=es(e),n=ts(e);return!t||n.left+n.width<=t.left||n.top+n.height<=t.top||n.left>=t.right||n.top>=t.bottom}(r))}function ps(e,t,n){var r,o,a=qi.getDocument(e),i=a.defaultView||a.parentWindow,s=qi.getWindowScrollLeft(i),l=qi.getWindowScrollTop(i),c=qi.viewportWidth(i),u=qi.viewportHeight(i);r="pageX"in t?t.pageX:s+t.clientX,o="pageY"in t?t.pageY:l+t.clientY;var f=r>=0&&r<=s+c&&o>=0&&o<=l+u;return us(e,{left:r,top:o,width:0,height:0},function(e){for(var t=1;t1&&(p=o.a.createElement("div",{className:"".concat(n,"-content")},s)),o.a.createElement("div",{ref:t,className:va()(r,!a&&"".concat(e.hiddenClassName)),onMouseEnter:l,onMouseLeave:c,onMouseDown:u,onTouchStart:f,style:i},p)}));zs.displayName="PopupInner";var Bs=zs;function Us(e){var t=e.prefixCls,n=e.motion,r=e.animation,o=e.transitionName;return n||(r?{motionName:"".concat(t,"-").concat(r)}:o?{motionName:o}:null)}function Vs(e){return(Vs="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ws(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Gs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ys(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var El=Object(r.forwardRef)((function(e,t){var n=e.overlayClassName,a=e.trigger,i=void 0===a?["hover"]:a,s=e.mouseEnterDelay,l=void 0===s?0:s,c=e.mouseLeaveDelay,u=void 0===c?.1:c,f=e.overlayStyle,p=e.prefixCls,d=void 0===p?"rc-tooltip":p,h=e.children,m=e.onVisibleChange,b=e.afterVisibleChange,v=e.transitionName,g=e.animation,y=e.placement,x=void 0===y?"right":y,w=e.align,O=void 0===w?{}:w,k=e.destroyTooltipOnHide,E=void 0!==k&&k,S=e.defaultVisible,_=e.getTooltipContainer,j=kl(e,["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer"]),C=Object(r.useRef)(null);Object(r.useImperativeHandle)(t,(function(){return C.current}));var P=function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},n=t.isTarget,r=t.showLabel,a=o.a.createElement(vc,Ac({isTarget:n},e),o.a.createElement("div",{className:"label"},e.label),o.a.createElement("div",{className:"value"},e.value));return o.a.createElement(lc,Ac({isTarget:n},e),r&&a,o.a.createElement(fc,Ac({isTarget:n,showLabel:r},e)))},Dc=function(e){if(!e.color.ranges||!Re(e)){var t=Ve(e.color);return{trackStyle:{backgroundColor:t},activeDotStyle:e.theme.dark?{background:t,boxShadow:"0 0 6px 1px ".concat(t)}:{borderColor:t}}}return{railStyle:{backgroundImage:"".concat(Ue(e),", linear-gradient(0deg, #000, #000)"),backgroundBlendMode:e.theme.dark?"none":"overlay"},trackStyle:{mixBlendMode:"overlay",background:e.theme.dark?"#fff":"#000"},dotStyle:{display:"none"}}},Nc=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=function(e,t){return!t||"object"!==Oc(t)&&"function"!=typeof t?Pc(e):t}(this,Cc(t).call(this,e))).state={value:null!=e.value?e.value:e.min,trackStyle:Dc(e)},n.onChange=n.onChange.bind(Pc(n)),n.onAfterChange=n.onAfterChange.bind(Pc(n)),n.renderSliderHandle=n.renderSliderHandle.bind(Pc(n)),n.renderTargets=n.renderTargets.bind(Pc(n)),n.calcLabelOffset=n.calcLabelOffset.bind(Pc(n)),n}var n,r,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Mc(e,t)}(t,e),n=t,(r=[{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t={},n=Object(q.b)(this.props);void 0!==e.value&&e.value!==this.state.value&&(t.value=e.value),jl()(e.color,this.props.color)||(t.trackStyle=Dc(Sc({},n,{},e))),this.setState(t)}},{key:"onChange",value:function(e){var t=this.props,n=t.updatemode,r=t.setProps;this.props.value&&"drag"===n||this.setState({value:e}),"drag"===n&&r&&r({value:e})}},{key:"onAfterChange",value:function(e){var t=this.props,n=t.updatemode,r=t.setProps;"mouseup"===n&&r&&r({value:e})}},{key:"renderSliderHandle",value:function(e){var t=this.props.handleLabel,n=Sc({},Object(q.b)(this.props),{},e);return t?(n=Sc({},n,{value:t.showCurrentValue&&this.state.value,label:t.label||(t instanceof Object?" ":t),color:t.color||Ve(this.props.color),style:t.style}),Tc(n,{showLabel:!0})):Tc(n)}},{key:"renderTargets",value:function(){var e=Object(q.b)(this.props);return Object.entries(this.props.targets).reduce((function(t,n){var r=kc(n,2),o=r[0],a=r[1],i=Sc({},e,{label:a.label||a,value:a.showCurrentValue&&o,color:a.color,style:a.style}),s=Tc(i,{isTarget:!0,showLabel:!!a});return t[o]={style:bc,label:s},t}),{})}},{key:"calcLabelOffset",value:function(e){var t=e.vertical,n=e.labelPosition,r=e.marks,o=e.targets,a=e.handleLabel;if(t)return null;if("bottom"===n)return"transform: translateY(".concat(r?20:0,"px);");var i=!1;return Object.values(o).map((function(e){e.showCurrentValue&&(i=!0)})),a&&a.showCurrentValue&&(i=!0),"transform: translateY(".concat(i?-38:-16,"px);")}},{key:"render",value:function(){var e=this.state.value,t=this.props,n=t.className,r=t.id,a=t.theme,i=t.label,s=t.size,c=t.vertical,u=t.style,f=t.marks,p=Object(q.a)("slider",a.dark),d=Object(q.b)(this.props),h=this.props.vertical?Sc({},u,{marginLeft:"45px"}):Sc({},u,{marginTop:"45px"});return h=this.props.fullSize?this.props.vertical?Sc({},h,{height:"100%"}):Sc({},h,{width:"100%"}):h,o.a.createElement("div",{id:r,style:h,className:p+(n?" "+n:"")},o.a.createElement($.a,Ac({className:p+"__label",labelCSS:i?this.calcLabelOffset(this.props):null},d),o.a.createElement(sc,{fullSize:this.props.fullSize,size:s,vertical:c},o.a.createElement(Sl,Ac({className:p+"__slider",onChange:this.onChange,onAfterChange:this.onAfterChange,value:e,handle:this.renderSliderHandle,marks:Sc({},f,{},this.renderTargets())},this.state.trackStyle,Object(l.a)(["setProps","updatemode","value","marks"],d))))))}}])&&jc(n.prototype,r),a&&jc(n,a),t}(r.Component);Nc.defaultProps=Vc,Nc.propTypes=Wc;var Ic=Object(s.d)(Nc);function Lc(e){return(Lc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Rc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Fc(e,t){for(var n=0;no){b.current.innerHTML=e.exceedMessage?"string"==typeof e.exceedMessage?e.exceedMessage:e.exceedMessage(r,o)||"":""}else if(r div {\n margin-top: 56px;\n line-height: 28px;\n }\n"]);return Zc=function(){return e},e}function Jc(){var e=eu(["\n width: ","px;\n height: ","px;\n border-radius: 50%;\n background-color: ",";\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n bottom: -","px;\n z-index: -1;\n"]);return Jc=function(){return e},e}function Qc(){var e=eu(["\n display: flex;\n flex-direction: column;\n align-items: center;\n"]);return Qc=function(){return e},e}function eu(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var tu=s.c.div(Qc()),nu=s.c.div(Jc(),30,30,(function(e){return e.on?e.color||e.theme.primary:e.theme.secondary}),20);nu.defaultProps={theme:c.e};var ru=s.c.div(Zc());function ou(){return(ou=Object.assign||function(e){for(var t=1;t= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n// \nvar isPlainObject = (function (x) {\n return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x.constructor === Object;\n});\n\n// \nvar EMPTY_ARRAY = Object.freeze([]);\nvar EMPTY_OBJECT = Object.freeze({});\n\n// \nfunction isFunction(test) {\n return typeof test === 'function';\n}\n\n// \n\nfunction getComponentName(target) {\n return (process.env.NODE_ENV !== 'production' ? typeof target === 'string' && target : false) || target.displayName || target.name || 'Component';\n}\n\n// \nfunction isStatelessFunction(test) {\n return typeof test === 'function' && !(test.prototype && test.prototype.isReactComponent);\n}\n\n// \nfunction isStyledComponent(target) {\n return target && typeof target.styledComponentId === 'string';\n}\n\n// \n\nvar SC_ATTR = typeof process !== 'undefined' && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || 'data-styled';\n\nvar SC_VERSION_ATTR = 'data-styled-version';\n\nvar SC_STREAM_ATTR = 'data-styled-streamed';\n\nvar IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\n\nvar DISABLE_SPEEDY = typeof SC_DISABLE_SPEEDY === 'boolean' && SC_DISABLE_SPEEDY || typeof process !== 'undefined' && (process.env.REACT_APP_SC_DISABLE_SPEEDY || process.env.SC_DISABLE_SPEEDY) || process.env.NODE_ENV !== 'production';\n\n// Shared empty execution context when generating static styles\nvar STATIC_EXECUTION_CONTEXT = {};\n\n// \n\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n */\nvar ERRORS = process.env.NODE_ENV !== 'production' ? {\n \"1\": \"Cannot create styled-component for component: %s.\\n\\n\",\n \"2\": \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n \"3\": \"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",\n \"4\": \"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",\n \"5\": \"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",\n \"6\": \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n \"7\": \"ThemeProvider: Please return an object from your \\\"theme\\\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n\",\n \"8\": \"ThemeProvider: Please make your \\\"theme\\\" prop an object.\\n\\n\",\n \"9\": \"Missing document ``\\n\\n\",\n \"10\": \"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",\n \"11\": \"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",\n \"12\": \"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",\n \"13\": \"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\"\n} : {};\n\n/**\n * super basic version of sprintf\n */\nfunction format() {\n var a = arguments.length <= 0 ? undefined : arguments[0];\n var b = [];\n\n for (var c = 1, len = arguments.length; c < len; c += 1) {\n b.push(arguments.length <= c ? undefined : arguments[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n\n return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n */\n\nvar StyledComponentsError = function (_Error) {\n inherits(StyledComponentsError, _Error);\n\n function StyledComponentsError(code) {\n classCallCheck(this, StyledComponentsError);\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV === 'production') {\n var _this = possibleConstructorReturn(this, _Error.call(this, 'An error occurred. See https://github.com/styled-components/styled-components/blob/master/packages/styled-components/src/utils/errors.md#' + code + ' for more information.' + (interpolations.length > 0 ? ' Additional arguments: ' + interpolations.join(', ') : '')));\n } else {\n var _this = possibleConstructorReturn(this, _Error.call(this, format.apply(undefined, [ERRORS[code]].concat(interpolations)).trim()));\n }\n return possibleConstructorReturn(_this);\n }\n\n return StyledComponentsError;\n}(Error);\n\n// \nvar SC_COMPONENT_ID = /^[^\\S\\n]*?\\/\\* sc-component-id:\\s*(\\S+)\\s+\\*\\//gm;\n\nvar extractComps = (function (maybeCSS) {\n var css = '' + (maybeCSS || ''); // Definitely a string, and a clone\n var existingComponents = [];\n css.replace(SC_COMPONENT_ID, function (match, componentId, matchIndex) {\n existingComponents.push({ componentId: componentId, matchIndex: matchIndex });\n return match;\n });\n return existingComponents.map(function (_ref, i) {\n var componentId = _ref.componentId,\n matchIndex = _ref.matchIndex;\n\n var nextComp = existingComponents[i + 1];\n var cssFromDOM = nextComp ? css.slice(matchIndex, nextComp.matchIndex) : css.slice(matchIndex);\n return { componentId: componentId, cssFromDOM: cssFromDOM };\n });\n});\n\n// \n\nvar COMMENT_REGEX = /^\\s*\\/\\/.*$/gm;\n\n// NOTE: This stylis instance is only used to split rules from SSR'd style tags\nvar stylisSplitter = new Stylis({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: false,\n compress: false,\n semicolon: true\n});\n\nvar stylis = new Stylis({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: true,\n compress: false,\n semicolon: false // NOTE: This means \"autocomplete missing semicolons\"\n});\n\n// Wrap `insertRulePlugin to build a list of rules,\n// and then make our own plugin to return the rules. This\n// makes it easier to hook into the existing SSR architecture\n\nvar parsingRules = [];\n\n// eslint-disable-next-line consistent-return\nvar returnRulesPlugin = function returnRulesPlugin(context) {\n if (context === -2) {\n var parsedRules = parsingRules;\n parsingRules = [];\n return parsedRules;\n }\n};\n\nvar parseRulesPlugin = _insertRulePlugin(function (rule) {\n parsingRules.push(rule);\n});\n\nvar _componentId = void 0;\nvar _selector = void 0;\nvar _selectorRegexp = void 0;\n\nvar selfReferenceReplacer = function selfReferenceReplacer(match, offset, string) {\n if (\n // the first self-ref is always untouched\n offset > 0 &&\n // there should be at least two self-refs to do a replacement (.b > .b)\n string.slice(0, offset).indexOf(_selector) !== -1 &&\n // no consecutive self refs (.b.b); that is a precedence boost and treated differently\n string.slice(offset - _selector.length, offset) !== _selector) {\n return '.' + _componentId;\n }\n\n return match;\n};\n\n/**\n * When writing a style like\n *\n * & + & {\n * color: red;\n * }\n *\n * The second ampersand should be a reference to the static component class. stylis\n * has no knowledge of static class so we have to intelligently replace the base selector.\n */\nvar selfReferenceReplacementPlugin = function selfReferenceReplacementPlugin(context, _, selectors) {\n if (context === 2 && selectors.length && selectors[0].lastIndexOf(_selector) > 0) {\n // eslint-disable-next-line no-param-reassign\n selectors[0] = selectors[0].replace(_selectorRegexp, selfReferenceReplacer);\n }\n};\n\nstylis.use([selfReferenceReplacementPlugin, parseRulesPlugin, returnRulesPlugin]);\nstylisSplitter.use([parseRulesPlugin, returnRulesPlugin]);\n\nvar splitByRules = function splitByRules(css) {\n return stylisSplitter('', css);\n};\n\nfunction stringifyRules(rules, selector, prefix) {\n var componentId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '&';\n\n var flatCSS = rules.join('').replace(COMMENT_REGEX, ''); // replace JS comments\n\n var cssStr = selector && prefix ? prefix + ' ' + selector + ' { ' + flatCSS + ' }' : flatCSS;\n\n // stylis has no concept of state to be passed to plugins\n // but since JS is single=threaded, we can rely on that to ensure\n // these properties stay in sync with the current stylis run\n _componentId = componentId;\n _selector = selector;\n _selectorRegexp = new RegExp('\\\\' + _selector + '\\\\b', 'g');\n\n return stylis(prefix || !selector ? '' : selector, cssStr);\n}\n\n// \n/* eslint-disable camelcase, no-undef */\n\nvar getNonce = (function () {\n return typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n});\n\n// \n/* These are helpers for the StyleTags to keep track of the injected\n * rule names for each (component) ID that they're keeping track of.\n * They're crucial for detecting whether a name has already been\n * injected.\n * (This excludes rehydrated names) */\n\n/* adds a new ID:name pairing to a names dictionary */\nvar addNameForId = function addNameForId(names, id, name) {\n if (name) {\n // eslint-disable-next-line no-param-reassign\n var namesForId = names[id] || (names[id] = Object.create(null));\n namesForId[name] = true;\n }\n};\n\n/* resets an ID entirely by overwriting it in the dictionary */\nvar resetIdNames = function resetIdNames(names, id) {\n // eslint-disable-next-line no-param-reassign\n names[id] = Object.create(null);\n};\n\n/* factory for a names dictionary checking the existance of an ID:name pairing */\nvar hasNameForId = function hasNameForId(names) {\n return function (id, name) {\n return names[id] !== undefined && names[id][name];\n };\n};\n\n/* stringifies names for the html/element output */\nvar stringifyNames = function stringifyNames(names) {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in names) {\n str += Object.keys(names[id]).join(' ') + ' ';\n }\n return str.trim();\n};\n\n/* clones the nested names dictionary */\nvar cloneNames = function cloneNames(names) {\n var clone = Object.create(null);\n // eslint-disable-next-line guard-for-in\n for (var id in names) {\n clone[id] = _extends({}, names[id]);\n }\n return clone;\n};\n\n// \n\n/* These are helpers that deal with the insertRule (aka speedy) API\n * They are used in the StyleTags and specifically the speedy tag\n */\n\n/* retrieve a sheet for a given style tag */\nvar sheetForTag = function sheetForTag(tag) {\n // $FlowFixMe\n if (tag.sheet) return tag.sheet;\n\n /* Firefox quirk requires us to step through all stylesheets to find one owned by the given tag */\n var size = tag.ownerDocument.styleSheets.length;\n for (var i = 0; i < size; i += 1) {\n var sheet = tag.ownerDocument.styleSheets[i];\n // $FlowFixMe\n if (sheet.ownerNode === tag) return sheet;\n }\n\n /* we should always be able to find a tag */\n throw new StyledComponentsError(10);\n};\n\n/* insert a rule safely and return whether it was actually injected */\nvar safeInsertRule = function safeInsertRule(sheet, cssRule, index) {\n /* abort early if cssRule string is falsy */\n if (!cssRule) return false;\n\n var maxIndex = sheet.cssRules.length;\n\n try {\n /* use insertRule and cap passed index with maxIndex (no of cssRules) */\n sheet.insertRule(cssRule, index <= maxIndex ? index : maxIndex);\n } catch (err) {\n /* any error indicates an invalid rule */\n return false;\n }\n\n return true;\n};\n\n/* deletes `size` rules starting from `removalIndex` */\nvar deleteRules = function deleteRules(sheet, removalIndex, size) {\n var lowerBound = removalIndex - size;\n for (var i = removalIndex; i > lowerBound; i -= 1) {\n sheet.deleteRule(i);\n }\n};\n\n// \n\n/* this marker separates component styles and is important for rehydration */\nvar makeTextMarker = function makeTextMarker(id) {\n return '\\n/* sc-component-id: ' + id + ' */\\n';\n};\n\n/* add up all numbers in array up until and including the index */\nvar addUpUntilIndex = function addUpUntilIndex(sizes, index) {\n var totalUpToIndex = 0;\n for (var i = 0; i <= index; i += 1) {\n totalUpToIndex += sizes[i];\n }\n\n return totalUpToIndex;\n};\n\n/* create a new style tag after lastEl */\nvar makeStyleTag = function makeStyleTag(target, tagEl, insertBefore) {\n var targetDocument = document;\n if (target) targetDocument = target.ownerDocument;else if (tagEl) targetDocument = tagEl.ownerDocument;\n\n var el = targetDocument.createElement('style');\n el.setAttribute(SC_ATTR, '');\n el.setAttribute(SC_VERSION_ATTR, \"4.4.0\");\n\n var nonce = getNonce();\n if (nonce) {\n el.setAttribute('nonce', nonce);\n }\n\n /* Work around insertRule quirk in EdgeHTML */\n el.appendChild(targetDocument.createTextNode(''));\n\n if (target && !tagEl) {\n /* Append to target when no previous element was passed */\n target.appendChild(el);\n } else {\n if (!tagEl || !target || !tagEl.parentNode) {\n throw new StyledComponentsError(6);\n }\n\n /* Insert new style tag after the previous one */\n tagEl.parentNode.insertBefore(el, insertBefore ? tagEl : tagEl.nextSibling);\n }\n\n return el;\n};\n\n/* takes a css factory function and outputs an html styled tag factory */\nvar wrapAsHtmlTag = function wrapAsHtmlTag(css, names) {\n return function (additionalAttrs) {\n var nonce = getNonce();\n var attrs = [nonce && 'nonce=\"' + nonce + '\"', SC_ATTR + '=\"' + stringifyNames(names) + '\"', SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"', additionalAttrs];\n\n var htmlAttr = attrs.filter(Boolean).join(' ');\n return '';\n };\n};\n\n/* takes a css factory function and outputs an element factory */\nvar wrapAsElement = function wrapAsElement(css, names) {\n return function () {\n var _props;\n\n var props = (_props = {}, _props[SC_ATTR] = stringifyNames(names), _props[SC_VERSION_ATTR] = \"4.4.0\", _props);\n\n var nonce = getNonce();\n if (nonce) {\n // $FlowFixMe\n props.nonce = nonce;\n }\n\n // eslint-disable-next-line react/no-danger\n return React.createElement('style', _extends({}, props, { dangerouslySetInnerHTML: { __html: css() } }));\n };\n};\n\nvar getIdsFromMarkersFactory = function getIdsFromMarkersFactory(markers) {\n return function () {\n return Object.keys(markers);\n };\n};\n\n/* speedy tags utilise insertRule */\nvar makeSpeedyTag = function makeSpeedyTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var sizes = [];\n\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = sizes.length;\n sizes.push(0);\n resetIdNames(names, id);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var sheet = sheetForTag(el);\n var insertIndex = addUpUntilIndex(sizes, marker);\n\n var injectedRules = 0;\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = cssRules[i];\n var mayHaveImport = extractImport; /* @import rules are reordered to appear first */\n if (mayHaveImport && cssRule.indexOf('@import') !== -1) {\n importRules.push(cssRule);\n } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n mayHaveImport = false;\n injectedRules += 1;\n }\n }\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n\n sizes[marker] += injectedRules; /* add up no of injected rules */\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n // $FlowFixMe\n if (el.isConnected === false) return;\n\n var size = sizes[marker];\n var sheet = sheetForTag(el);\n var removalIndex = addUpUntilIndex(sizes, marker) - 1;\n deleteRules(sheet, removalIndex, size);\n sizes[marker] = 0;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var _sheetForTag = sheetForTag(el),\n cssRules = _sheetForTag.cssRules;\n\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += makeTextMarker(id);\n var marker = markers[id];\n var end = addUpUntilIndex(sizes, marker);\n var size = sizes[marker];\n for (var i = end - size; i < end; i += 1) {\n var rule = cssRules[i];\n if (rule !== undefined) {\n str += rule.cssText;\n }\n }\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeTextNode = function makeTextNode(targetDocument, id) {\n return targetDocument.createTextNode(makeTextMarker(id));\n};\n\nvar makeBrowserTag = function makeBrowserTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n\n var extractImport = getImportRuleTag !== undefined;\n\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = makeTextNode(el.ownerDocument, id);\n el.appendChild(markers[id]);\n names[id] = Object.create(null);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var rule = cssRules[i];\n var mayHaveImport = extractImport;\n if (mayHaveImport && rule.indexOf('@import') !== -1) {\n importRules.push(rule);\n } else {\n mayHaveImport = false;\n var separator = i === cssRulesSize - 1 ? '' : ' ';\n marker.appendData('' + rule + separator);\n }\n }\n\n addNameForId(names, id, name);\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n\n /* create new empty text node and replace the current one */\n var newMarker = makeTextNode(el.ownerDocument, id);\n el.replaceChild(newMarker, marker);\n markers[id] = newMarker;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += markers[id].data;\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeServerTag = function makeServerTag(namesArg, markersArg) {\n var names = namesArg === undefined ? Object.create(null) : namesArg;\n var markers = markersArg === undefined ? Object.create(null) : markersArg;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n return markers[id] = [''];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n marker[0] += cssRules.join(' ');\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n marker[0] = '';\n resetIdNames(names, id);\n };\n\n var css = function css() {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n var cssForId = markers[id][0];\n if (cssForId) {\n str += makeTextMarker(id) + cssForId;\n }\n }\n return str;\n };\n\n var clone = function clone() {\n var namesClone = cloneNames(names);\n var markersClone = Object.create(null);\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n markersClone[id] = [markers[id][0]];\n }\n\n return makeServerTag(namesClone, markersClone);\n };\n\n var tag = {\n clone: clone,\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: null,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n\n return tag;\n};\n\nvar makeTag = function makeTag(target, tagEl, forceServer, insertBefore, getImportRuleTag) {\n if (IS_BROWSER && !forceServer) {\n var el = makeStyleTag(target, tagEl, insertBefore);\n\n if (DISABLE_SPEEDY) {\n return makeBrowserTag(el, getImportRuleTag);\n } else {\n return makeSpeedyTag(el, getImportRuleTag);\n }\n }\n\n return makeServerTag();\n};\n\nvar rehydrate = function rehydrate(tag, els, extracted) {\n /* add all extracted components to the new tag */\n for (var i = 0, len = extracted.length; i < len; i += 1) {\n var _extracted$i = extracted[i],\n componentId = _extracted$i.componentId,\n cssFromDOM = _extracted$i.cssFromDOM;\n\n var cssRules = splitByRules(cssFromDOM);\n tag.insertRules(componentId, cssRules);\n }\n\n /* remove old HTMLStyleElements, since they have been rehydrated */\n for (var _i = 0, _len = els.length; _i < _len; _i += 1) {\n var el = els[_i];\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n};\n\n// \n\nvar SPLIT_REGEX = /\\s+/;\n\n/* determine the maximum number of components before tags are sharded */\nvar MAX_SIZE = void 0;\nif (IS_BROWSER) {\n /* in speedy mode we can keep a lot more rules in a sheet before a slowdown can be expected */\n MAX_SIZE = DISABLE_SPEEDY ? 40 : 1000;\n} else {\n /* for servers we do not need to shard at all */\n MAX_SIZE = -1;\n}\n\nvar sheetRunningId = 0;\nvar master = void 0;\n\nvar StyleSheet = function () {\n\n /* a map from ids to tags */\n\n /* deferred rules for a given id */\n\n /* this is used for not reinjecting rules via hasNameForId() */\n\n /* when rules for an id are removed using remove() we have to ignore rehydratedNames for it */\n\n /* a list of tags belonging to this StyleSheet */\n\n /* a tag for import rules */\n\n /* current capacity until a new tag must be created */\n\n /* children (aka clones) of this StyleSheet inheriting all and future injections */\n\n function StyleSheet() {\n var _this = this;\n\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : IS_BROWSER ? document.head : null;\n var forceServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n classCallCheck(this, StyleSheet);\n\n this.getImportRuleTag = function () {\n var importRuleTag = _this.importRuleTag;\n\n if (importRuleTag !== undefined) {\n return importRuleTag;\n }\n\n var firstTag = _this.tags[0];\n var insertBefore = true;\n\n return _this.importRuleTag = makeTag(_this.target, firstTag ? firstTag.styleTag : null, _this.forceServer, insertBefore);\n };\n\n sheetRunningId += 1;\n this.id = sheetRunningId;\n this.forceServer = forceServer;\n this.target = forceServer ? null : target;\n this.tagMap = {};\n this.deferred = {};\n this.rehydratedNames = {};\n this.ignoreRehydratedNames = {};\n this.tags = [];\n this.capacity = 1;\n this.clones = [];\n }\n\n /* rehydrate all SSR'd style tags */\n\n\n StyleSheet.prototype.rehydrate = function rehydrate$$1() {\n if (!IS_BROWSER || this.forceServer) return this;\n\n var els = [];\n var extracted = [];\n var isStreamed = false;\n\n /* retrieve all of our SSR style elements from the DOM */\n var nodes = document.querySelectorAll('style[' + SC_ATTR + '][' + SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"]');\n\n var nodesSize = nodes.length;\n\n /* abort rehydration if no previous style tags were found */\n if (!nodesSize) return this;\n\n for (var i = 0; i < nodesSize; i += 1) {\n var el = nodes[i];\n\n /* check if style tag is a streamed tag */\n if (!isStreamed) isStreamed = !!el.getAttribute(SC_STREAM_ATTR);\n\n /* retrieve all component names */\n var elNames = (el.getAttribute(SC_ATTR) || '').trim().split(SPLIT_REGEX);\n var elNamesSize = elNames.length;\n for (var j = 0, name; j < elNamesSize; j += 1) {\n name = elNames[j];\n /* add rehydrated name to sheet to avoid re-adding styles */\n this.rehydratedNames[name] = true;\n }\n\n /* extract all components and their CSS */\n extracted.push.apply(extracted, extractComps(el.textContent));\n\n /* store original HTMLStyleElement */\n els.push(el);\n }\n\n /* abort rehydration if nothing was extracted */\n var extractedSize = extracted.length;\n if (!extractedSize) return this;\n\n /* create a tag to be used for rehydration */\n var tag = this.makeTag(null);\n\n rehydrate(tag, els, extracted);\n\n /* reset capacity and adjust MAX_SIZE by the initial size of the rehydration */\n this.capacity = Math.max(1, MAX_SIZE - extractedSize);\n this.tags.push(tag);\n\n /* retrieve all component ids */\n for (var _j = 0; _j < extractedSize; _j += 1) {\n this.tagMap[extracted[_j].componentId] = tag;\n }\n\n return this;\n };\n\n /* retrieve a \"master\" instance of StyleSheet which is typically used when no other is available\n * The master StyleSheet is targeted by createGlobalStyle, keyframes, and components outside of any\n * StyleSheetManager's context */\n\n\n /* reset the internal \"master\" instance */\n StyleSheet.reset = function reset() {\n var forceServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n master = new StyleSheet(undefined, forceServer).rehydrate();\n };\n\n /* adds \"children\" to the StyleSheet that inherit all of the parents' rules\n * while their own rules do not affect the parent */\n\n\n StyleSheet.prototype.clone = function clone() {\n var sheet = new StyleSheet(this.target, this.forceServer);\n\n /* add to clone array */\n this.clones.push(sheet);\n\n /* clone all tags */\n sheet.tags = this.tags.map(function (tag) {\n var ids = tag.getIds();\n var newTag = tag.clone();\n\n /* reconstruct tagMap */\n for (var i = 0; i < ids.length; i += 1) {\n sheet.tagMap[ids[i]] = newTag;\n }\n\n return newTag;\n });\n\n /* clone other maps */\n sheet.rehydratedNames = _extends({}, this.rehydratedNames);\n sheet.deferred = _extends({}, this.deferred);\n\n return sheet;\n };\n\n /* force StyleSheet to create a new tag on the next injection */\n\n\n StyleSheet.prototype.sealAllTags = function sealAllTags() {\n this.capacity = 1;\n\n this.tags.forEach(function (tag) {\n // eslint-disable-next-line no-param-reassign\n tag.sealed = true;\n });\n };\n\n StyleSheet.prototype.makeTag = function makeTag$$1(tag) {\n var lastEl = tag ? tag.styleTag : null;\n var insertBefore = false;\n\n return makeTag(this.target, lastEl, this.forceServer, insertBefore, this.getImportRuleTag);\n };\n\n /* get a tag for a given componentId, assign the componentId to one, or shard */\n StyleSheet.prototype.getTagForId = function getTagForId(id) {\n /* simply return a tag, when the componentId was already assigned one */\n var prev = this.tagMap[id];\n if (prev !== undefined && !prev.sealed) {\n return prev;\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n /* shard (create a new tag) if the tag is exhausted (See MAX_SIZE) */\n this.capacity -= 1;\n\n if (this.capacity === 0) {\n this.capacity = MAX_SIZE;\n tag = this.makeTag(tag);\n this.tags.push(tag);\n }\n\n return this.tagMap[id] = tag;\n };\n\n /* mainly for createGlobalStyle to check for its id */\n\n\n StyleSheet.prototype.hasId = function hasId(id) {\n return this.tagMap[id] !== undefined;\n };\n\n /* caching layer checking id+name to already have a corresponding tag and injected rules */\n\n\n StyleSheet.prototype.hasNameForId = function hasNameForId(id, name) {\n /* exception for rehydrated names which are checked separately */\n if (this.ignoreRehydratedNames[id] === undefined && this.rehydratedNames[name]) {\n return true;\n }\n\n var tag = this.tagMap[id];\n return tag !== undefined && tag.hasNameForId(id, name);\n };\n\n /* registers a componentId and registers it on its tag */\n\n\n StyleSheet.prototype.deferredInject = function deferredInject(id, cssRules) {\n /* don't inject when the id is already registered */\n if (this.tagMap[id] !== undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].deferredInject(id, cssRules);\n }\n\n this.getTagForId(id).insertMarker(id);\n this.deferred[id] = cssRules;\n };\n\n /* injects rules for a given id with a name that will need to be cached */\n\n\n StyleSheet.prototype.inject = function inject(id, cssRules, name) {\n var clones = this.clones;\n\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].inject(id, cssRules, name);\n }\n\n var tag = this.getTagForId(id);\n\n /* add deferred rules for component */\n if (this.deferred[id] !== undefined) {\n // Combine passed cssRules with previously deferred CSS rules\n // NOTE: We cannot mutate the deferred array itself as all clones\n // do the same (see clones[i].inject)\n var rules = this.deferred[id].concat(cssRules);\n tag.insertRules(id, rules, name);\n\n this.deferred[id] = undefined;\n } else {\n tag.insertRules(id, cssRules, name);\n }\n };\n\n /* removes all rules for a given id, which doesn't remove its marker but resets it */\n\n\n StyleSheet.prototype.remove = function remove(id) {\n var tag = this.tagMap[id];\n if (tag === undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].remove(id);\n }\n\n /* remove all rules from the tag */\n tag.removeRules(id);\n\n /* ignore possible rehydrated names */\n this.ignoreRehydratedNames[id] = true;\n\n /* delete possible deferred rules */\n this.deferred[id] = undefined;\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n var id = this.id;\n\n\n return this.tags.map(function (tag, i) {\n var key = 'sc-' + id + '-' + i;\n return cloneElement(tag.toElement(), { key: key });\n });\n };\n\n createClass(StyleSheet, null, [{\n key: 'master',\n get: function get$$1() {\n return master || (master = new StyleSheet().rehydrate());\n }\n\n /* NOTE: This is just for backwards-compatibility with jest-styled-components */\n\n }, {\n key: 'instance',\n get: function get$$1() {\n return StyleSheet.master;\n }\n }]);\n return StyleSheet;\n}();\n\n// \n\nvar Keyframes = function () {\n function Keyframes(name, rules) {\n var _this = this;\n\n classCallCheck(this, Keyframes);\n\n this.inject = function (styleSheet) {\n if (!styleSheet.hasNameForId(_this.id, _this.name)) {\n styleSheet.inject(_this.id, _this.rules, _this.name);\n }\n };\n\n this.toString = function () {\n throw new StyledComponentsError(12, String(_this.name));\n };\n\n this.name = name;\n this.rules = rules;\n\n this.id = 'sc-keyframes-' + name;\n }\n\n Keyframes.prototype.getName = function getName() {\n return this.name;\n };\n\n return Keyframes;\n}();\n\n// \n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\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 * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return string.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\n// \n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nfunction addUnitIfNeeded(name, value) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n}\n\n// \n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nvar isFalsish = function isFalsish(chunk) {\n return chunk === undefined || chunk === null || chunk === false || chunk === '';\n};\n\nvar objToCssArray = function objToCssArray(obj, prevKey) {\n var rules = [];\n var keys = Object.keys(obj);\n\n keys.forEach(function (key) {\n if (!isFalsish(obj[key])) {\n if (isPlainObject(obj[key])) {\n rules.push.apply(rules, objToCssArray(obj[key], key));\n\n return rules;\n } else if (isFunction(obj[key])) {\n rules.push(hyphenateStyleName(key) + ':', obj[key], ';');\n\n return rules;\n }\n rules.push(hyphenateStyleName(key) + ': ' + addUnitIfNeeded(key, obj[key]) + ';');\n }\n return rules;\n });\n\n return prevKey ? [prevKey + ' {'].concat(rules, ['}']) : rules;\n};\n\nfunction flatten(chunk, executionContext, styleSheet) {\n if (Array.isArray(chunk)) {\n var ruleSet = [];\n\n for (var i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet);\n\n if (result === null) continue;else if (Array.isArray(result)) ruleSet.push.apply(ruleSet, result);else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return null;\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return '.' + chunk.styledComponentId;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n var _result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(_result)) {\n // eslint-disable-next-line no-console\n console.warn(getComponentName(chunk) + ' is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.');\n }\n\n return flatten(_result, executionContext, styleSheet);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet);\n return chunk.getName();\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n}\n\n// \n\nfunction css(styles) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return flatten(interleave(EMPTY_ARRAY, [styles].concat(interpolations)));\n }\n\n // $FlowFixMe\n return flatten(interleave(styles, interpolations));\n}\n\n// \n\nfunction constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n if (!isValidElementType(tag)) {\n throw new StyledComponentsError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n var templateFunction = function templateFunction() {\n return componentConstructor(tag, options, css.apply(undefined, arguments));\n };\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean)\n }));\n };\n\n return templateFunction;\n}\n\n// \n// Source: https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash(c) {\n for (var e = c.length | 0, a = e | 0, d = 0, b; e >= 4;) {\n b = c.charCodeAt(d) & 255 | (c.charCodeAt(++d) & 255) << 8 | (c.charCodeAt(++d) & 255) << 16 | (c.charCodeAt(++d) & 255) << 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), b ^= b >>> 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16) ^ b, e -= 4, ++d;\n }\n switch (e) {\n case 3:\n a ^= (c.charCodeAt(d + 2) & 255) << 16;\n case 2:\n a ^= (c.charCodeAt(d + 1) & 255) << 8;\n case 1:\n a ^= c.charCodeAt(d) & 255, a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n }\n a ^= a >>> 13;\n a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n return (a ^ a >>> 15) >>> 0;\n}\n\n// \n/* eslint-disable no-bitwise */\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nvar charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nvar getAlphabeticChar = function getAlphabeticChar(code) {\n return String.fromCharCode(code + (code > 25 ? 39 : 97));\n};\n\n/* input a number, usually a hash and convert it to base-52 */\nfunction generateAlphabeticName(code) {\n var name = '';\n var x = void 0;\n\n /* get a char and divide by alphabet-length */\n for (x = code; x > charsLength; x = Math.floor(x / charsLength)) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return getAlphabeticChar(x % charsLength) + name;\n}\n\n// \n\nfunction hasFunctionObjectKey(obj) {\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in obj) {\n if (isFunction(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isStaticRules(rules, attrs) {\n for (var i = 0; i < rules.length; i += 1) {\n var rule = rules[i];\n\n // recursive case\n if (Array.isArray(rule) && !isStaticRules(rule, attrs)) {\n return false;\n } else if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n if (attrs.some(function (x) {\n return isFunction(x) || hasFunctionObjectKey(x);\n })) return false;\n\n return true;\n}\n\n// \n\n/* combines hashStr (murmurhash) and nameGenerator for convenience */\nvar hasher = function hasher(str) {\n return generateAlphabeticName(murmurhash(str));\n};\n\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\n\nvar ComponentStyle = function () {\n function ComponentStyle(rules, attrs, componentId) {\n classCallCheck(this, ComponentStyle);\n\n this.rules = rules;\n this.isStatic = process.env.NODE_ENV === 'production' && isStaticRules(rules, attrs);\n this.componentId = componentId;\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n\n\n ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) {\n var isStatic = this.isStatic,\n componentId = this.componentId,\n lastClassName = this.lastClassName;\n\n if (IS_BROWSER && isStatic && typeof lastClassName === 'string' && styleSheet.hasNameForId(componentId, lastClassName)) {\n return lastClassName;\n }\n\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var name = hasher(this.componentId + flatCSS.join(''));\n if (!styleSheet.hasNameForId(componentId, name)) {\n styleSheet.inject(this.componentId, stringifyRules(flatCSS, '.' + name, undefined, componentId), name);\n }\n\n this.lastClassName = name;\n return name;\n };\n\n ComponentStyle.generateName = function generateName(str) {\n return hasher(str);\n };\n\n return ComponentStyle;\n}();\n\n// \n\nvar LIMIT = 200;\n\nvar createWarnTooManyClasses = (function (displayName) {\n var generatedClasses = {};\n var warningSeen = false;\n\n return function (className) {\n if (!warningSeen) {\n generatedClasses[className] = true;\n if (Object.keys(generatedClasses).length >= LIMIT) {\n // Unable to find latestRule in test environment.\n /* eslint-disable no-console, prefer-template */\n console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \\n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\\n' + 'Example:\\n' + ' const Component = styled.div.attrs(props => ({\\n' + ' style: {\\n' + ' background: props.background,\\n' + ' },\\n' + ' }))`width: 100%;`\\n\\n' + ' ');\n warningSeen = true;\n generatedClasses = {};\n }\n }\n };\n});\n\n// \n\nvar determineTheme = (function (props, fallbackTheme) {\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types, flowtype-errors/show-errors */\n var isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;\n /* eslint-enable */\n\n return theme;\n});\n\n// \nvar escapeRegex = /[[\\].#*$><+~=|^:(),\"'`-]+/g;\nvar dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nfunction escape(str) {\n return str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n\n// \n\nfunction isTag(target) {\n return typeof target === 'string' && (process.env.NODE_ENV !== 'production' ? target.charAt(0) === target.charAt(0).toLowerCase() : true);\n}\n\n// \n\nfunction generateDisplayName(target) {\n // $FlowFixMe\n return isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')';\n}\n\nvar _TYPE_STATICS;\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDerivedStateFromProps: true,\n propTypes: true,\n type: true\n};\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};\n\nvar TYPE_STATICS = (_TYPE_STATICS = {}, _TYPE_STATICS[ForwardRef] = {\n $$typeof: true,\n render: true\n}, _TYPE_STATICS);\n\nvar defineProperty$1 = Object.defineProperty,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n _Object$getOwnPropert = Object.getOwnPropertySymbols,\n getOwnPropertySymbols = _Object$getOwnPropert === undefined ? function () {\n return [];\n} : _Object$getOwnPropert,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getPrototypeOf = Object.getPrototypeOf,\n objectPrototype = Object.prototype;\nvar arrayPrototype = Array.prototype;\n\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n\n var keys = arrayPrototype.concat(getOwnPropertyNames(sourceComponent),\n // $FlowFixMe\n getOwnPropertySymbols(sourceComponent));\n\n var targetStatics = TYPE_STATICS[targetComponent.$$typeof] || REACT_STATICS;\n\n var sourceStatics = TYPE_STATICS[sourceComponent.$$typeof] || REACT_STATICS;\n\n var i = keys.length;\n var descriptor = void 0;\n var key = void 0;\n\n // eslint-disable-next-line no-plusplus\n while (i--) {\n key = keys[i];\n\n if (\n // $FlowFixMe\n !KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) &&\n // $FlowFixMe\n !(targetStatics && targetStatics[key])) {\n descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n if (descriptor) {\n try {\n // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {\n /* fail silently */\n }\n }\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\n// \nfunction isDerivedReactComponent(fn) {\n return !!(fn && fn.prototype && fn.prototype.isReactComponent);\n}\n\n// \n// Helper to call a given function, only once\nvar once = (function (cb) {\n var called = false;\n\n return function () {\n if (!called) {\n called = true;\n cb.apply(undefined, arguments);\n }\n };\n});\n\n// \n\nvar ThemeContext = createContext();\n\nvar ThemeConsumer = ThemeContext.Consumer;\n\n/**\n * Provide a theme to an entire react component tree via context\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider(props) {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext.bind(_this));\n _this.renderInner = _this.renderInner.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) return null;\n\n return React.createElement(\n ThemeContext.Consumer,\n null,\n this.renderInner\n );\n };\n\n ThemeProvider.prototype.renderInner = function renderInner(outerTheme) {\n var context = this.getContext(this.props.theme, outerTheme);\n\n return React.createElement(\n ThemeContext.Provider,\n { value: context },\n this.props.children\n );\n };\n\n /**\n * Get the theme from the props, supporting both (outerTheme) => {}\n * as well as object notation\n */\n\n\n ThemeProvider.prototype.getTheme = function getTheme(theme, outerTheme) {\n if (isFunction(theme)) {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme === null || Array.isArray(mergedTheme) || (typeof mergedTheme === 'undefined' ? 'undefined' : _typeof(mergedTheme)) !== 'object')) {\n throw new StyledComponentsError(7);\n }\n\n return mergedTheme;\n }\n\n if (theme === null || Array.isArray(theme) || (typeof theme === 'undefined' ? 'undefined' : _typeof(theme)) !== 'object') {\n throw new StyledComponentsError(8);\n }\n\n return _extends({}, outerTheme, theme);\n };\n\n ThemeProvider.prototype.getContext = function getContext(theme, outerTheme) {\n return this.getTheme(theme, outerTheme);\n };\n\n return ThemeProvider;\n}(Component);\n\n// \n\nvar CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nvar ServerStyleSheet = function () {\n function ServerStyleSheet() {\n classCallCheck(this, ServerStyleSheet);\n\n /* The master sheet might be reset, so keep a reference here */\n this.masterSheet = StyleSheet.master;\n this.instance = this.masterSheet.clone();\n this.sealed = false;\n }\n\n /**\n * Mark the ServerStyleSheet as being fully emitted and manually GC it from the\n * StyleSheet singleton.\n */\n\n\n ServerStyleSheet.prototype.seal = function seal() {\n if (!this.sealed) {\n /* Remove sealed StyleSheets from the master sheet */\n var index = this.masterSheet.clones.indexOf(this.instance);\n this.masterSheet.clones.splice(index, 1);\n this.sealed = true;\n }\n };\n\n ServerStyleSheet.prototype.collectStyles = function collectStyles(children) {\n if (this.sealed) {\n throw new StyledComponentsError(2);\n }\n\n return React.createElement(\n StyleSheetManager,\n { sheet: this.instance },\n children\n );\n };\n\n ServerStyleSheet.prototype.getStyleTags = function getStyleTags() {\n this.seal();\n return this.instance.toHTML();\n };\n\n ServerStyleSheet.prototype.getStyleElement = function getStyleElement() {\n this.seal();\n return this.instance.toReactElements();\n };\n\n ServerStyleSheet.prototype.interleaveWithNodeStream = function interleaveWithNodeStream(readableStream) {\n var _this = this;\n\n {\n throw new StyledComponentsError(3);\n }\n\n /* the tag index keeps track of which tags have already been emitted */\n var instance = this.instance;\n\n var instanceTagIndex = 0;\n\n var streamAttr = SC_STREAM_ATTR + '=\"true\"';\n\n var transformer = new stream.Transform({\n transform: function appendStyleChunks(chunk, /* encoding */_, callback) {\n var tags = instance.tags;\n\n var html = '';\n\n /* retrieve html for each new style tag */\n for (; instanceTagIndex < tags.length; instanceTagIndex += 1) {\n var tag = tags[instanceTagIndex];\n html += tag.toHTML(streamAttr);\n }\n\n /* force our StyleSheets to emit entirely new tags */\n instance.sealAllTags();\n\n var renderedHtml = chunk.toString();\n\n /* prepend style html to chunk, unless the start of the chunk is a closing tag in which case append right after that */\n if (CLOSING_TAG_R.test(renderedHtml)) {\n var endOfClosingTag = renderedHtml.indexOf('>');\n\n this.push(renderedHtml.slice(0, endOfClosingTag + 1) + html + renderedHtml.slice(endOfClosingTag + 1));\n } else this.push(html + renderedHtml);\n\n callback();\n }\n });\n\n readableStream.on('end', function () {\n return _this.seal();\n });\n\n readableStream.on('error', function (err) {\n _this.seal();\n\n // forward the error to the transform stream\n transformer.emit('error', err);\n });\n\n return readableStream.pipe(transformer);\n };\n\n return ServerStyleSheet;\n}();\n\n// \n\nvar StyleSheetContext = createContext();\nvar StyleSheetConsumer = StyleSheetContext.Consumer;\n\nvar StyleSheetManager = function (_Component) {\n inherits(StyleSheetManager, _Component);\n\n function StyleSheetManager(props) {\n classCallCheck(this, StyleSheetManager);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext);\n return _this;\n }\n\n StyleSheetManager.prototype.getContext = function getContext(sheet, target) {\n if (sheet) {\n return sheet;\n } else if (target) {\n return new StyleSheet(target);\n } else {\n throw new StyledComponentsError(4);\n }\n };\n\n StyleSheetManager.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n sheet = _props.sheet,\n target = _props.target;\n\n\n return React.createElement(\n StyleSheetContext.Provider,\n { value: this.getContext(sheet, target) },\n process.env.NODE_ENV !== 'production' ? React.Children.only(children) : children\n );\n };\n\n return StyleSheetManager;\n}(Component);\nprocess.env.NODE_ENV !== \"production\" ? StyleSheetManager.propTypes = {\n sheet: PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]),\n\n target: PropTypes.shape({\n appendChild: PropTypes.func.isRequired\n })\n} : void 0;\n\n// \n\nvar THEME_PROP_REGEX = /\\.theme[.[]/;\nvar identifiers = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(_ComponentStyle, _displayName, parentComponentId) {\n var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName);\n\n /**\n * This ensures uniqueness if two components happen to share\n * the same displayName.\n */\n var nr = (identifiers[displayName] || 0) + 1;\n identifiers[displayName] = nr;\n\n var componentId = displayName + '-' + _ComponentStyle.generateName(displayName + nr);\n\n return parentComponentId ? parentComponentId + '-' + componentId : componentId;\n}\n\n// $FlowFixMe\n\nvar StyledComponent = function (_Component) {\n inherits(StyledComponent, _Component);\n\n function StyledComponent() {\n classCallCheck(this, StyledComponent);\n\n var _this = possibleConstructorReturn(this, _Component.call(this));\n\n _this.attrs = {};\n\n _this.renderOuter = _this.renderOuter.bind(_this);\n _this.renderInner = _this.renderInner.bind(_this);\n\n if (process.env.NODE_ENV !== 'production') {\n _this.warnInnerRef = once(function (displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('The \"innerRef\" API has been removed in styled-components v4 in favor of React 16 ref forwarding, use \"ref\" instead like a typical component. \"innerRef\" was detected on component \"' + displayName + '\".')\n );\n });\n\n _this.warnAttrsFnObjectKeyDeprecated = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('Functions as object-form attrs({}) keys are now deprecated and will be removed in a future version of styled-components. Switch to the new attrs(props => ({})) syntax instead for easier and more powerful composition. The attrs key in question is \"' + key + '\" on component \"' + displayName + '\".', '\\n ' + new Error().stack)\n );\n });\n\n _this.warnNonStyledComponentAttrsObjectKey = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('It looks like you\\'ve used a non styled-component as the value for the \"' + key + '\" prop in an object-form attrs constructor of \"' + displayName + '\".\\n' + 'You should use the new function-form attrs constructor which avoids this issue: attrs(props => ({ yourStuff }))\\n' + \"To continue using the deprecated object syntax, you'll need to wrap your component prop in a function to make it available inside the styled component (you'll still get the deprecation warning though.)\\n\" + ('For example, { ' + key + ': () => InnerComponent } instead of { ' + key + ': InnerComponent }'))\n );\n });\n }\n return _this;\n }\n\n StyledComponent.prototype.render = function render() {\n return React.createElement(\n StyleSheetConsumer,\n null,\n this.renderOuter\n );\n };\n\n StyledComponent.prototype.renderOuter = function renderOuter() {\n var styleSheet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : StyleSheet.master;\n\n this.styleSheet = styleSheet;\n\n // No need to subscribe a static component to theme changes, it won't change anything\n if (this.props.forwardedComponent.componentStyle.isStatic) return this.renderInner();\n\n return React.createElement(\n ThemeConsumer,\n null,\n this.renderInner\n );\n };\n\n StyledComponent.prototype.renderInner = function renderInner(theme) {\n var _props$forwardedCompo = this.props.forwardedComponent,\n componentStyle = _props$forwardedCompo.componentStyle,\n defaultProps = _props$forwardedCompo.defaultProps,\n displayName = _props$forwardedCompo.displayName,\n foldedComponentIds = _props$forwardedCompo.foldedComponentIds,\n styledComponentId = _props$forwardedCompo.styledComponentId,\n target = _props$forwardedCompo.target,\n usesTheme = _props$forwardedCompo.usesTheme;\n\n\n var generatedClassName = void 0;\n var rawTheme = void 0;\n\n if (componentStyle.isStatic) {\n generatedClassName = this.generateAndInjectStyles(EMPTY_OBJECT, this.props);\n } else {\n rawTheme = determineTheme(this.props, theme, defaultProps);\n generatedClassName = this.generateAndInjectStyles(rawTheme || EMPTY_OBJECT, this.props);\n\n if (process.env.NODE_ENV !== 'production' && usesTheme && !rawTheme) {\n console.error('Component \\'' +\n // $FlowFixMe\n displayName + '\\' (.' + styledComponentId + ') references the \\'theme\\' prop in its styles but no theme was provided via prop or .');\n }\n }\n\n var elementToBeCreated = this.props.as || this.attrs.as || target;\n var isTargetTag = isTag(elementToBeCreated);\n\n var propsForElement = {};\n var computedProps = _extends({}, this.props, this.attrs);\n\n var key = void 0;\n // eslint-disable-next-line guard-for-in\n for (key in computedProps) {\n if (process.env.NODE_ENV !== 'production' && key === 'innerRef' && isTargetTag) {\n this.warnInnerRef(displayName);\n }\n\n if (key === 'forwardedComponent' || key === 'as') {\n continue;\n } else if (key === 'forwardedRef') propsForElement.ref = computedProps[key];else if (key === 'forwardedAs') propsForElement.as = computedProps[key];else if (!isTargetTag || validAttr(key)) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (this.props.style && this.attrs.style) {\n propsForElement.style = _extends({}, this.attrs.style, this.props.style);\n }\n\n propsForElement.className = Array.prototype.concat(foldedComponentIds, styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : null, this.props.className, this.attrs.className).filter(Boolean).join(' ');\n\n return createElement(elementToBeCreated, propsForElement);\n };\n\n StyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props, attrs) {\n var _this2 = this;\n\n var context = _extends({}, props, { theme: theme });\n\n if (!attrs.length) return context;\n\n this.attrs = {};\n\n attrs.forEach(function (attrDef) {\n var resolvedAttrDef = attrDef;\n var attrDefWasFn = false;\n var attr = void 0;\n var key = void 0;\n\n if (isFunction(resolvedAttrDef)) {\n // $FlowFixMe\n resolvedAttrDef = resolvedAttrDef(context);\n attrDefWasFn = true;\n }\n\n /* eslint-disable guard-for-in */\n // $FlowFixMe\n for (key in resolvedAttrDef) {\n attr = resolvedAttrDef[key];\n\n if (!attrDefWasFn) {\n if (isFunction(attr) && !isDerivedReactComponent(attr) && !isStyledComponent(attr)) {\n if (process.env.NODE_ENV !== 'production') {\n _this2.warnAttrsFnObjectKeyDeprecated(key, props.forwardedComponent.displayName);\n }\n\n attr = attr(context);\n\n if (process.env.NODE_ENV !== 'production' && React.isValidElement(attr)) {\n _this2.warnNonStyledComponentAttrsObjectKey(key, props.forwardedComponent.displayName);\n }\n }\n }\n\n _this2.attrs[key] = attr;\n context[key] = attr;\n }\n /* eslint-enable */\n });\n\n return context;\n };\n\n StyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var _props$forwardedCompo2 = props.forwardedComponent,\n attrs = _props$forwardedCompo2.attrs,\n componentStyle = _props$forwardedCompo2.componentStyle,\n warnTooManyClasses = _props$forwardedCompo2.warnTooManyClasses;\n\n // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n\n if (componentStyle.isStatic && !attrs.length) {\n return componentStyle.generateAndInjectStyles(EMPTY_OBJECT, this.styleSheet);\n }\n\n var className = componentStyle.generateAndInjectStyles(this.buildExecutionContext(theme, props, attrs), this.styleSheet);\n\n if (process.env.NODE_ENV !== 'production' && warnTooManyClasses) warnTooManyClasses(className);\n\n return className;\n };\n\n return StyledComponent;\n}(Component);\n\nfunction createStyledComponent(target, options, rules) {\n var isTargetStyledComp = isStyledComponent(target);\n var isClass = !isTag(target);\n\n var _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? generateDisplayName(target) : _options$displayName,\n _options$componentId = options.componentId,\n componentId = _options$componentId === undefined ? generateId(ComponentStyle, options.displayName, options.parentComponentId) : _options$componentId,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? StyledComponent : _options$ParentCompon,\n _options$attrs = options.attrs,\n attrs = _options$attrs === undefined ? EMPTY_ARRAY : _options$attrs;\n\n\n var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n var finalAttrs =\n // $FlowFixMe\n isTargetStyledComp && target.attrs ? Array.prototype.concat(target.attrs, attrs).filter(Boolean) : attrs;\n\n var componentStyle = new ComponentStyle(isTargetStyledComp ? // fold the underlying StyledComponent rules up (implicit extend)\n // $FlowFixMe\n target.componentStyle.rules.concat(rules) : rules, finalAttrs, styledComponentId);\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n var WrappedStyledComponent = void 0;\n var forwardRef = function forwardRef(props, ref) {\n return React.createElement(ParentComponent, _extends({}, props, { forwardedComponent: WrappedStyledComponent, forwardedRef: ref }));\n };\n forwardRef.displayName = displayName;\n WrappedStyledComponent = React.forwardRef(forwardRef);\n WrappedStyledComponent.displayName = displayName;\n\n // $FlowFixMe\n WrappedStyledComponent.attrs = finalAttrs;\n // $FlowFixMe\n WrappedStyledComponent.componentStyle = componentStyle;\n\n // $FlowFixMe\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp ? // $FlowFixMe\n Array.prototype.concat(target.foldedComponentIds, target.styledComponentId) : EMPTY_ARRAY;\n\n // $FlowFixMe\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n // $FlowFixMe\n WrappedStyledComponent.target = isTargetStyledComp ? target.target : target;\n\n // $FlowFixMe\n WrappedStyledComponent.withComponent = function withComponent(tag) {\n var previousComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['componentId']);\n\n\n var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag)));\n\n var newOptions = _extends({}, optionsToCopy, {\n attrs: finalAttrs,\n componentId: newComponentId,\n ParentComponent: ParentComponent\n });\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n // $FlowFixMe\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get: function get$$1() {\n return this._foldedDefaultProps;\n },\n set: function set$$1(obj) {\n // $FlowFixMe\n this._foldedDefaultProps = isTargetStyledComp ? merge(target.defaultProps, obj) : obj;\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n WrappedStyledComponent.usesTheme = componentStyle.rules.some(function (x) {\n return isFunction(x) && THEME_PROP_REGEX.test(x.toString());\n });\n\n // $FlowFixMe\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName);\n }\n\n // $FlowFixMe\n WrappedStyledComponent.toString = function () {\n return '.' + WrappedStyledComponent.styledComponentId;\n };\n\n if (isClass) {\n hoistNonReactStatics(WrappedStyledComponent, target, {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n styledComponentId: true,\n target: true,\n withComponent: true\n });\n }\n\n return WrappedStyledComponent;\n}\n\n// \n// Thanks to ReactDOMFactories for this handy list!\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr',\n\n// SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'marker', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// \n\nvar styled = function styled(tag) {\n return constructWithOptions(createStyledComponent, tag);\n};\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(function (domElement) {\n styled[domElement] = styled(domElement);\n});\n\n// \n\nvar GlobalStyle = function () {\n function GlobalStyle(rules, componentId) {\n classCallCheck(this, GlobalStyle);\n\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules, EMPTY_ARRAY);\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n GlobalStyle.prototype.createStyles = function createStyles(executionContext, styleSheet) {\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var css = stringifyRules(flatCSS, '');\n\n styleSheet.inject(this.componentId, css);\n };\n\n GlobalStyle.prototype.removeStyles = function removeStyles(styleSheet) {\n var componentId = this.componentId;\n\n if (styleSheet.hasId(componentId)) {\n styleSheet.remove(componentId);\n }\n };\n\n // TODO: overwrite in-place instead of remove+create?\n\n\n GlobalStyle.prototype.renderStyles = function renderStyles(executionContext, styleSheet) {\n this.removeStyles(styleSheet);\n this.createStyles(executionContext, styleSheet);\n };\n\n return GlobalStyle;\n}();\n\n// \n\n// place our cache into shared context so it'll persist between HMRs\nif (IS_BROWSER) {\n window.scCGSHMRCache = {};\n}\n\nfunction createGlobalStyle(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var id = 'sc-global-' + murmurhash(JSON.stringify(rules));\n var style = new GlobalStyle(rules, id);\n\n var GlobalStyleComponent = function (_React$Component) {\n inherits(GlobalStyleComponent, _React$Component);\n\n function GlobalStyleComponent(props) {\n classCallCheck(this, GlobalStyleComponent);\n\n var _this = possibleConstructorReturn(this, _React$Component.call(this, props));\n\n var _this$constructor = _this.constructor,\n globalStyle = _this$constructor.globalStyle,\n styledComponentId = _this$constructor.styledComponentId;\n\n\n if (IS_BROWSER) {\n window.scCGSHMRCache[styledComponentId] = (window.scCGSHMRCache[styledComponentId] || 0) + 1;\n }\n\n /**\n * This fixes HMR compatibility. Don't ask me why, but this combination of\n * caching the closure variables via statics and then persisting the statics in\n * state works across HMR where no other combination did. ¯\\_(ツ)_/¯\n */\n _this.state = {\n globalStyle: globalStyle,\n styledComponentId: styledComponentId\n };\n return _this;\n }\n\n GlobalStyleComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n if (window.scCGSHMRCache[this.state.styledComponentId]) {\n window.scCGSHMRCache[this.state.styledComponentId] -= 1;\n }\n /**\n * Depending on the order \"render\" is called this can cause the styles to be lost\n * until the next render pass of the remaining instance, which may\n * not be immediate.\n */\n if (window.scCGSHMRCache[this.state.styledComponentId] === 0) {\n this.state.globalStyle.removeStyles(this.styleSheet);\n }\n };\n\n GlobalStyleComponent.prototype.render = function render() {\n var _this2 = this;\n\n if (process.env.NODE_ENV !== 'production' && React.Children.count(this.props.children)) {\n // eslint-disable-next-line no-console\n console.warn('The global style component ' + this.state.styledComponentId + ' was given child JSX. createGlobalStyle does not render children.');\n }\n\n return React.createElement(\n StyleSheetConsumer,\n null,\n function (styleSheet) {\n _this2.styleSheet = styleSheet || StyleSheet.master;\n\n var globalStyle = _this2.state.globalStyle;\n\n\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(STATIC_EXECUTION_CONTEXT, _this2.styleSheet);\n\n return null;\n } else {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = _this2.constructor.defaultProps;\n\n\n var context = _extends({}, _this2.props);\n\n if (typeof theme !== 'undefined') {\n context.theme = determineTheme(_this2.props, theme, defaultProps);\n }\n\n globalStyle.renderStyles(context, _this2.styleSheet);\n\n return null;\n }\n );\n }\n }\n );\n };\n\n return GlobalStyleComponent;\n }(React.Component);\n\n GlobalStyleComponent.globalStyle = style;\n GlobalStyleComponent.styledComponentId = id;\n\n\n return GlobalStyleComponent;\n}\n\n// \n\nvar replaceWhitespace = function replaceWhitespace(str) {\n return str.replace(/\\s|\\\\n/g, '');\n};\n\nfunction keyframes(strings) {\n /* Warning if you've used keyframes on React Native */\n if (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn('`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.');\n }\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n\n var name = generateAlphabeticName(murmurhash(replaceWhitespace(JSON.stringify(rules))));\n\n return new Keyframes(name, stringifyRules(rules, name, '@keyframes'));\n}\n\n// \n\nvar withTheme = (function (Component$$1) {\n var WithTheme = React.forwardRef(function (props, ref) {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = Component$$1.defaultProps;\n\n var themeProp = determineTheme(props, theme, defaultProps);\n\n if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + getComponentName(Component$$1) + '\"');\n }\n\n return React.createElement(Component$$1, _extends({}, props, { theme: themeProp, ref: ref }));\n }\n );\n });\n\n hoistNonReactStatics(WithTheme, Component$$1);\n\n WithTheme.displayName = 'WithTheme(' + getComponentName(Component$$1) + ')';\n\n return WithTheme;\n});\n\n// \n\n/* eslint-disable */\nvar __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS = {\n StyleSheet: StyleSheet\n};\n\n// \n\n/* Warning if you've imported this file on React Native */\nif (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like you've imported 'styled-components' on React Native.\\n\" + \"Perhaps you're looking to import 'styled-components/native'?\\n\" + 'Read more about this at https://www.styled-components.com/docs/basics#react-native');\n}\n\n/* Warning if there are several instances of styled-components */\nif (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test' && typeof window !== 'undefined' && typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Node.js') === -1 && navigator.userAgent.indexOf('jsdom') === -1) {\n window['__styled-components-init__'] = window['__styled-components-init__'] || 0;\n\n if (window['__styled-components-init__'] === 1) {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. \" + 'This may cause dynamic styles not rendering properly, errors happening during rehydration process ' + 'and makes your application bigger without a good reason.\\n\\n' + 'See https://s-c.sh/2BAXzed for more info.');\n }\n\n window['__styled-components-init__'] += 1;\n}\n\n//\n\nexport default styled;\nexport { createGlobalStyle, css, isStyledComponent, keyframes, ServerStyleSheet, StyleSheetConsumer, StyleSheetContext, StyleSheetManager, ThemeConsumer, ThemeContext, ThemeProvider, withTheme, __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS };\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","export const colors = {\n PRIMARY: '#ABE2FB',\n SECONDARY: '#E6E6E6',\n DARKER_PRIMARY: '#87ceeb',\n OFF_WHITE: '#15181A',\n GREY: '#D3D3D3',\n RED: '#FF5E5E',\n DARK_GREY: '#535D63'\n};\n\nexport const TRACK_TOTAL_DEG = 270.0;\n\nexport const RADIAN = Math.PI / 180.0;\n\nexport const light = {\n primary: colors.PRIMARY,\n secondary: colors.SECONDARY,\n detail: colors.GREY,\n dark: false\n};\n\nexport const dark = {\n primary: colors.PRIMARY,\n secondary: colors.DARK_GREY,\n detail: colors.DARK_GREY,\n dark: true\n};\n\nexport default {\n dark,\n light,\n colors\n};\n","import { omit } from 'ramda';\n\nexport const getClassName = (componentName, theme) => {\n return 'daq-' + componentName + (theme && theme.dark ? '--dark' : '--light');\n};\n\nexport const getFilteredProps = props => omit(['className', 'id', 'setProps', 'style'], props);\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(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};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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};","import React from 'react';\nimport styled from 'styled-components';\n\nimport Label from './Label.styled';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-around;\n flex-direction: column;\n ${({ fullSize }) => {\n if (fullSize) return 'width: 100%;';\n return '';\n }}\n`;\n\nfunction LabelContainer(props) {\n let labelText = props.label;\n let customLabelStyle = {};\n if (typeof props.label === 'object') {\n labelText = props.label.label;\n customLabelStyle = props.label.style;\n }\n const labelElement = \n // if (labelText && labelText.length) {\n return (\n \n {props.labelPosition == 'top' && labelElement}\n {props.children}\n {props.labelPosition != 'top' && labelElement}\n \n );\n // }\n // return
{props.children}
;\n}\n\nLabelContainer.defaultProps = {\n labelPosition: 'bottom'\n};\n\nexport default LabelContainer;\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = 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 (0, _defineProperty2.default)(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}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","(function() { module.exports = window[\"ReactDOM\"]; }());","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n\tvar _react = __webpack_require__(1);\n\n\tvar _react2 = _interopRequireDefault(_react);\n\n\tvar _propTypes = __webpack_require__(2);\n\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\tvar KEYCODE_UP = 38;\n\tvar KEYCODE_DOWN = 40;\n\tvar IS_BROWSER = typeof document != 'undefined';\n\tvar RE_NUMBER = /^[+-]?((\\.\\d+)|(\\d+(\\.\\d+)?))$/;\n\tvar RE_INCOMPLETE_NUMBER = /^([+-]|\\.0*|[+-]\\.0*|[+-]?\\d+\\.)?$/;\n\n\tfunction addClass(element, className) {\n\t if (element.classList) {\n\t return element.classList.add(className);\n\t }\n\t if (!element.className.search(new RegExp(\"\\\\b\" + className + \"\\\\b\"))) {\n\t element.className = \" \" + className;\n\t }\n\t}\n\n\tfunction removeClass(element, className) {\n\t if (element.className) {\n\t if (element.classList) {\n\t return element.classList.remove(className);\n\t }\n\n\t element.className = element.className.replace(new RegExp(\"\\\\b\" + className + \"\\\\b\", \"g\"), \"\");\n\t }\n\t}\n\n\tfunction access(object, prop, defaultValue) {\n\t var result = object[prop];\n\t if (typeof result == \"function\") {\n\t for (var _len = arguments.length, args = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n\t args[_key - 3] = arguments[_key];\n\t }\n\n\t result = result.apply(undefined, args);\n\t }\n\t return result === undefined ? defaultValue : result;\n\t}\n\n\tvar NumericInput = function (_Component) {\n\t _inherits(NumericInput, _Component);\n\n\t function NumericInput() {\n\t var _ref;\n\n\t _classCallCheck(this, NumericInput);\n\n\t for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t args[_key2] = arguments[_key2];\n\t }\n\n\t var _this = _possibleConstructorReturn(this, (_ref = NumericInput.__proto__ || Object.getPrototypeOf(NumericInput)).call.apply(_ref, [this].concat(args)));\n\n\t _this._isStrict = !!_this.props.strict;\n\n\t _this.state = _extends({\n\t btnDownHover: false,\n\t btnDownActive: false,\n\t btnUpHover: false,\n\t btnUpActive: false,\n\t stringValue: \"\"\n\t }, _this._propsToState(_this.props));\n\t _this.stop = _this.stop.bind(_this);\n\t _this.onTouchEnd = _this.onTouchEnd.bind(_this);\n\t _this.refsInput = {};\n\t _this.refsWrapper = {};\n\t return _this;\n\t }\n\n\t _createClass(NumericInput, [{\n\t key: '_propsToState',\n\t value: function _propsToState(props) {\n\t var out = {};\n\n\t if (props.hasOwnProperty(\"value\")) {\n\t out.stringValue = String(props.value || props.value === 0 ? props.value : '').trim();\n\n\t out.value = out.stringValue !== '' ? this._parse(props.value) : null;\n\t } else if (!this._isMounted && props.hasOwnProperty(\"defaultValue\")) {\n\t out.stringValue = String(props.defaultValue || props.defaultValue === 0 ? props.defaultValue : '').trim();\n\n\t out.value = props.defaultValue !== '' ? this._parse(props.defaultValue) : null;\n\t }\n\n\t return out;\n\t }\n\t }, {\n\t key: 'componentWillReceiveProps',\n\t value: function componentWillReceiveProps(props) {\n\t var _this2 = this;\n\n\t this._isStrict = !!props.strict;\n\t var nextState = this._propsToState(props);\n\t if (Object.keys(nextState).length) {\n\t this._ignoreValueChange = true;\n\t this.setState(nextState, function () {\n\t _this2._ignoreValueChange = false;\n\t });\n\t }\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate() {\n\t this.saveSelection();\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate(prevProps, prevState) {\n\t if (!this._ignoreValueChange && prevState.value !== this.state.value && (!isNaN(this.state.value) || this.state.value === null)) {\n\t this._invokeEventCallback(\"onChange\", this.state.value, this.refsInput.value, this.refsInput);\n\t }\n\n\t if (this._inputFocus) {\n\t this.refsInput.focus();\n\n\t if (this.state.selectionStart || this.state.selectionStart === 0) {\n\t this.refsInput.selectionStart = this.state.selectionStart;\n\t }\n\n\t if (this.state.selectionEnd || this.state.selectionEnd === 0) {\n\t this.refsInput.selectionEnd = this.state.selectionEnd;\n\t }\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t this._isMounted = false;\n\t this.stop();\n\t }\n\t }, {\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var _this3 = this;\n\n\t this._isMounted = true;\n\t this.refsInput.getValueAsNumber = function () {\n\t return _this3.state.value || 0;\n\t };\n\n\t this.refsInput.setValue = function (value) {\n\t _this3.setState({\n\t value: _this3._parse(value),\n\t stringValue: value\n\t });\n\t };\n\n\t if (!this._inputFocus && IS_BROWSER && document.activeElement === this.refsInput) {\n\t this._inputFocus = true;\n\t this.refsInput.focus();\n\t this._invokeEventCallback(\"onFocus\", {\n\t target: this.refsInput,\n\t type: \"focus\"\n\t });\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'saveSelection',\n\t value: function saveSelection() {\n\t this.state.selectionStart = this.refsInput.selectionStart;\n\t this.state.selectionEnd = this.refsInput.selectionEnd;\n\t }\n\t }, {\n\t key: 'checkValidity',\n\t value: function checkValidity() {\n\t var valid = void 0,\n\t validationError = \"\";\n\n\t var supportsValidation = !!this.refsInput.checkValidity;\n\n\t var noValidate = !!(this.props.noValidate && this.props.noValidate != \"false\");\n\n\t this.refsInput.noValidate = noValidate;\n\n\t valid = noValidate || !supportsValidation;\n\n\t if (valid) {\n\t validationError = \"\";\n\t } else {\n\t if (this.refsInput.pattern === \"\") {\n\t this.refsInput.pattern = this.props.required ? \".+\" : \".*\";\n\t }\n\n\t if (supportsValidation) {\n\t this.refsInput.checkValidity();\n\t valid = this.refsInput.validity.valid;\n\n\t if (!valid) {\n\t validationError = this.refsInput.validationMessage;\n\t }\n\t }\n\n\t if (valid && supportsValidation && this.props.maxLength) {\n\t if (this.refsInput.value.length > this.props.maxLength) {\n\t validationError = \"This value is too long\";\n\t }\n\t }\n\t }\n\n\t validationError = validationError || (valid ? \"\" : this.refsInput.validationMessage || \"Unknown Error\");\n\n\t var validStateChanged = this._valid !== validationError;\n\t this._valid = validationError;\n\t if (validationError) {\n\t addClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onInvalid\", validationError, this.state.value, this.refsInput.value);\n\t }\n\t } else {\n\t removeClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onValid\", this.state.value, this.refsInput.value);\n\t }\n\t }\n\t }\n\t }, {\n\t key: '_toNumber',\n\t value: function _toNumber(x) {\n\t var n = parseFloat(x);\n\t if (isNaN(n) || !isFinite(n)) {\n\t n = 0;\n\t }\n\n\t if (this._isStrict) {\n\t var precision = access(this.props, \"precision\", null, this);\n\t var q = Math.pow(10, precision === null ? 10 : precision);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t n = Math.min(Math.max(n, _min), _max);\n\t n = Math.round(n * q) / q;\n\t }\n\n\t return n;\n\t }\n\t }, {\n\t key: '_parse',\n\t value: function _parse(x) {\n\t x = String(x);\n\t if (typeof this.props.parse == 'function') {\n\t return parseFloat(this.props.parse(x));\n\t }\n\t return parseFloat(x);\n\t }\n\t }, {\n\t key: '_format',\n\t value: function _format(n) {\n\t var _n = this._toNumber(n);\n\t var precision = access(this.props, \"precision\", null, this);\n\t if (precision !== null) {\n\t _n = n.toFixed(precision);\n\t }\n\n\t _n += \"\";\n\n\t if (this.props.format) {\n\t return this.props.format(_n);\n\t }\n\n\t return _n;\n\t }\n\t }, {\n\t key: '_step',\n\t value: function _step(n, callback) {\n\t var _isStrict = this._isStrict;\n\t this._isStrict = true;\n\n\t var _step = +access(this.props, \"step\", NumericInput.defaultProps.step, this, n > 0 ? NumericInput.DIRECTION_UP : NumericInput.DIRECTION_DOWN);\n\n\t var _n = this._toNumber((this.state.value || 0) + _step * n);\n\n\t if (this.props.snap) {\n\t _n = Math.round(_n / _step) * _step;\n\t }\n\n\t this._isStrict = _isStrict;\n\n\t if (_n !== this.state.value) {\n\t this.setState({ value: _n, stringValue: _n + \"\" }, callback);\n\t return true;\n\t }\n\n\t return false;\n\t }\n\t }, {\n\t key: '_onKeyDown',\n\t value: function _onKeyDown() {\n\t for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n\t args[_key3] = arguments[_key3];\n\t }\n\n\t args[0].persist();\n\t this._invokeEventCallback.apply(this, [\"onKeyDown\"].concat(args));\n\t var e = args[0];\n\t if (!e.isDefaultPrevented()) {\n\t if (e.keyCode === KEYCODE_UP) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? 0.1 : e.shiftKey ? 10 : 1);\n\t } else if (e.keyCode === KEYCODE_DOWN) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? -0.1 : e.shiftKey ? -10 : -1);\n\t } else {\n\t var _value = this.refsInput.value,\n\t length = _value.length;\n\t if (e.keyCode === 8) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd > 0 && _value.length && _value.charAt(this.refsInput.selectionEnd - 1) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd - 1;\n\t }\n\t } else if (e.keyCode === 46) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd < length + 1 && _value.length && _value.charAt(this.refsInput.selectionEnd) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd + 1;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'stop',\n\t value: function stop() {\n\t if (this._timer) {\n\t clearTimeout(this._timer);\n\t }\n\t }\n\t }, {\n\t key: 'increase',\n\t value: function increase() {\n\t var _this4 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(1, callback);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t if (isNaN(this.state.value) || +this.state.value < _max) {\n\t this._timer = setTimeout(function () {\n\t _this4.increase(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'decrease',\n\t value: function decrease() {\n\t var _this5 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(-1, callback);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t if (isNaN(this.state.value) || +this.state.value > _min) {\n\t this._timer = setTimeout(function () {\n\t _this5.decrease(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'onMouseDown',\n\t value: function onMouseDown(dir, callback) {\n\t if (dir == 'down') {\n\t this.decrease(false, callback);\n\t } else if (dir == 'up') {\n\t this.increase(false, callback);\n\t }\n\t }\n\t }, {\n\t key: 'onTouchStart',\n\t value: function onTouchStart(dir, e) {\n\t e.preventDefault();\n\t if (dir == 'down') {\n\t this.decrease();\n\t } else if (dir == 'up') {\n\t this.increase();\n\t }\n\t }\n\t }, {\n\t key: 'onTouchEnd',\n\t value: function onTouchEnd(e) {\n\t e.preventDefault();\n\t this.stop();\n\t }\n\t }, {\n\t key: '_invokeEventCallback',\n\t value: function _invokeEventCallback(callbackName) {\n\t if (typeof this.props[callbackName] == \"function\") {\n\t var _props$callbackName;\n\n\t for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n\t args[_key4 - 1] = arguments[_key4];\n\t }\n\n\t (_props$callbackName = this.props[callbackName]).call.apply(_props$callbackName, [null].concat(args));\n\t }\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _this6 = this;\n\n\t var props = this.props;\n\t var state = this.state;\n\t var css = {};\n\n\t var _props = this.props,\n\t step = _props.step,\n\t min = _props.min,\n\t max = _props.max,\n\t precision = _props.precision,\n\t parse = _props.parse,\n\t format = _props.format,\n\t mobile = _props.mobile,\n\t snap = _props.snap,\n\t componentClass = _props.componentClass,\n\t value = _props.value,\n\t type = _props.type,\n\t style = _props.style,\n\t defaultValue = _props.defaultValue,\n\t onInvalid = _props.onInvalid,\n\t onValid = _props.onValid,\n\t strict = _props.strict,\n\t noStyle = _props.noStyle,\n\t rest = _objectWithoutProperties(_props, ['step', 'min', 'max', 'precision', 'parse', 'format', 'mobile', 'snap', 'componentClass', 'value', 'type', 'style', 'defaultValue', 'onInvalid', 'onValid', 'strict', 'noStyle']);\n\n\t noStyle = noStyle || style === false;\n\n\t for (var x in NumericInput.style) {\n\t css[x] = _extends({}, NumericInput.style[x], style ? style[x] || {} : {});\n\t }\n\n\t var hasFormControl = props.className && /\\bform-control\\b/.test(props.className);\n\n\t if (mobile == 'auto') {\n\t mobile = IS_BROWSER && 'ontouchstart' in document;\n\t }\n\n\t if (typeof mobile == \"function\") {\n\t mobile = mobile.call(this);\n\t }\n\t mobile = !!mobile;\n\n\t var attrs = {\n\t wrap: {\n\t style: noStyle ? null : css.wrap,\n\t className: 'react-numeric-input',\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsWrapper = e;\n\t }\n\t },\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined\n\t },\n\t input: _extends({\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsInput = e;\n\t }\n\t },\n\t type: 'text',\n\t style: noStyle ? null : _extends({}, css.input, !hasFormControl ? css['input:not(.form-control)'] : {}, this._inputFocus ? css['input:focus'] : {})\n\t }, rest),\n\t btnUp: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnUp, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnUpActive ? css['btn:active'] : state.btnUpHover ? css['btn:hover'] : {})\n\t },\n\t btnDown: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnDown, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnDownActive ? css['btn:active'] : state.btnDownHover ? css['btn:hover'] : {})\n\t }\n\t };\n\n\t var stringValue = String(state.stringValue || (state.value || state.value === 0 ? state.value : \"\") || \"\");\n\n\t var loose = !this._isStrict && (this._inputFocus || !this._isMounted);\n\n\t if (loose && RE_INCOMPLETE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (loose && stringValue && !RE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (state.value || state.value === 0) {\n\t attrs.input.value = this._format(state.value);\n\t } else {\n\t attrs.input.value = \"\";\n\t }\n\n\t if (hasFormControl && !noStyle) {\n\t _extends(attrs.wrap.style, css['wrap.hasFormControl']);\n\t }\n\n\t if (mobile && !noStyle) {\n\t _extends(attrs.input.style, css['input.mobile']);\n\t _extends(attrs.btnUp.style, css['btnUp.mobile']);\n\t _extends(attrs.btnDown.style, css['btnDown.mobile']);\n\t }\n\n\t if (!props.disabled && !props.readOnly) {\n\t _extends(attrs.wrap, {\n\t onMouseUp: this.stop,\n\t onMouseLeave: this.stop\n\t });\n\n\t _extends(attrs.btnUp, {\n\t onTouchStart: this.onTouchStart.bind(this, 'up'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnUpHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnUpHover: false,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n\t args[_key5] = arguments[_key5];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('up');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.btnDown, {\n\t onTouchStart: this.onTouchStart.bind(this, 'down'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnDownHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnDownHover: false,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n\t args[_key6] = arguments[_key6];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('down');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.input, {\n\t onChange: function onChange(e) {\n\t var original = e.target.value;\n\t var val = _this6._parse(original);\n\t if (isNaN(val)) {\n\t val = null;\n\t }\n\t _this6.setState({\n\t value: _this6._isStrict ? _this6._toNumber(val) : val,\n\t stringValue: original\n\t });\n\t },\n\t onKeyDown: this._onKeyDown.bind(this),\n\t onInput: function onInput() {\n\t for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n\t args[_key7] = arguments[_key7];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onInput\"].concat(args));\n\t },\n\t onSelect: function onSelect() {\n\t for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n\t args[_key8] = arguments[_key8];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onSelect\"].concat(args));\n\t },\n\t onFocus: function onFocus() {\n\t for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n\t args[_key9] = arguments[_key9];\n\t }\n\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val,\n\t stringValue: val || val === 0 ? val + \"\" : \"\"\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t });\n\t },\n\t onBlur: function onBlur() {\n\t for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n\t args[_key10] = arguments[_key10];\n\t }\n\n\t var _isStrict = _this6._isStrict;\n\t _this6._isStrict = true;\n\t args[0].persist();\n\t _this6._inputFocus = false;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onBlur\"].concat(args));\n\t _this6._isStrict = _isStrict;\n\t });\n\t }\n\t });\n\t } else {\n\t if (!noStyle && props.disabled) {\n\t _extends(attrs.input.style, css['input:disabled']);\n\t }\n\t }\n\n\t var InputTag = componentClass || 'input';\n\n\t if (mobile) {\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus }),\n\t _react2.default.createElement('i', { style: noStyle ? null : css.plus })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus })\n\t )\n\t );\n\t }\n\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowUp })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowDown })\n\t )\n\t );\n\t }\n\t }]);\n\n\t return NumericInput;\n\t}(_react.Component);\n\n\tNumericInput.propTypes = {\n\t step: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t min: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t max: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t precision: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t maxLength: _propTypes2.default.number,\n\t parse: _propTypes2.default.func,\n\t format: _propTypes2.default.func,\n\t className: _propTypes2.default.string,\n\t disabled: _propTypes2.default.bool,\n\t readOnly: _propTypes2.default.bool,\n\t required: _propTypes2.default.bool,\n\t snap: _propTypes2.default.bool,\n\t noValidate: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n\t style: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),\n\t noStyle: _propTypes2.default.bool,\n\t type: _propTypes2.default.string,\n\t pattern: _propTypes2.default.string,\n\t onFocus: _propTypes2.default.func,\n\t onBlur: _propTypes2.default.func,\n\t onKeyDown: _propTypes2.default.func,\n\t onChange: _propTypes2.default.func,\n\t onInvalid: _propTypes2.default.func,\n\t onValid: _propTypes2.default.func,\n\t onInput: _propTypes2.default.func,\n\t onSelect: _propTypes2.default.func,\n\t size: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t strict: _propTypes2.default.bool,\n\t componentClass: _propTypes2.default.string,\n\t mobile: function mobile(props, propName) {\n\t var prop = props[propName];\n\t if (prop !== true && prop !== false && prop !== 'auto' && typeof prop != 'function') {\n\t return new Error('The \"mobile\" prop must be true, false, \"auto\" or a function');\n\t }\n\t }\n\t};\n\tNumericInput.defaultProps = {\n\t step: 1,\n\t min: Number.MIN_SAFE_INTEGER || -9007199254740991,\n\t max: Number.MAX_SAFE_INTEGER || 9007199254740991,\n\t precision: null,\n\t parse: null,\n\t format: null,\n\t mobile: 'auto',\n\t strict: false,\n\t componentClass: \"input\",\n\t style: {}\n\t};\n\tNumericInput.style = {\n\t wrap: {\n\t position: 'relative',\n\t display: 'inline-block'\n\t },\n\n\t 'wrap.hasFormControl': {\n\t display: 'block'\n\t },\n\n\t arrowUp: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0 0.6ex 0.6ex 0.6ex',\n\t borderColor: 'transparent transparent rgba(0, 0, 0, 0.7)',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t arrowDown: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0.6ex 0.6ex 0 0.6ex',\n\t borderColor: 'rgba(0, 0, 0, 0.7) transparent transparent',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t plus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 2,\n\t height: 10,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-5px 0 0 -1px'\n\t },\n\n\t minus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 10,\n\t height: 2,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-1px 0 0 -5px'\n\t },\n\n\t btn: {\n\t position: 'absolute',\n\t right: 2,\n\t width: '2.26ex',\n\t borderColor: 'rgba(0,0,0,.1)',\n\t borderStyle: 'solid',\n\t textAlign: 'center',\n\t cursor: 'default',\n\t transition: 'all 0.1s',\n\t background: 'rgba(0,0,0,.1)',\n\t boxShadow: '-1px -1px 3px rgba(0,0,0,.1) inset,' + '1px 1px 3px rgba(255,255,255,.7) inset'\n\t },\n\n\t btnUp: {\n\t top: 2,\n\t bottom: '50%',\n\t borderRadius: '2px 2px 0 0',\n\t borderWidth: '1px 1px 0 1px'\n\t },\n\n\t 'btnUp.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t btnDown: {\n\t top: '50%',\n\t bottom: 2,\n\t borderRadius: '0 0 2px 2px',\n\t borderWidth: '0 1px 1px 1px'\n\t },\n\n\t 'btnDown.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t left: 2,\n\t top: 2,\n\t right: 'auto',\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t 'btn:hover': {\n\t background: 'rgba(0,0,0,.2)'\n\t },\n\n\t 'btn:active': {\n\t background: 'rgba(0,0,0,.3)',\n\t boxShadow: '0 1px 3px rgba(0,0,0,.2) inset,' + '-1px -1px 4px rgba(255,255,255,.5) inset'\n\t },\n\n\t 'btn:disabled': {\n\t opacity: 0.5,\n\t boxShadow: 'none',\n\t cursor: 'not-allowed'\n\t },\n\n\t input: {\n\t paddingRight: '3ex',\n\t boxSizing: 'border-box',\n\t fontSize: 'inherit'\n\t },\n\n\t 'input:not(.form-control)': {\n\t border: '1px solid #ccc',\n\t borderRadius: 2,\n\t paddingLeft: 4,\n\t display: 'block',\n\t WebkitAppearance: 'none',\n\t lineHeight: 'normal'\n\t },\n\n\t 'input.mobile': {\n\t paddingLeft: ' 3.4ex',\n\t paddingRight: '3.4ex',\n\t textAlign: 'center'\n\t },\n\n\t 'input:focus': {},\n\n\t 'input:disabled': {\n\t color: 'rgba(0, 0, 0, 0.3)',\n\t textShadow: '0 1px 0 rgba(255, 255, 255, 0.8)'\n\t }\n\t};\n\tNumericInput.SPEED = 50;\n\tNumericInput.DELAY = 500;\n\tNumericInput.DIRECTION_UP = \"up\";\n\tNumericInput.DIRECTION_DOWN = \"down\";\n\n\n\tmodule.exports = NumericInput;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"react\");\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"prop-types\");\n\n/***/ })\n/******/ ]);","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","/**\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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (typeof obj === 'undefined') {\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from './_curry1';\nimport _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _isArrayLike from './_isArrayLike';\nimport _xwrap from './_xwrap';\nimport bind from '../bind';\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from './_has';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n};\n\nexport default _isArguments;","import _curry1 from './internal/_curry1';\nimport _has from './internal/_has';\nimport _isArguments from './internal/_isArguments';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar _keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n} : function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n};\nvar keys = /*#__PURE__*/_curry1(_keys);\nexport default keys;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","import _objectAssign from './_objectAssign';\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _curry1 from './internal/_curry1';\nimport _of from './internal/_of';\n\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\nvar of = /*#__PURE__*/_curry1(_of);\nexport default of;","import _curry2 from './internal/_curry2';\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\nvar omit = /*#__PURE__*/_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nexport default omit;","import _cloneRegExp from './internal/_cloneRegExp';\nimport _curry2 from './internal/_curry2';\nimport _isRegExp from './internal/_isRegExp';\nimport toString from './toString';\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\nvar test = /*#__PURE__*/_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n return _cloneRegExp(pattern).test(str);\n});\nexport default test;","import _curry1 from './internal/_curry1';\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\nvar _trim = !hasProtoTrim || /*#__PURE__*/ws.trim() || ! /*#__PURE__*/zeroWidth.trim() ? function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n} : function trim(str) {\n return str.trim();\n};\nvar trim = /*#__PURE__*/_curry1(_trim);\nexport default trim;","export { default as F } from './F';\nexport { default as T } from './T';\nexport { default as __ } from './__';\nexport { default as add } from './add';\nexport { default as addIndex } from './addIndex';\nexport { default as adjust } from './adjust';\nexport { default as all } from './all';\nexport { default as allPass } from './allPass';\nexport { default as always } from './always';\nexport { default as and } from './and';\nexport { default as any } from './any';\nexport { default as anyPass } from './anyPass';\nexport { default as ap } from './ap';\nexport { default as aperture } from './aperture';\nexport { default as append } from './append';\nexport { default as apply } from './apply';\nexport { default as applySpec } from './applySpec';\nexport { default as applyTo } from './applyTo';\nexport { default as ascend } from './ascend';\nexport { default as assoc } from './assoc';\nexport { default as assocPath } from './assocPath';\nexport { default as binary } from './binary';\nexport { default as bind } from './bind';\nexport { default as both } from './both';\nexport { default as call } from './call';\nexport { default as chain } from './chain';\nexport { default as clamp } from './clamp';\nexport { default as clone } from './clone';\nexport { default as comparator } from './comparator';\nexport { default as complement } from './complement';\nexport { default as compose } from './compose';\nexport { default as composeK } from './composeK';\nexport { default as composeP } from './composeP';\nexport { default as concat } from './concat';\nexport { default as cond } from './cond';\nexport { default as construct } from './construct';\nexport { default as constructN } from './constructN';\nexport { default as contains } from './contains';\nexport { default as converge } from './converge';\nexport { default as countBy } from './countBy';\nexport { default as curry } from './curry';\nexport { default as curryN } from './curryN';\nexport { default as dec } from './dec';\nexport { default as defaultTo } from './defaultTo';\nexport { default as descend } from './descend';\nexport { default as difference } from './difference';\nexport { default as differenceWith } from './differenceWith';\nexport { default as dissoc } from './dissoc';\nexport { default as dissocPath } from './dissocPath';\nexport { default as divide } from './divide';\nexport { default as drop } from './drop';\nexport { default as dropLast } from './dropLast';\nexport { default as dropLastWhile } from './dropLastWhile';\nexport { default as dropRepeats } from './dropRepeats';\nexport { default as dropRepeatsWith } from './dropRepeatsWith';\nexport { default as dropWhile } from './dropWhile';\nexport { default as either } from './either';\nexport { default as empty } from './empty';\nexport { default as endsWith } from './endsWith';\nexport { default as eqBy } from './eqBy';\nexport { default as eqProps } from './eqProps';\nexport { default as equals } from './equals';\nexport { default as evolve } from './evolve';\nexport { default as filter } from './filter';\nexport { default as find } from './find';\nexport { default as findIndex } from './findIndex';\nexport { default as findLast } from './findLast';\nexport { default as findLastIndex } from './findLastIndex';\nexport { default as flatten } from './flatten';\nexport { default as flip } from './flip';\nexport { default as forEach } from './forEach';\nexport { default as forEachObjIndexed } from './forEachObjIndexed';\nexport { default as fromPairs } from './fromPairs';\nexport { default as groupBy } from './groupBy';\nexport { default as groupWith } from './groupWith';\nexport { default as gt } from './gt';\nexport { default as gte } from './gte';\nexport { default as has } from './has';\nexport { default as hasIn } from './hasIn';\nexport { default as head } from './head';\nexport { default as identical } from './identical';\nexport { default as identity } from './identity';\nexport { default as ifElse } from './ifElse';\nexport { default as inc } from './inc';\nexport { default as indexBy } from './indexBy';\nexport { default as indexOf } from './indexOf';\nexport { default as init } from './init';\nexport { default as innerJoin } from './innerJoin';\nexport { default as insert } from './insert';\nexport { default as insertAll } from './insertAll';\nexport { default as intersection } from './intersection';\nexport { default as intersperse } from './intersperse';\nexport { default as into } from './into';\nexport { default as invert } from './invert';\nexport { default as invertObj } from './invertObj';\nexport { default as invoker } from './invoker';\nexport { default as is } from './is';\nexport { default as isEmpty } from './isEmpty';\nexport { default as isNil } from './isNil';\nexport { default as join } from './join';\nexport { default as juxt } from './juxt';\nexport { default as keys } from './keys';\nexport { default as keysIn } from './keysIn';\nexport { default as last } from './last';\nexport { default as lastIndexOf } from './lastIndexOf';\nexport { default as length } from './length';\nexport { default as lens } from './lens';\nexport { default as lensIndex } from './lensIndex';\nexport { default as lensPath } from './lensPath';\nexport { default as lensProp } from './lensProp';\nexport { default as lift } from './lift';\nexport { default as liftN } from './liftN';\nexport { default as lt } from './lt';\nexport { default as lte } from './lte';\nexport { default as map } from './map';\nexport { default as mapAccum } from './mapAccum';\nexport { default as mapAccumRight } from './mapAccumRight';\nexport { default as mapObjIndexed } from './mapObjIndexed';\nexport { default as match } from './match';\nexport { default as mathMod } from './mathMod';\nexport { default as max } from './max';\nexport { default as maxBy } from './maxBy';\nexport { default as mean } from './mean';\nexport { default as median } from './median';\nexport { default as memoize } from './memoize';\nexport { default as memoizeWith } from './memoizeWith';\nexport { default as merge } from './merge';\nexport { default as mergeAll } from './mergeAll';\nexport { default as mergeDeepLeft } from './mergeDeepLeft';\nexport { default as mergeDeepRight } from './mergeDeepRight';\nexport { default as mergeDeepWith } from './mergeDeepWith';\nexport { default as mergeDeepWithKey } from './mergeDeepWithKey';\nexport { default as mergeWith } from './mergeWith';\nexport { default as mergeWithKey } from './mergeWithKey';\nexport { default as min } from './min';\nexport { default as minBy } from './minBy';\nexport { default as modulo } from './modulo';\nexport { default as multiply } from './multiply';\nexport { default as nAry } from './nAry';\nexport { default as negate } from './negate';\nexport { default as none } from './none';\nexport { default as not } from './not';\nexport { default as nth } from './nth';\nexport { default as nthArg } from './nthArg';\nexport { default as o } from './o';\nexport { default as objOf } from './objOf';\nexport { default as of } from './of';\nexport { default as omit } from './omit';\nexport { default as once } from './once';\nexport { default as or } from './or';\nexport { default as over } from './over';\nexport { default as pair } from './pair';\nexport { default as partial } from './partial';\nexport { default as partialRight } from './partialRight';\nexport { default as partition } from './partition';\nexport { default as path } from './path';\nexport { default as pathEq } from './pathEq';\nexport { default as pathOr } from './pathOr';\nexport { default as pathSatisfies } from './pathSatisfies';\nexport { default as pick } from './pick';\nexport { default as pickAll } from './pickAll';\nexport { default as pickBy } from './pickBy';\nexport { default as pipe } from './pipe';\nexport { default as pipeK } from './pipeK';\nexport { default as pipeP } from './pipeP';\nexport { default as pluck } from './pluck';\nexport { default as prepend } from './prepend';\nexport { default as product } from './product';\nexport { default as project } from './project';\nexport { default as prop } from './prop';\nexport { default as propEq } from './propEq';\nexport { default as propIs } from './propIs';\nexport { default as propOr } from './propOr';\nexport { default as propSatisfies } from './propSatisfies';\nexport { default as props } from './props';\nexport { default as range } from './range';\nexport { default as reduce } from './reduce';\nexport { default as reduceBy } from './reduceBy';\nexport { default as reduceRight } from './reduceRight';\nexport { default as reduceWhile } from './reduceWhile';\nexport { default as reduced } from './reduced';\nexport { default as reject } from './reject';\nexport { default as remove } from './remove';\nexport { default as repeat } from './repeat';\nexport { default as replace } from './replace';\nexport { default as reverse } from './reverse';\nexport { default as scan } from './scan';\nexport { default as sequence } from './sequence';\nexport { default as set } from './set';\nexport { default as slice } from './slice';\nexport { default as sort } from './sort';\nexport { default as sortBy } from './sortBy';\nexport { default as sortWith } from './sortWith';\nexport { default as split } from './split';\nexport { default as splitAt } from './splitAt';\nexport { default as splitEvery } from './splitEvery';\nexport { default as splitWhen } from './splitWhen';\nexport { default as startsWith } from './startsWith';\nexport { default as subtract } from './subtract';\nexport { default as sum } from './sum';\nexport { default as symmetricDifference } from './symmetricDifference';\nexport { default as symmetricDifferenceWith } from './symmetricDifferenceWith';\nexport { default as tail } from './tail';\nexport { default as take } from './take';\nexport { default as takeLast } from './takeLast';\nexport { default as takeLastWhile } from './takeLastWhile';\nexport { default as takeWhile } from './takeWhile';\nexport { default as tap } from './tap';\nexport { default as test } from './test';\nexport { default as times } from './times';\nexport { default as toLower } from './toLower';\nexport { default as toPairs } from './toPairs';\nexport { default as toPairsIn } from './toPairsIn';\nexport { default as toString } from './toString';\nexport { default as toUpper } from './toUpper';\nexport { default as transduce } from './transduce';\nexport { default as transpose } from './transpose';\nexport { default as traverse } from './traverse';\nexport { default as trim } from './trim';\nexport { default as tryCatch } from './tryCatch';\nexport { default as type } from './type';\nexport { default as unapply } from './unapply';\nexport { default as unary } from './unary';\nexport { default as uncurryN } from './uncurryN';\nexport { default as unfold } from './unfold';\nexport { default as union } from './union';\nexport { default as unionWith } from './unionWith';\nexport { default as uniq } from './uniq';\nexport { default as uniqBy } from './uniqBy';\nexport { default as uniqWith } from './uniqWith';\nexport { default as unless } from './unless';\nexport { default as unnest } from './unnest';\nexport { default as until } from './until';\nexport { default as update } from './update';\nexport { default as useWith } from './useWith';\nexport { default as values } from './values';\nexport { default as valuesIn } from './valuesIn';\nexport { default as view } from './view';\nexport { default as when } from './when';\nexport { default as where } from './where';\nexport { default as whereEq } from './whereEq';\nexport { default as without } from './without';\nexport { default as xprod } from './xprod';\nexport { default as zip } from './zip';\nexport { default as zipObj } from './zipObj';\nexport { default as zipWith } from './zipWith';","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","module.exports = {};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","module.exports = true;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","exports.f = {}.propertyIsEnumerable;\n","import styled, { css } from 'styled-components';\n\nexport default styled.label`\n display: block;\n font-size: 14px;\n ${({ position }) =>\n position === 'top'\n ? css`\n margin-bottom: 8px;\n `\n : css`\n margin-top: 8px;\n `}\n ${props =>\n css`\n ${props.css}\n `}\n`;\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _getPrototypeOf = require(\"../core-js/object/get-prototype-of\");\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _getOwnPropertyDescriptor = require(\"../core-js/object/get-own-property-descriptor\");\n\nvar _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = (0, _getOwnPropertyDescriptor2.default)(object, property);\n\n if (desc === undefined) {\n var parent = (0, _getPrototypeOf2.default)(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};","/**\n * CSS conic-gradient() polyfill\n * By Lea Verou — http://lea.verou.me\n * MIT license\n */\n\n(function(){\n\nvar π = Math.PI;\nvar τ = 2 * π;\nvar ε = .00001;\nvar deg = π/180;\n\nvar dummy = document.createElement(\"div\");\ndocument.head.appendChild(dummy);\n\nvar _ = self.ConicGradient = function(o) {\n\tvar me = this;\n\t_.all.push(this);\n\n\to = o || {};\n\n\tthis.canvas = document.createElement(\"canvas\");\n\tthis.context = this.canvas.getContext(\"2d\");\n\n\tthis.repeating = !!o.repeating;\n\n\tthis.size = o.size || Math.max(innerWidth, innerHeight);\n\n\tthis.canvas.width = this.canvas.height = this.size;\n\n\tvar stops = o.stops;\n\n\tthis.stops = (stops || \"\").split(/\\s*,(?![^(]*\\))\\s*/); // commas that are not followed by a ) without a ( first\n\n\tthis.from = 0;\n\n\tfor (var i=0; i 0) {\n\t\tvar first = this.stops[0].clone();\n\t\tfirst.pos = 0;\n\t\tthis.stops.unshift(first);\n\t}\n\n\t// Add dummy last stop or set first stop’s position to 100% if it doesn’t have one\n\tif (this.stops[this.stops.length - 1].pos === undefined) {\n\t\tthis.stops[this.stops.length - 1].pos = 1;\n\t}\n\telse if (!this.repeating && this.stops[this.stops.length - 1].pos < 1) {\n\t\tvar last = this.stops[this.stops.length - 1].clone();\n\t\tlast.pos = 1;\n\t\tthis.stops.push(last);\n\t}\n\n\tthis.stops.forEach(function(stop, i){\n\t\tif (stop.pos === undefined) {\n\t\t\t// Evenly space color stops with no position\n\t\t\tfor (var j=i+1; this[j]; j++) {\n\t\t\t\tif (this[j].pos !== undefined) {\n\t\t\t\t\tstop.pos = this[i-1].pos + (this[j].pos - this[i-1].pos)/(j-i+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (i > 0) {\n\t\t\t// Normalize color stops whose position is smaller than the position of the stop before them\n\t\t\tstop.pos = Math.max(stop.pos, this[i-1].pos);\n\t\t}\n\t}, this.stops);\n\n\tif (this.repeating) {\n\t\t// Repeat color stops until >= 1\n\t\tvar stops = this.stops.slice();\n\t\tvar lastStop = stops[stops.length-1];\n\t\tvar difference = lastStop.pos - stops[0].pos;\n\n\t\tfor (var i=0; this.stops[this.stops.length-1].pos < 1 && i<10000; i++) {\n\t\t\tfor (var j=0; j' +\n\t\t\t'' +\n\t\t\t'';\n\t},\n\n\tget png() {\n\t\treturn this.canvas.toDataURL();\n\t},\n\n\tget r() {\n\t\treturn Math.sqrt(2) * this.size / 2;\n\t},\n\n\t// Paint the conical gradient on the canvas\n\t// Algorithm inspired from http://jsdo.it/akm2/yr9B\n\tpaint: function() {\n\t\tvar c = this.context;\n\n\t\tvar radius = this.r;\n\t\tvar x = this.size / 2;\n\n\t\tvar stopIndex = 0; // The index of the current color\n\t\tvar stop = this.stops[stopIndex], prevStop;\n\n\t\tvar diff, t;\n\n\t\t// Transform coordinate system so that angles start from the top left, like in CSS\n\t\tc.translate(this.size/2, this.size/2);\n\t\tc.rotate(-90*deg);\n\t\tc.rotate(this.from*deg);\n\t\tc.translate(-this.size/2, -this.size/2);\n\n\t\tfor (var i = 0; i < 360;) {\n\t\t\tif (i/360 + ε >= stop.pos) {\n\t\t\t\t// Switch color stop\n\t\t\t\tdo {\n\t\t\t\t\tprevStop = stop;\n\n\t\t\t\t\tstopIndex++;\n\t\t\t\t\tstop = this.stops[stopIndex];\n\t\t\t\t} while(stop && stop != prevStop && stop.pos === prevStop.pos);\n\n\t\t\t\tif (!stop) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tvar sameColor = prevStop.color + \"\" === stop.color + \"\" && prevStop != stop;\n\n\t\t\t\tdiff = prevStop.color.map(function(c, i){\n\t\t\t\t\treturn stop.color[i] - c;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tt = (i/360 - prevStop.pos) / (stop.pos - prevStop.pos);\n\n\t\t\tvar interpolated = sameColor? stop.color : diff.map(function(d,i){\n\t\t\t\tvar ret = d * t + prevStop.color[i];\n\n\t\t\t\treturn i < 3? ret & 255 : ret;\n\t\t\t});\n\n\t\t\t// Draw a series of arcs, 1deg each\n\t\t\tc.fillStyle = 'rgba(' + interpolated.join(\",\") + ')';\n\t\t\tc.beginPath();\n\t\t\tc.moveTo(x, x);\n\n\t\t\tif (sameColor) {\n\t\t\t\tvar θ = 360 * (stop.pos - prevStop.pos);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar θ = .5;\n\t\t\t}\n\n\t\t\tvar beginArg = i*deg;\n\t\t\tbeginArg = Math.min(360*deg, beginArg);\n\n\t\t\t// .02: To prevent empty blank line and corresponding moire\n\t\t\t// only non-alpha colors are cared now\n\t\t\tvar endArg = beginArg + θ*deg;\n\t\t\tendArg = Math.min(360*deg, endArg + .02);\n\n\t\t\tc.arc(x, x, radius, beginArg, endArg);\n\n\t\t\tc.closePath();\n\t\t\tc.fill();\n\n\t\t\ti += θ;\n\t\t}\n\t}\n};\n\n_.ColorStop = function(gradient, stop) {\n\tthis.gradient = gradient;\n\n\tif (stop) {\n\t\tvar parts = stop.match(/^(.+?)(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?\\s*$/);\n\n\t\tthis.color = _.ColorStop.colorToRGBA(parts[1]);\n\n\t\tif (parts[2]) {\n\t\t\tvar unit = parts[3];\n\n\t\t\tif (unit == \"%\" || parts[2] === \"0\" && !unit) {\n\t\t\t\tthis.pos = parts[2]/100;\n\t\t\t}\n\t\t\telse if (unit == \"turn\") {\n\t\t\t\tthis.pos = +parts[2];\n\t\t\t}\n\t\t\telse if (unit == \"deg\") {\n\t\t\t\tthis.pos = parts[2] / 360;\n\t\t\t}\n\t\t\telse if (unit == \"grad\") {\n\t\t\t\tthis.pos = parts[2] / 400;\n\t\t\t}\n\t\t\telse if (unit == \"rad\") {\n\t\t\t\tthis.pos = parts[2] / τ;\n\t\t\t}\n\t\t}\n\n\t\tif (parts[4]) {\n\t\t\tthis.next = new _.ColorStop(gradient, parts[1] + \" \" + parts[4] + parts[5]);\n\t\t}\n\t}\n}\n\n_.ColorStop.prototype = {\n\tclone: function() {\n\t\tvar ret = new _.ColorStop(this.gradient);\n\t\tret.color = this.color;\n\t\tret.pos = this.pos;\n\n\t\treturn ret;\n\t},\n\n\ttoString: function() {\n\t\treturn \"rgba(\" + this.color.join(\", \") + \") \" + this.pos * 100 + \"%\";\n\t}\n};\n\n_.ColorStop.colorToRGBA = function(color) {\n\tif (!Array.isArray(color) && color.indexOf(\"from\") == -1) {\n\t\tdummy.style.color = color;\n\n\t\tvar rgba = getComputedStyle(dummy).color.match(/rgba?\\(([\\d.]+), ([\\d.]+), ([\\d.]+)(?:, ([\\d.]+))?\\)/);\n\n\t\tif (rgba) {\n\t\t\trgba.shift();\n\t\t\trgba = rgba.map(function(a) { return +a });\n\t\t\trgba[3] = isNaN(rgba[3])? 1 : rgba[3];\n\t\t}\n\n\t\treturn rgba || [0,0,0,0];\n\t}\n\n\treturn color;\n};\n\n})();\n\nif (self.StyleFix) {\n\t// Test if conic gradients are supported first:\n\t(function(){\n\t\tvar dummy = document.createElement(\"p\");\n\t\tdummy.style.backgroundImage = \"conic-gradient(white, black)\";\n\t\tdummy.style.backgroundImage = PrefixFree.prefix + \"conic-gradient(white, black)\";\n\n\t\tif (!dummy.style.backgroundImage) {\n\t\t\t// Not supported, use polyfill\n\t\t\tStyleFix.register(function(css, raw) {\n\t\t\t\tif (css.indexOf(\"conic-gradient\") > -1) {\n\t\t\t\t\tcss = css.replace(/(?:repeating-)?conic-gradient\\(\\s*((?:\\([^()]+\\)|[^;()}])+?)\\)/g, function(gradient, stops) {\n\t\t\t\t\t\treturn new ConicGradient({\n\t\t\t\t\t\t\tstops: stops,\n\t\t\t\t\t\t\trepeating: gradient.indexOf(\"repeating-\") > -1\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn css;\n\t\t\t});\n\t\t}\n\t})();\n}\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","!function(e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(null):\"function\"==typeof define&&define.amd?define(e(null)):window.stylis=e(null)}(function e(a){\"use strict\";var r=/^\\0+/g,c=/[\\0\\r\\f]/g,s=/: */g,t=/zoo|gra/,i=/([,: ])(transform)/g,f=/,+\\s*(?![^(]*[)])/g,n=/ +\\s*(?![^(]*[)])/g,l=/ *[\\0] */g,o=/,\\r+?/g,h=/([\\t\\r\\n ])*\\f?&/g,u=/:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g,d=/\\W+/g,b=/@(k\\w+)\\s*(\\S*)\\s*/,p=/::(place)/g,k=/:(read-only)/g,g=/\\s+(?=[{\\];=:>])/g,A=/([[}=:>])\\s+/g,C=/(\\{[^{]+?);(?=\\})/g,w=/\\s{2,}/g,v=/([^\\(])(:+) */g,m=/[svh]\\w+-[tblr]{2}/,x=/\\(\\s*(.*)\\s*\\)/g,$=/([\\s\\S]*?);/g,y=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\\w-]+)[^]*/,j=/stretch|:\\s*\\w+\\-(?:conte|avail)/,z=/([^-])(image-set\\()/,N=\"-webkit-\",S=\"-moz-\",F=\"-ms-\",W=59,q=125,B=123,D=40,E=41,G=91,H=93,I=10,J=13,K=9,L=64,M=32,P=38,Q=45,R=95,T=42,U=44,V=58,X=39,Y=34,Z=47,_=62,ee=43,ae=126,re=0,ce=12,se=11,te=107,ie=109,fe=115,ne=112,le=111,oe=105,he=99,ue=100,de=112,be=1,pe=1,ke=0,ge=1,Ae=1,Ce=1,we=0,ve=0,me=0,xe=[],$e=[],ye=0,Oe=null,je=-2,ze=-1,Ne=0,Se=1,Fe=2,We=3,qe=0,Be=1,De=\"\",Ee=\"\",Ge=\"\";function He(e,a,s,t,i){for(var f,n,o=0,h=0,u=0,d=0,g=0,A=0,C=0,w=0,m=0,$=0,y=0,O=0,j=0,z=0,R=0,we=0,$e=0,Oe=0,je=0,ze=s.length,Je=ze-1,Re=\"\",Te=\"\",Ue=\"\",Ve=\"\",Xe=\"\",Ye=\"\";R0)Te=Te.replace(c,\"\");if(Te.trim().length>0){switch(C){case M:case K:case W:case J:case I:break;default:Te+=s.charAt(R)}C=W}}if(1===$e)switch(C){case B:case q:case W:case Y:case X:case D:case E:case U:$e=0;case K:case J:case I:case M:break;default:for($e=0,je=R,g=C,R--,C=W;je0)++R,C=g;case B:je=ze}}switch(C){case B:for(g=(Te=Te.trim()).charCodeAt(0),y=1,je=++R;R0)Te=Te.replace(c,\"\");switch(A=Te.charCodeAt(1)){case ue:case ie:case fe:case Q:f=a;break;default:f=xe}if(je=(Ue=He(a,f,Ue,A,i+1)).length,me>0&&0===je)je=Te.length;if(ye>0)if(f=Ie(xe,Te,Oe),n=Pe(We,Ue,f,a,pe,be,je,A,i,t),Te=f.join(\"\"),void 0!==n)if(0===(je=(Ue=n.trim()).length))A=0,Ue=\"\";if(je>0)switch(A){case fe:Te=Te.replace(x,Me);case ue:case ie:case Q:Ue=Te+\"{\"+Ue+\"}\";break;case te:if(Ue=(Te=Te.replace(b,\"$1 $2\"+(Be>0?De:\"\")))+\"{\"+Ue+\"}\",1===Ae||2===Ae&&Le(\"@\"+Ue,3))Ue=\"@\"+N+Ue+\"@\"+Ue;else Ue=\"@\"+Ue;break;default:if(Ue=Te+Ue,t===de)Ve+=Ue,Ue=\"\"}else Ue=\"\";break;default:Ue=He(a,Ie(a,Te,Oe),Ue,t,i+1)}Xe+=Ue,O=0,$e=0,z=0,we=0,Oe=0,j=0,Te=\"\",Ue=\"\",C=s.charCodeAt(++R);break;case q:case W:if((je=(Te=(we>0?Te.replace(c,\"\"):Te).trim()).length)>1){if(0===z)if((g=Te.charCodeAt(0))===Q||g>96&&g<123)je=(Te=Te.replace(\" \",\":\")).length;if(ye>0)if(void 0!==(n=Pe(Se,Te,a,e,pe,be,Ve.length,t,i,t)))if(0===(je=(Te=n.trim()).length))Te=\"\\0\\0\";switch(g=Te.charCodeAt(0),A=Te.charCodeAt(1),g){case re:break;case L:if(A===oe||A===he){Ye+=Te+s.charAt(R);break}default:if(Te.charCodeAt(je-1)===V)break;Ve+=Ke(Te,g,A,Te.charCodeAt(2))}}O=0,$e=0,z=0,we=0,Oe=0,Te=\"\",C=s.charCodeAt(++R)}}switch(C){case J:case I:if(h+d+u+o+ve===0)switch($){case E:case X:case Y:case L:case ae:case _:case T:case ee:case Z:case Q:case V:case U:case W:case B:case q:break;default:if(z>0)$e=1}if(h===Z)h=0;else if(ge+O===0&&t!==te&&Te.length>0)we=1,Te+=\"\\0\";if(ye*qe>0)Pe(Ne,Te,a,e,pe,be,Ve.length,t,i,t);be=1,pe++;break;case W:case q:if(h+d+u+o===0){be++;break}default:switch(be++,Re=s.charAt(R),C){case K:case M:if(d+o+h===0)switch(w){case U:case V:case K:case M:Re=\"\";break;default:if(C!==M)Re=\" \"}break;case re:Re=\"\\\\0\";break;case ce:Re=\"\\\\f\";break;case se:Re=\"\\\\v\";break;case P:if(d+h+o===0&&ge>0)Oe=1,we=1,Re=\"\\f\"+Re;break;case 108:if(d+h+o+ke===0&&z>0)switch(R-z){case 2:if(w===ne&&s.charCodeAt(R-3)===V)ke=w;case 8:if(m===le)ke=m}break;case V:if(d+h+o===0)z=R;break;case U:if(h+u+d+o===0)we=1,Re+=\"\\r\";break;case Y:case X:if(0===h)d=d===C?0:0===d?C:d;break;case G:if(d+h+u===0)o++;break;case H:if(d+h+u===0)o--;break;case E:if(d+h+o===0)u--;break;case D:if(d+h+o===0){if(0===O)switch(2*w+3*m){case 533:break;default:y=0,O=1}u++}break;case L:if(h+u+d+o+z+j===0)j=1;break;case T:case Z:if(d+o+u>0)break;switch(h){case 0:switch(2*C+3*s.charCodeAt(R+1)){case 235:h=Z;break;case 220:je=R,h=T}break;case T:if(C===Z&&w===T&&je+2!==R){if(33===s.charCodeAt(je+2))Ve+=s.substring(je,R+1);Re=\"\",h=0}}}if(0===h){if(ge+d+o+j===0&&t!==te&&C!==W)switch(C){case U:case ae:case _:case ee:case E:case D:if(0===O){switch(w){case K:case M:case I:case J:Re+=\"\\0\";break;default:Re=\"\\0\"+Re+(C===U?\"\":\"\\0\")}we=1}else switch(C){case D:if(z+7===R&&108===w)z=0;O=++y;break;case E:if(0==(O=--y))we=1,Re+=\"\\0\"}break;case K:case M:switch(w){case re:case B:case q:case W:case U:case ce:case K:case M:case I:case J:break;default:if(0===O)we=1,Re+=\"\\0\"}}if(Te+=Re,C!==M&&C!==K)$=C}}m=w,w=C,R++}if(je=Ve.length,me>0)if(0===je&&0===Xe.length&&0===a[0].length==false)if(t!==ie||1===a.length&&(ge>0?Ee:Ge)===a[0])je=a.join(\",\").length+2;if(je>0){if(f=0===ge&&t!==te?function(e){for(var a,r,s=0,t=e.length,i=Array(t);s1)continue;if(u=n.charCodeAt(n.length-1),d=r.charCodeAt(0),a=\"\",0!==o)switch(u){case T:case ae:case _:case ee:case M:case D:break;default:a=\" \"}switch(d){case P:r=a+Ee;case ae:case _:case ee:case M:case E:case D:break;case G:r=a+r+Ee;break;case V:switch(2*r.charCodeAt(1)+3*r.charCodeAt(2)){case 530:if(Ce>0){r=a+r.substring(8,h-1);break}default:if(o<1||f[o-1].length<1)r=a+Ee+r}break;case U:a=\"\";default:if(h>1&&r.indexOf(\":\")>0)r=a+r.replace(v,\"$1\"+Ee+\"$2\");else r=a+r+Ee}n+=r}i[s]=n.replace(c,\"\").trim()}return i}(a):a,ye>0)if(void 0!==(n=Pe(Fe,Ve,f,e,pe,be,je,t,i,t))&&0===(Ve=n).length)return Ye+Ve+Xe;if(Ve=f.join(\",\")+\"{\"+Ve+\"}\",Ae*ke!=0){if(2===Ae&&!Le(Ve,2))ke=0;switch(ke){case le:Ve=Ve.replace(k,\":\"+S+\"$1\")+Ve;break;case ne:Ve=Ve.replace(p,\"::\"+N+\"input-$1\")+Ve.replace(p,\"::\"+S+\"$1\")+Ve.replace(p,\":\"+F+\"input-$1\")+Ve}ke=0}}return Ye+Ve+Xe}function Ie(e,a,r){var c=a.trim().split(o),s=c,t=c.length,i=e.length;switch(i){case 0:case 1:for(var f=0,n=0===i?\"\":e[0]+\" \";f0&&ge>0)return s.replace(u,\"$1\").replace(h,\"$1\"+Ge);break;default:return e.trim()+s.replace(h,\"$1\"+e.trim())}default:if(r*ge>0&&s.indexOf(\"\\f\")>0)return s.replace(h,(e.charCodeAt(0)===V?\"\":\"$1\")+e.trim())}return e+s}function Ke(e,a,r,c){var l,o=0,h=e+\";\",u=2*a+3*r+4*c;if(944===u)return function(e){var a=e.length,r=e.indexOf(\":\",9)+1,c=e.substring(0,r).trim(),s=e.substring(r,a-1).trim();switch(e.charCodeAt(9)*Be){case 0:break;case Q:if(110!==e.charCodeAt(10))break;default:for(var t=s.split((s=\"\",f)),i=0,r=0,a=t.length;iL&&h<90||h>96&&h<123||h===R||h===Q&&l.charCodeAt(1)!==Q))switch(isNaN(parseFloat(l))+(-1!==l.indexOf(\"(\"))){case 1:switch(l){case\"infinite\":case\"alternate\":case\"backwards\":case\"running\":case\"normal\":case\"forwards\":case\"both\":case\"none\":case\"linear\":case\"ease\":case\"ease-in\":case\"ease-out\":case\"ease-in-out\":case\"paused\":case\"reverse\":case\"alternate-reverse\":case\"inherit\":case\"initial\":case\"unset\":case\"step-start\":case\"step-end\":break;default:l+=De}}o[r++]=l}s+=(0===i?\"\":\",\")+o.join(\" \")}}if(s=c+s+\";\",1===Ae||2===Ae&&Le(s,1))return N+s+s;return s}(h);else if(0===Ae||2===Ae&&!Le(h,1))return h;switch(u){case 1015:return 97===h.charCodeAt(10)?N+h+h:h;case 951:return 116===h.charCodeAt(3)?N+h+h:h;case 963:return 110===h.charCodeAt(5)?N+h+h:h;case 1009:if(100!==h.charCodeAt(4))break;case 969:case 942:return N+h+h;case 978:return N+h+S+h+h;case 1019:case 983:return N+h+S+h+F+h+h;case 883:if(h.charCodeAt(8)===Q)return N+h+h;if(h.indexOf(\"image-set(\",11)>0)return h.replace(z,\"$1\"+N+\"$2\")+h;return h;case 932:if(h.charCodeAt(4)===Q)switch(h.charCodeAt(5)){case 103:return N+\"box-\"+h.replace(\"-grow\",\"\")+N+h+F+h.replace(\"grow\",\"positive\")+h;case 115:return N+h+F+h.replace(\"shrink\",\"negative\")+h;case 98:return N+h+F+h.replace(\"basis\",\"preferred-size\")+h}return N+h+F+h+h;case 964:return N+h+F+\"flex-\"+h+h;case 1023:if(99!==h.charCodeAt(8))break;return l=h.substring(h.indexOf(\":\",15)).replace(\"flex-\",\"\").replace(\"space-between\",\"justify\"),N+\"box-pack\"+l+N+h+F+\"flex-pack\"+l+h;case 1005:return t.test(h)?h.replace(s,\":\"+N)+h.replace(s,\":\"+S)+h:h;case 1e3:switch(o=(l=h.substring(13).trim()).indexOf(\"-\")+1,l.charCodeAt(0)+l.charCodeAt(o)){case 226:l=h.replace(m,\"tb\");break;case 232:l=h.replace(m,\"tb-rl\");break;case 220:l=h.replace(m,\"lr\");break;default:return h}return N+h+F+l+h;case 1017:if(-1===h.indexOf(\"sticky\",9))return h;case 975:switch(o=(h=e).length-10,u=(l=(33===h.charCodeAt(o)?h.substring(0,o):h).substring(e.indexOf(\":\",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(l.charCodeAt(8)<111)break;case 115:h=h.replace(l,N+l)+\";\"+h;break;case 207:case 102:h=h.replace(l,N+(u>102?\"inline-\":\"\")+\"box\")+\";\"+h.replace(l,N+l)+\";\"+h.replace(l,F+l+\"box\")+\";\"+h}return h+\";\";case 938:if(h.charCodeAt(5)===Q)switch(h.charCodeAt(6)){case 105:return l=h.replace(\"-items\",\"\"),N+h+N+\"box-\"+l+F+\"flex-\"+l+h;case 115:return N+h+F+\"flex-item-\"+h.replace(y,\"\")+h;default:return N+h+F+\"flex-line-pack\"+h.replace(\"align-content\",\"\").replace(y,\"\")+h}break;case 973:case 989:if(h.charCodeAt(3)!==Q||122===h.charCodeAt(4))break;case 931:case 953:if(true===j.test(e))if(115===(l=e.substring(e.indexOf(\":\")+1)).charCodeAt(0))return Ke(e.replace(\"stretch\",\"fill-available\"),a,r,c).replace(\":fill-available\",\":stretch\");else return h.replace(l,N+l)+h.replace(l,S+l.replace(\"fill-\",\"\"))+h;break;case 962:if(h=N+h+(102===h.charCodeAt(5)?F+h:\"\")+h,r+c===211&&105===h.charCodeAt(13)&&h.indexOf(\"transform\",10)>0)return h.substring(0,h.indexOf(\";\",27)+1).replace(i,\"$1\"+N+\"$2\")+h}return h}function Le(e,a){var r=e.indexOf(1===a?\":\":\"{\"),c=e.substring(0,3!==a?r:10),s=e.substring(r+1,e.length-1);return Oe(2!==a?c:c.replace(O,\"$1\"),s,a)}function Me(e,a){var r=Ke(a,a.charCodeAt(0),a.charCodeAt(1),a.charCodeAt(2));return r!==a+\";\"?r.replace($,\" or ($1)\").substring(4):\"(\"+a+\")\"}function Pe(e,a,r,c,s,t,i,f,n,l){for(var o,h=0,u=a;h0)De=s.replace(d,t===G?\"\":\"-\");if(t=1,1===ge)Ge=s;else Ee=s;var i,f=[Ge];if(ye>0)if(void 0!==(i=Pe(ze,r,f,f,pe,be,0,0,0,0))&&\"string\"==typeof i)r=i;var n=He(xe,f,r,0,0);if(ye>0)if(void 0!==(i=Pe(je,n,f,f,pe,be,n.length,0,0,0))&&\"string\"!=typeof(n=i))t=0;return De=\"\",Ge=\"\",Ee=\"\",ke=0,pe=1,be=1,we*t==0?n:n.replace(c,\"\").replace(g,\"\").replace(A,\"$1\").replace(C,\"$1\").replace(w,\" \")}if(Te.use=function e(a){switch(a){case void 0:case null:ye=$e.length=0;break;default:if(\"function\"==typeof a)$e[ye++]=a;else if(\"object\"==typeof a)for(var r=0,c=a.length;r\n import(/* webpackChunkName: \"colorpicker\" */ '../fragments/ColorPicker.react')\n);\n/**\n * A color picker.\n */\nexport default class ColorPicker extends Component {\n render() {\n return (\n \n \n \n );\n }\n}\n\nColorPicker.defaultProps = {\n size: 225,\n theme: light,\n labelPosition: 'top',\n persisted_props: ['value'],\n persistence_type: 'local'\n};\n\nColorPicker.propTypes = {\n /**\n * The ID used to identify the color picker in Dash callbacks\n */\n id: PropTypes.string,\n\n /**\n * Color value of the picker\n */\n value: PropTypes.shape({\n /**\n * Hex string\n */\n hex: PropTypes.string,\n\n /**\n * RGB/RGBA object\n */\n rbg: PropTypes.shape({\n r: PropTypes.number,\n g: PropTypes.number,\n b: PropTypes.number,\n a: PropTypes.number\n })\n }),\n\n /**\n * If true, color cannot be picked.\n */\n disabled: PropTypes.bool,\n\n /**\n * Size (width) of the component in pixels\n */\n size: PropTypes.number,\n\n /**\n * Theme configuration to be set by a ThemeProvider\n */\n theme: PropTypes.object,\n\n /**\n * Description to be displayed alongside the control. To control styling,\n * pass an object with label and style properties\n */\n label: PropTypes.oneOfType([\n /**\n * Label to be displayed\n */\n PropTypes.string,\n\n /**\n * The style and label\n */\n PropTypes.shape({\n style: PropTypes.object,\n label: PropTypes.string\n })\n ]),\n\n /**\n * Where the indicator label is positioned\n */\n labelPosition: PropTypes.oneOf(['top', 'bottom']),\n\n /**\n * Class to apply to the root component element\n */\n className: PropTypes.string,\n\n /**\n * Dash-assigned callback that gets fired when\n * the color picker's value changes\n */\n setProps: PropTypes.func,\n\n /**\n * Style to apply to the root component element\n */\n style: PropTypes.object,\n\n /**\n * Used to allow user interactions in this component to be persisted when\n * the component - or the page - is refreshed. If `persisted` is truthy and\n * hasn't changed from its previous value, a `value` that the user has\n * changed while using the app will keep that change, as long as\n * the new `value` also matches what was given originally.\n * Used in conjunction with `persistence_type`.\n */\n persistence: PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.number]),\n\n /**\n * Properties whose user interactions will persist after refreshing the\n * component or the page. Since only `value` is allowed this prop can\n * normally be ignored.\n */\n persisted_props: PropTypes.arrayOf(PropTypes.oneOf(['value'])),\n\n /**\n * Where persisted user changes will be stored:\n * memory: only kept in memory, reset on page refresh.\n * local: window.localStorage, data is kept after the browser quit.\n * session: window.sessionStorage, data is cleared once the browser quit.\n */\n persistence_type: PropTypes.oneOf(['local', 'session', 'memory'])\n};\n\nexport const defaultProps = ColorPicker.defaultProps;\nexport const propTypes = ColorPicker.propTypes;\n","// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","// 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","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = require('./_hide');\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","(function (factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory()) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory()) :\n\t\t\t(window['stylisRuleSheet'] = factory())\n}(function () {\n\n\t'use strict'\n\n\treturn function (insertRule) {\n\t\tvar delimiter = '/*|*/'\n\t\tvar needle = delimiter+'}'\n\n\t\tfunction toSheet (block) {\n\t\t\tif (block)\n\t\t\t\ttry {\n\t\t\t\t\tinsertRule(block + '}')\n\t\t\t\t} catch (e) {}\n\t\t}\n\n\t\treturn function ruleSheet (context, content, selectors, parents, line, column, length, ns, depth, at) {\n\t\t\tswitch (context) {\n\t\t\t\t// property\n\t\t\t\tcase 1:\n\t\t\t\t\t// @import\n\t\t\t\t\tif (depth === 0 && content.charCodeAt(0) === 64)\n\t\t\t\t\t\treturn insertRule(content+';'), ''\n\t\t\t\t\tbreak\n\t\t\t\t// selector\n\t\t\t\tcase 2:\n\t\t\t\t\tif (ns === 0)\n\t\t\t\t\t\treturn content + delimiter\n\t\t\t\t\tbreak\n\t\t\t\t// at-rule\n\t\t\t\tcase 3:\n\t\t\t\t\tswitch (ns) {\n\t\t\t\t\t\t// @font-face, @page\n\t\t\t\t\t\tcase 102:\n\t\t\t\t\t\tcase 112:\n\t\t\t\t\t\t\treturn insertRule(selectors[0]+content), ''\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn content + (at === 0 ? delimiter : '')\n\t\t\t\t\t}\n\t\t\t\tcase -2:\n\t\t\t\t\tcontent.split(needle).forEach(toSheet)\n\t\t\t}\n\t\t}\n\t}\n}))\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","/*!\n * TinyGradient 0.4.3\n * Copyright 2014-2018 Damien \"Mistic\" Sorel (http://www.strangeplanet.fr)\n * Licensed under MIT (http://opensource.org/licenses/MIT)\n */\n\n(function (root, factory) {\n if (typeof module !== \"undefined\" && module.exports) {\n module.exports = factory(require('tinycolor2'));\n }\n else if (typeof define === 'function' && define.amd) {\n define(['tinycolor2'], factory);\n }\n else {\n root.tinygradient = factory(root.tinycolor);\n }\n}(this, function (tinycolor) {\n \"use strict\";\n\n var RGBA_MAX = {r: 256, g: 256, b: 256, a: 1};\n var HSVA_MAX = {h: 360, s: 1, v: 1, a: 1};\n\n /**\n * Linearly compute the step size between start and end (not normalized)\n * @param {Object} start - rgba or hsva\n * @param {Object} end - rgba or hsva\n * @param {int} steps - number of desired steps\n * @return {Object} rgba or hsva\n */\n function stepize(start, end, steps) {\n var step = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n step[k] = steps === 0 ? 0 : (end[k] - start[k]) / steps;\n }\n }\n\n return step;\n }\n\n /**\n * Compute the final step color\n * @param {Object} step - rgba or hsva from `stepize`\n * @param {Object} start - rgba or hsva\n * @param {int} i - color index\n * @param {Object} max - rgba or hsva of maximum values for each channel\n * @return {Object} rgba or hsva\n */\n function interpolate(step, start, i, max) {\n var color = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n color[k] = step[k] * i + start[k];\n color[k] = color[k] < 0 ? color[k] + max[k] : ( max[k] !== 1 ? color[k] % max[k] : color[k] );\n }\n }\n\n return color;\n }\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateRgb(stop1, stop2, steps) {\n var start = stop1.color.toRgb(),\n end = stop2.color.toRgb(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n color;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, RGBA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @param {Boolean} trigonometric - true to step in trigonometric order\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateHsv(stop1, stop2, steps, trigonometric) {\n var start = stop1.color.toHsv(),\n end = stop2.color.toHsv(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n diff, color;\n\n // recompute hue\n if ((start.h <= end.h && !trigonometric) || (start.h >= end.h && trigonometric)) {\n diff = end.h - start.h;\n }\n else if (trigonometric) {\n diff = 360 - end.h + start.h;\n }\n else {\n diff = 360 - start.h + end.h;\n }\n step.h = Math.pow(-1, trigonometric ? 1 : 0) * Math.abs(diff) / steps;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, HSVA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Compute substeps between each stops\n * @param {Object[]} stops\n * @param {int} steps\n * @return {int[]}\n */\n function computeSubsteps(stops, steps) {\n var l = stops.length;\n\n // validation\n steps = parseInt(steps);\n\n if (isNaN(steps) || steps < 2) {\n throw new Error('Invalid number of steps (< 2)');\n }\n if (steps < l) {\n throw new Error('Number of steps cannot be inferior to number of stops');\n }\n\n // compute substeps from stop positions\n var substeps = [];\n\n for (var i = 1; i < l; i++) {\n var step = (steps - 1) * (stops[i].pos - stops[i - 1].pos);\n substeps.push(Math.max(1, Math.round(step)));\n }\n\n // adjust number of steps\n var totalSubsteps = 1;\n for (var n = l - 1; n--;) totalSubsteps += substeps[n];\n\n while (totalSubsteps !== steps) {\n if (totalSubsteps < steps) {\n var min = Math.min.apply(null, substeps);\n substeps[substeps.indexOf(min)]++;\n totalSubsteps++;\n }\n else {\n var max = Math.max.apply(null, substeps);\n substeps[substeps.indexOf(max)]--;\n totalSubsteps--;\n }\n }\n\n return substeps;\n }\n\n /**\n * Compute the color at a specific position\n * @param {Object[]} stops\n * @param {float} pos\n * @param {string} method\n * @param {Object} max\n * @returns {tinycolor}\n */\n function computeAt(stops, pos, method, max) {\n if (pos < 0 || pos > 1) {\n throw new Error('Position must be between 0 and 1');\n }\n\n var start, end;\n for (var i = 0, l = stops.length; i < l - 1; i++) {\n if (pos >= stops[i].pos && pos < stops[i + 1].pos) {\n start = stops[i];\n end = stops[i + 1];\n break;\n }\n }\n\n if (!start) {\n start = end = stops[stops.length - 1];\n }\n\n var step = stepize(start.color[method](), end.color[method](), (end.pos - start.pos) * 100);\n var color = interpolate(step, start.color[method](), Math.round((pos - start.pos) * 100), max);\n return tinycolor(color);\n }\n\n /**\n * @class tinygradient\n * @param {*} stops\n */\n var TinyGradient = function (stops) {\n // varargs\n if (arguments.length === 1) {\n if (!(arguments[0] instanceof Array)) {\n throw new Error('\"stops\" is not an array');\n }\n stops = arguments[0];\n }\n else {\n stops = Array.prototype.slice.call(arguments);\n }\n\n // if we are called as a function, call using new instead\n if (!(this instanceof TinyGradient)) {\n return new TinyGradient(stops);\n }\n\n // validation\n if (stops.length < 2) {\n throw new Error('Invalid number of stops (< 2)');\n }\n\n var havingPositions = stops[0].pos !== undefined,\n l = stops.length,\n p = -1;\n // create tinycolor objects and clean positions\n this.stops = stops.map(function (stop, i) {\n var hasPosition = stop.pos !== undefined;\n if (havingPositions ^ hasPosition) {\n throw new Error('Cannot mix positionned and not posionned color stops');\n }\n\n if (hasPosition) {\n stop = {\n color: tinycolor(stop.color),\n pos : stop.pos\n };\n\n if (stop.pos < 0 || stop.pos > 1) {\n throw new Error('Color stops positions must be between 0 and 1');\n }\n else if (stop.pos <= p) {\n throw new Error('Color stops positions are not ordered');\n }\n p = stop.pos;\n }\n else {\n stop = {\n color: tinycolor(stop),\n pos : i / (l - 1)\n };\n }\n\n return stop;\n });\n\n if (this.stops[0].pos !== 0) {\n this.stops.unshift({\n color: this.stops[0].color,\n pos : 0\n });\n }\n if (this.stops[this.stops.length - 1].pos !== 1) {\n this.stops.push({\n color: this.stops[this.stops.length - 1].color,\n pos : 1\n });\n }\n };\n\n /**\n * Return new instance with reversed stops\n * @return {tinygradient}\n */\n TinyGradient.prototype.reverse = function () {\n var stops = [];\n\n this.stops.forEach(function (stop) {\n stops.push({\n color: stop.color,\n pos : 1 - stop.pos\n });\n });\n\n return new TinyGradient(stops.reverse());\n };\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {int} steps\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.rgb = function (steps) {\n var substeps = computeSubsteps(this.stops, steps),\n gradient = [];\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {int} steps\n * @param {Boolean|String} [mode=false]\n * - false to step in clockwise\n * - true to step in trigonometric order\n * - 'short' to use the shortest way\n * - 'long' to use the longest way\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.hsv = function (steps, mode) {\n var substeps = computeSubsteps(this.stops, steps),\n trigonometric = mode === true,\n parametrized = typeof mode === 'string',\n gradient = [],\n start, end, trig;\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n start = this.stops[i].color.toHsv();\n end = this.stops[i + 1].color.toHsv();\n\n if (parametrized) {\n trig = (start.h < end.h && end.h - start.h < 180) || (start.h > end.h && start.h - end.h > 180);\n }\n\n // rgb interpolation if one of the steps in grayscale\n if (start.s === 0 || end.s === 0) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n else {\n gradient = gradient.concat(interpolateHsv(this.stops[i], this.stops[i + 1], substeps[i],\n (mode === 'long' && trig) || (mode === 'short' && !trig) || (!parametrized && trigonometric)\n ));\n }\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate CSS3 command (no prefix) for this gradient\n * @param {String} [mode=linear] - 'linear' or 'radial'\n * @param {String} [direction] - default is 'to right' or 'ellipse at center'\n * @return {String}\n */\n TinyGradient.prototype.css = function (mode, direction) {\n mode = mode || 'linear';\n direction = direction || (mode === 'linear' ? 'to right' : 'ellipse at center');\n\n var css = mode + '-gradient(' + direction;\n this.stops.forEach(function (stop) {\n css += ', ' + stop.color.toRgbString() + ' ' + (stop.pos * 100) + '%';\n });\n css += ')';\n return css;\n };\n\n /**\n * Returns the color at specific position with RGBa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.rgbAt = function (pos) {\n return computeAt(this.stops, pos, 'toRgb', RGBA_MAX);\n };\n\n /**\n * Returns the color at specific position with HSVa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.hsvAt = function (pos) {\n return computeAt(this.stops, pos, 'toHsv', HSVA_MAX);\n };\n\n var STATIC_FNS = {\n 'rgb' : 1,\n 'hsv' : 2,\n 'css' : 2,\n 'rgbAt': 1,\n 'hsvAt': 1\n };\n\n Object.keys(STATIC_FNS).forEach(function (fn) {\n TinyGradient[fn] = function () {\n var colors = Array.prototype.slice.call(arguments);\n var args = colors.splice(-STATIC_FNS[fn]);\n var gradient = new TinyGradient(colors);\n return gradient[fn].apply(gradient, args);\n };\n });\n\n // export\n return TinyGradient;\n}));","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = addEventListener;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventObject = require('./EventObject');\n\nvar _EventObject2 = _interopRequireDefault(_EventObject);\n\nfunction addEventListener(target, eventType, callback, option) {\n function wrapCallback(e) {\n var ne = new _EventObject2['default'](e);\n callback.call(target, ne);\n }\n\n if (target.addEventListener) {\n var _ret = (function () {\n var useCapture = false;\n if (typeof option === 'object') {\n useCapture = option.capture || false;\n } else if (typeof option === 'boolean') {\n useCapture = option;\n }\n\n target.addEventListener(eventType, wrapCallback, option || false);\n\n return {\n v: {\n remove: function remove() {\n target.removeEventListener(eventType, wrapCallback, useCapture);\n }\n }\n };\n })();\n\n if (typeof _ret === 'object') return _ret.v;\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, wrapCallback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, wrapCallback);\n }\n };\n }\n}\n\nmodule.exports = exports['default'];","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\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 }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.nipplejs = f()}})(function(){var define,module,exports;\n'use strict';\n\n// Constants\nvar isTouch = !!('ontouchstart' in window);\nvar isPointer = window.PointerEvent ? true : false;\nvar isMSPointer = window.MSPointerEvent ? true : false;\nvar events = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend, touchcancel'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n },\n pointer: {\n start: 'pointerdown',\n move: 'pointermove',\n end: 'pointerup, pointercancel'\n },\n MSPointer: {\n start: 'MSPointerDown',\n move: 'MSPointerMove',\n end: 'MSPointerUp'\n }\n};\nvar toBind;\nvar secondBind = {};\nif (isPointer) {\n toBind = events.pointer;\n} else if (isMSPointer) {\n toBind = events.MSPointer;\n} else if (isTouch) {\n toBind = events.touch;\n secondBind = events.mouse;\n} else {\n toBind = events.mouse;\n}\n\n///////////////////////\n/// UTILS ///\n///////////////////////\n\nvar u = {};\nu.distance = function (p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return Math.sqrt((dx * dx) + (dy * dy));\n};\n\nu.angle = function(p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return u.degrees(Math.atan2(dy, dx));\n};\n\nu.findCoord = function(p, d, a) {\n var b = {x: 0, y: 0};\n a = u.radians(a);\n b.x = p.x - d * Math.cos(a);\n b.y = p.y - d * Math.sin(a);\n return b;\n};\n\nu.radians = function(a) {\n return a * (Math.PI / 180);\n};\n\nu.degrees = function(a) {\n return a * (180 / Math.PI);\n};\n\nu.bindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.addEventListener) {\n el.addEventListener(type, handler, false);\n } else if (el.attachEvent) {\n el.attachEvent(type, handler);\n }\n }\n};\n\nu.unbindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.removeEventListener) {\n el.removeEventListener(type, handler);\n } else if (el.detachEvent) {\n el.detachEvent(type, handler);\n }\n }\n};\n\nu.trigger = function (el, type, data) {\n var evt = new CustomEvent(type, data);\n el.dispatchEvent(evt);\n};\n\nu.prepareEvent = function (evt) {\n evt.preventDefault();\n return evt.type.match(/^touch/) ? evt.changedTouches : evt;\n};\n\nu.getScroll = function () {\n var x = (window.pageXOffset !== undefined) ?\n window.pageXOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollLeft;\n\n var y = (window.pageYOffset !== undefined) ?\n window.pageYOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollTop;\n return {\n x: x,\n y: y\n };\n};\n\nu.applyPosition = function (el, pos) {\n if (pos.top || pos.right || pos.bottom || pos.left) {\n el.style.top = pos.top;\n el.style.right = pos.right;\n el.style.bottom = pos.bottom;\n el.style.left = pos.left;\n } else {\n el.style.left = pos.x + 'px';\n el.style.top = pos.y + 'px';\n }\n};\n\nu.getTransitionStyle = function (property, values, time) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (typeof values === 'string') {\n obj[i] = values + ' ' + time;\n } else {\n var st = '';\n for (var j = 0, max = values.length; j < max; j += 1) {\n st += values[j] + ' ' + time + ', ';\n }\n obj[i] = st.slice(0, -2);\n }\n }\n }\n return obj;\n};\n\nu.getVendorStyle = function (property, value) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n obj[i] = value;\n }\n }\n return obj;\n};\n\nu.configStylePropertyObject = function (prop) {\n var obj = {};\n obj[prop] = '';\n var vendors = ['webkit', 'Moz', 'o'];\n vendors.forEach(function (vendor) {\n obj[vendor + prop.charAt(0).toUpperCase() + prop.slice(1)] = '';\n });\n return obj;\n};\n\nu.extend = function (objA, objB) {\n for (var i in objB) {\n if (objB.hasOwnProperty(i)) {\n objA[i] = objB[i];\n }\n }\n return objA;\n};\n\n// Overwrite only what's already present\nu.safeExtend = function (objA, objB) {\n var obj = {};\n for (var i in objA) {\n if (objA.hasOwnProperty(i) && objB.hasOwnProperty(i)) {\n obj[i] = objB[i];\n } else if (objA.hasOwnProperty(i)) {\n obj[i] = objA[i];\n }\n }\n return obj;\n};\n\n// Map for array or unique item.\nu.map = function (ar, fn) {\n if (ar.length) {\n for (var i = 0, max = ar.length; i < max; i += 1) {\n fn(ar[i]);\n }\n } else {\n fn(ar);\n }\n};\n\n///////////////////////\n/// SUPER CLASS ///\n///////////////////////\n\nfunction Super () {};\n\n// Basic event system.\nSuper.prototype.on = function (arg, cb) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n self._handlers_[type] = self._handlers_[type] || [];\n self._handlers_[type].push(cb);\n }\n return self;\n};\n\nSuper.prototype.off = function (type, cb) {\n var self = this;\n self._handlers_ = self._handlers_ || {};\n\n if (type === undefined) {\n self._handlers_ = {};\n } else if (cb === undefined) {\n self._handlers_[type] = null;\n } else if (self._handlers_[type] &&\n self._handlers_[type].indexOf(cb) >= 0) {\n self._handlers_[type].splice(self._handlers_[type].indexOf(cb), 1);\n }\n\n return self;\n};\n\nSuper.prototype.trigger = function (arg, data) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (self._handlers_[type] && self._handlers_[type].length) {\n self._handlers_[type].forEach(function (handler) {\n handler.call(self, {\n type: type,\n target: self\n }, data);\n });\n }\n }\n};\n\n// Configuration\nSuper.prototype.config = function (options) {\n var self = this;\n self.options = self.defaults || {};\n if (options) {\n self.options = u.safeExtend(self.options, options);\n }\n};\n\n// Bind internal events.\nSuper.prototype.bindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n self._domHandlers_[type] = function () {\n if (typeof self['on' + type] === 'function') {\n self['on' + type].apply(self, arguments);\n } else {\n console.warn('[WARNING] : Missing \"on' + type + '\" handler.');\n }\n };\n\n u.bindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.bindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n return self;\n};\n\n// Unbind dom events.\nSuper.prototype.unbindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n u.unbindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.unbindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n delete self._domHandlers_[type];\n\n return this;\n};\n\n///////////////////////\n/// THE NIPPLE ///\n///////////////////////\n\nfunction Nipple (collection, options) {\n this.identifier = options.identifier;\n this.position = options.position;\n this.frontPosition = options.frontPosition;\n this.collection = collection;\n\n // Defaults\n this.defaults = {\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n mode: 'dynamic',\n zone: document.body,\n lockX: false,\n lockY: false\n };\n\n this.config(options);\n\n // Overwrites\n if (this.options.mode === 'dynamic') {\n this.options.restOpacity = 0;\n }\n\n this.id = Nipple.id;\n Nipple.id += 1;\n this.buildEl()\n .stylize();\n\n // Nipple's API.\n this.instance = {\n el: this.ui.el,\n on: this.on.bind(this),\n off: this.off.bind(this),\n show: this.show.bind(this),\n hide: this.hide.bind(this),\n add: this.addToDom.bind(this),\n remove: this.removeFromDom.bind(this),\n destroy: this.destroy.bind(this),\n resetDirection: this.resetDirection.bind(this),\n computeDirection: this.computeDirection.bind(this),\n trigger: this.trigger.bind(this),\n position: this.position,\n frontPosition: this.frontPosition,\n ui: this.ui,\n identifier: this.identifier,\n id: this.id,\n options: this.options\n };\n\n return this.instance;\n};\n\nNipple.prototype = new Super();\nNipple.constructor = Nipple;\nNipple.id = 0;\n\n// Build the dom element of the Nipple instance.\nNipple.prototype.buildEl = function (options) {\n this.ui = {};\n\n if (this.options.dataOnly) {\n return this;\n }\n\n this.ui.el = document.createElement('div');\n this.ui.back = document.createElement('div');\n this.ui.front = document.createElement('div');\n\n this.ui.el.className = 'nipple collection_' + this.collection.id;\n this.ui.back.className = 'back';\n this.ui.front.className = 'front';\n\n this.ui.el.setAttribute('id', 'nipple_' + this.collection.id +\n '_' + this.id);\n\n this.ui.el.appendChild(this.ui.back);\n this.ui.el.appendChild(this.ui.front);\n\n return this;\n};\n\n// Apply CSS to the Nipple instance.\nNipple.prototype.stylize = function () {\n if (this.options.dataOnly) {\n return this;\n }\n var animTime = this.options.fadeTime + 'ms';\n var borderStyle = u.getVendorStyle('borderRadius', '50%');\n var transitStyle = u.getTransitionStyle('transition', 'opacity', animTime);\n var styles = {};\n styles.el = {\n position: 'absolute',\n opacity: this.options.restOpacity,\n display: 'block',\n 'zIndex': 999\n };\n\n styles.back = {\n position: 'absolute',\n display: 'block',\n width: this.options.size + 'px',\n height: this.options.size + 'px',\n marginLeft: -this.options.size / 2 + 'px',\n marginTop: -this.options.size / 2 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n styles.front = {\n width: this.options.size / 2 + 'px',\n height: this.options.size / 2 + 'px',\n position: 'absolute',\n display: 'block',\n marginLeft: -this.options.size / 4 + 'px',\n marginTop: -this.options.size / 4 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n u.extend(styles.el, transitStyle);\n u.extend(styles.back, borderStyle);\n u.extend(styles.front, borderStyle);\n\n this.applyStyles(styles);\n\n return this;\n};\n\nNipple.prototype.applyStyles = function (styles) {\n // Apply styles\n for (var i in this.ui) {\n if (this.ui.hasOwnProperty(i)) {\n for (var j in styles[i]) {\n this.ui[i].style[j] = styles[i][j];\n }\n }\n }\n\n return this;\n};\n\n// Inject the Nipple instance into DOM.\nNipple.prototype.addToDom = function () {\n // We're not adding it if we're dataOnly or already in dom.\n if (this.options.dataOnly || document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.appendChild(this.ui.el);\n return this;\n};\n\n// Remove the Nipple instance from DOM.\nNipple.prototype.removeFromDom = function () {\n if (this.options.dataOnly || !document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.removeChild(this.ui.el);\n return this;\n};\n\n// Entirely destroy this nipple\nNipple.prototype.destroy = function () {\n clearTimeout(this.removeTimeout);\n clearTimeout(this.showTimeout);\n clearTimeout(this.restTimeout);\n this.trigger('destroyed', this.instance);\n this.removeFromDom();\n this.off();\n};\n\n// Fade in the Nipple instance.\nNipple.prototype.show = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.addToDom();\n\n self.restCallback();\n\n setTimeout(function () {\n self.ui.el.style.opacity = 1;\n }, 0);\n\n self.showTimeout = setTimeout(function () {\n self.trigger('shown', self.instance);\n if (typeof cb === 'function') {\n cb.call(this);\n }\n }, self.options.fadeTime);\n\n return self;\n};\n\n// Fade out the Nipple instance.\nNipple.prototype.hide = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n self.ui.el.style.opacity = self.options.restOpacity;\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.removeTimeout = setTimeout(\n function () {\n var display = self.options.mode === 'dynamic' ? 'none' : 'block';\n self.ui.el.style.display = display;\n if (typeof cb === 'function') {\n cb.call(self);\n }\n\n self.trigger('hidden', self.instance);\n },\n self.options.fadeTime\n );\n if (self.options.restJoystick) {\n self.restPosition();\n }\n\n return self;\n};\n\nNipple.prototype.restPosition = function (cb) {\n var self = this;\n self.frontPosition = {\n x: 0,\n y: 0\n };\n var animTime = self.options.fadeTime + 'ms';\n\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition',\n ['top', 'left'], animTime);\n\n var styles = {front: {}};\n styles.front = {\n left: self.frontPosition.x + 'px',\n top: self.frontPosition.y + 'px'\n };\n\n self.applyStyles(transitStyle);\n self.applyStyles(styles);\n\n self.restTimeout = setTimeout(\n function () {\n if (typeof cb === 'function') {\n cb.call(self);\n }\n self.restCallback();\n },\n self.options.fadeTime\n );\n};\n\nNipple.prototype.restCallback = function () {\n var self = this;\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition', 'none', '');\n self.applyStyles(transitStyle);\n self.trigger('rested', self.instance);\n};\n\nNipple.prototype.resetDirection = function () {\n // Fully rebuild the object to let the iteration possible.\n this.direction = {\n x: false,\n y: false,\n angle: false\n };\n};\n\nNipple.prototype.computeDirection = function (obj) {\n var rAngle = obj.angle.radian;\n var angle45 = Math.PI / 4;\n var angle90 = Math.PI / 2;\n var direction, directionX, directionY;\n\n // Angular direction\n // \\ UP /\n // \\ /\n // LEFT RIGHT\n // / \\\n // /DOWN \\\n //\n if (\n rAngle > angle45 &&\n rAngle < (angle45 * 3) &&\n !obj.lockX\n ) {\n direction = 'up';\n } else if (\n rAngle > -angle45 &&\n rAngle <= angle45 &&\n !obj.lockY\n ) {\n direction = 'left';\n } else if (\n rAngle > (-angle45 * 3) &&\n rAngle <= -angle45 &&\n !obj.lockX\n ) {\n direction = 'down';\n } else if (!obj.lockY) {\n direction = 'right';\n }\n\n // Plain direction\n // UP |\n // _______ | RIGHT\n // LEFT |\n // DOWN |\n if (!obj.lockY) {\n if (rAngle > -angle90 && rAngle < angle90) {\n directionX = 'left';\n } else {\n directionX = 'right';\n }\n }\n\n if (!obj.lockX) {\n if (rAngle > 0) {\n directionY = 'up';\n } else {\n directionY = 'down';\n }\n }\n\n if (obj.force > this.options.threshold) {\n var oldDirection = {};\n for (var i in this.direction) {\n if (this.direction.hasOwnProperty(i)) {\n oldDirection[i] = this.direction[i];\n }\n }\n\n var same = {};\n\n this.direction = {\n x: directionX,\n y: directionY,\n angle: direction\n };\n\n obj.direction = this.direction;\n\n for (var i in oldDirection) {\n if (oldDirection[i] === this.direction[i]) {\n same[i] = true;\n }\n }\n\n // If all 3 directions are the same, we don't trigger anything.\n if (same.x && same.y && same.angle) {\n return obj;\n }\n\n if (!same.x || !same.y) {\n this.trigger('plain', obj);\n }\n\n if (!same.x) {\n this.trigger('plain:' + directionX, obj);\n }\n\n if (!same.y) {\n this.trigger('plain:' + directionY, obj);\n }\n\n if (!same.angle) {\n this.trigger('dir dir:' + direction, obj);\n }\n }\n return obj;\n};\n\n/* global Nipple, Super */\n\n///////////////////////////\n/// THE COLLECTION ///\n///////////////////////////\n\nfunction Collection (manager, options) {\n var self = this;\n self.nipples = [];\n self.idles = [];\n self.actives = [];\n self.ids = [];\n self.pressureIntervals = {};\n self.manager = manager;\n self.id = Collection.id;\n Collection.id += 1;\n\n // Defaults\n self.defaults = {\n zone: document.body,\n multitouch: false,\n maxNumberOfNipples: 10,\n mode: 'dynamic',\n position: {top: 0, left: 0},\n catchDistance: 200,\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n lockX: false,\n lockY: false\n };\n\n self.config(options);\n\n // Overwrites\n if (self.options.mode === 'static' || self.options.mode === 'semi') {\n self.options.multitouch = false;\n }\n\n if (!self.options.multitouch) {\n self.options.maxNumberOfNipples = 1;\n }\n\n self.updateBox();\n self.prepareNipples();\n self.bindings();\n self.begin();\n\n return self.nipples;\n}\n\nCollection.prototype = new Super();\nCollection.constructor = Collection;\nCollection.id = 0;\n\nCollection.prototype.prepareNipples = function () {\n var self = this;\n var nips = self.nipples;\n\n // Public API Preparation.\n nips.on = self.on.bind(self);\n nips.off = self.off.bind(self);\n nips.options = self.options;\n nips.destroy = self.destroy.bind(self);\n nips.ids = self.ids;\n nips.id = self.id;\n nips.processOnMove = self.processOnMove.bind(self);\n nips.processOnEnd = self.processOnEnd.bind(self);\n nips.get = function (id) {\n if (id === undefined) {\n return nips[0];\n }\n for (var i = 0, max = nips.length; i < max; i += 1) {\n if (nips[i].identifier === id) {\n return nips[i];\n }\n }\n return false;\n };\n};\n\nCollection.prototype.bindings = function () {\n var self = this;\n // Touch start event.\n self.bindEvt(self.options.zone, 'start');\n // Avoid native touch actions (scroll, zoom etc...) on the zone.\n self.options.zone.style.touchAction = 'none';\n self.options.zone.style.msTouchAction = 'none';\n};\n\nCollection.prototype.begin = function () {\n var self = this;\n var opts = self.options;\n\n // We place our static nipple\n // if needed.\n if (opts.mode === 'static') {\n var nipple = self.createNipple(\n opts.position,\n self.manager.getIdentifier()\n );\n // Add it to the dom.\n nipple.add();\n // Store it in idles.\n self.idles.push(nipple);\n }\n};\n\n// Nipple Factory\nCollection.prototype.createNipple = function (position, identifier) {\n var self = this;\n var scroll = u.getScroll();\n var toPutOn = {};\n var opts = self.options;\n\n if (position.x && position.y) {\n toPutOn = {\n x: position.x -\n (scroll.x + self.box.left),\n y: position.y -\n (scroll.y + self.box.top)\n };\n } else if (\n position.top ||\n position.right ||\n position.bottom ||\n position.left\n ) {\n\n // We need to compute the position X / Y of the joystick.\n var dumb = document.createElement('DIV');\n dumb.style.display = 'hidden';\n dumb.style.top = position.top;\n dumb.style.right = position.right;\n dumb.style.bottom = position.bottom;\n dumb.style.left = position.left;\n dumb.style.position = 'absolute';\n\n opts.zone.appendChild(dumb);\n var dumbBox = dumb.getBoundingClientRect();\n opts.zone.removeChild(dumb);\n\n toPutOn = position;\n position = {\n x: dumbBox.left + scroll.x,\n y: dumbBox.top + scroll.y\n };\n }\n\n var nipple = new Nipple(self, {\n color: opts.color,\n size: opts.size,\n threshold: opts.threshold,\n fadeTime: opts.fadeTime,\n dataOnly: opts.dataOnly,\n restJoystick: opts.restJoystick,\n restOpacity: opts.restOpacity,\n mode: opts.mode,\n identifier: identifier,\n position: position,\n zone: opts.zone,\n frontPosition: {\n x: 0,\n y: 0\n }\n });\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.el, toPutOn);\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n self.nipples.push(nipple);\n self.trigger('added ' + nipple.identifier + ':added', nipple);\n self.manager.trigger('added ' + nipple.identifier + ':added', nipple);\n\n self.bindNipple(nipple);\n\n return nipple;\n};\n\nCollection.prototype.updateBox = function () {\n var self = this;\n self.box = self.options.zone.getBoundingClientRect();\n};\n\nCollection.prototype.bindNipple = function (nipple) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's id.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed.\n nipple.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n nipple.on('shown hidden rested dir plain', handler);\n nipple.on('dir:up dir:right dir:down dir:left', handler);\n nipple.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nCollection.prototype.pressureFn = function (touch, nipple, identifier) {\n var self = this;\n var previousPressure = 0;\n clearInterval(self.pressureIntervals[identifier]);\n // Create an interval that will read the pressure every 100ms\n self.pressureIntervals[identifier] = setInterval(function () {\n var pressure = touch.force || touch.pressure ||\n touch.webkitForce || 0;\n if (pressure !== previousPressure) {\n nipple.trigger('pressure', pressure);\n self.trigger('pressure ' +\n nipple.identifier + ':pressure', pressure);\n previousPressure = pressure;\n }\n }.bind(self), 100);\n};\n\nCollection.prototype.onstart = function (evt) {\n var self = this;\n var opts = self.options;\n evt = u.prepareEvent(evt);\n\n // Update the box position\n self.updateBox();\n\n var process = function (touch) {\n // If we can create new nipples\n // meaning we don't have more active nipples than we should.\n if (self.actives.length < opts.maxNumberOfNipples) {\n self.processOnStart(touch);\n }\n };\n\n u.map(evt, process);\n\n // We ask upstream to bind the document\n // on 'move' and 'end'\n self.manager.bindDocument();\n return false;\n};\n\nCollection.prototype.processOnStart = function (evt) {\n var self = this;\n var opts = self.options;\n var indexInIdles;\n var identifier = self.manager.getIdentifier(evt);\n var pressure = evt.force || evt.pressure || evt.webkitForce || 0;\n var position = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var nipple = self.getOrCreate(identifier, position);\n\n // Update its touch identifier\n if (nipple.identifier !== identifier) {\n self.manager.removeIdentifier(nipple.identifier);\n }\n nipple.identifier = identifier;\n\n var process = function (nip) {\n // Trigger the start.\n nip.trigger('start', nip);\n self.trigger('start ' + nip.id + ':start', nip);\n\n nip.show();\n if (pressure > 0) {\n self.pressureFn(evt, nip, nip.identifier);\n }\n // Trigger the first move event.\n self.processOnMove(evt);\n };\n\n // Transfer it from idles to actives.\n if ((indexInIdles = self.idles.indexOf(nipple)) >= 0) {\n self.idles.splice(indexInIdles, 1);\n }\n\n // Store the nipple in the actives array\n self.actives.push(nipple);\n self.ids.push(nipple.identifier);\n\n if (opts.mode !== 'semi') {\n process(nipple);\n } else {\n // In semi we check the distance of the touch\n // to decide if we have to reset the nipple\n var distance = u.distance(position, nipple.position);\n if (distance <= opts.catchDistance) {\n process(nipple);\n } else {\n nipple.destroy();\n self.processOnStart(evt);\n return;\n }\n }\n\n return nipple;\n};\n\nCollection.prototype.getOrCreate = function (identifier, position) {\n var self = this;\n var opts = self.options;\n var nipple;\n\n // If we're in static or semi, we might already have an active.\n if (/(semi|static)/.test(opts.mode)) {\n // Get the active one.\n // TODO: Multi-touche for semi and static will start here.\n // Return the nearest one.\n nipple = self.idles[0];\n if (nipple) {\n self.idles.splice(0, 1);\n return nipple;\n }\n\n if (opts.mode === 'semi') {\n // If we're in semi mode, we need to create one.\n return self.createNipple(position, identifier);\n }\n\n console.warn('Coudln\\'t find the needed nipple.');\n return false;\n }\n // In dynamic, we create a new one.\n nipple = self.createNipple(position, identifier);\n return nipple;\n};\n\nCollection.prototype.processOnMove = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n\n if (!nipple) {\n // This is here just for safety.\n // It shouldn't happen.\n console.error('Found zombie joystick with ID ' + identifier);\n self.manager.removeIdentifier(identifier);\n return;\n }\n\n nipple.identifier = identifier;\n\n var size = nipple.options.size / 2;\n var pos = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var dist = u.distance(pos, nipple.position);\n var angle = u.angle(pos, nipple.position);\n var rAngle = u.radians(angle);\n var force = dist / size;\n\n // If distance is bigger than nipple's size\n // we clamp the position.\n if (dist > size) {\n dist = size;\n pos = u.findCoord(nipple.position, dist, angle);\n }\n\n var xPosition = pos.x - nipple.position.x\n var yPosition = pos.y - nipple.position.y\n\n if (opts.lockX){\n yPosition = 0\n }\n if (opts.lockY) {\n xPosition = 0\n }\n\n nipple.frontPosition = {\n x: xPosition,\n y: yPosition\n };\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n\n // Prepare event's datas.\n var toSend = {\n identifier: nipple.identifier,\n position: pos,\n force: force,\n pressure: evt.force || evt.pressure || evt.webkitForce || 0,\n distance: dist,\n angle: {\n radian: rAngle,\n degree: angle\n },\n instance: nipple,\n lockX: opts.lockX,\n lockY: opts.lockY\n };\n\n // Compute the direction's datas.\n toSend = nipple.computeDirection(toSend);\n\n // Offset angles to follow units circle.\n toSend.angle = {\n radian: u.radians(180 - angle),\n degree: 180 - angle\n };\n\n // Send everything to everyone.\n nipple.trigger('move', toSend);\n self.trigger('move ' + nipple.id + ':move', toSend);\n};\n\nCollection.prototype.processOnEnd = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n var removedIdentifier = self.manager.removeIdentifier(nipple.identifier);\n\n if (!nipple) {\n return;\n }\n\n if (!opts.dataOnly) {\n nipple.hide(function () {\n if (opts.mode === 'dynamic') {\n nipple.trigger('removed', nipple);\n self.trigger('removed ' + nipple.id + ':removed', nipple);\n self.manager\n .trigger('removed ' + nipple.id + ':removed', nipple);\n nipple.destroy();\n }\n });\n }\n\n // Clear the pressure interval reader\n clearInterval(self.pressureIntervals[nipple.identifier]);\n\n // Reset the direciton of the nipple, to be able to trigger a new direction\n // on start.\n nipple.resetDirection();\n\n nipple.trigger('end', nipple);\n self.trigger('end ' + nipple.id + ':end', nipple);\n\n // Remove identifier from our bank.\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Clean our actives array.\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n\n if (/(semi|static)/.test(opts.mode)) {\n // Transfer nipple from actives to idles\n // if we're in semi or static mode.\n self.idles.push(nipple);\n } else if (self.nipples.indexOf(nipple) >= 0) {\n // Only if we're not in semi or static mode\n // we can remove the instance.\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n\n // We unbind move and end.\n self.manager.unbindDocument();\n\n // We add back the identifier of the idle nipple;\n if (/(semi|static)/.test(opts.mode)) {\n self.manager.ids[removedIdentifier.id] = removedIdentifier.identifier;\n }\n};\n\n// Remove destroyed nipple from the lists\nCollection.prototype.onDestroyed = function(evt, nipple) {\n var self = this;\n if (self.nipples.indexOf(nipple) >= 0) {\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n if (self.idles.indexOf(nipple) >= 0) {\n self.idles.splice(self.idles.indexOf(nipple), 1);\n }\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Remove the identifier from our bank\n self.manager.removeIdentifier(nipple.identifier);\n\n // We unbind move and end.\n self.manager.unbindDocument();\n};\n\n// Cleanly destroy the manager\nCollection.prototype.destroy = function () {\n var self = this;\n self.unbindEvt(self.options.zone, 'start');\n\n // Destroy nipples.\n self.nipples.forEach(function(nipple) {\n nipple.destroy();\n });\n\n // Clean 3DTouch intervals.\n for (var i in self.pressureIntervals) {\n if (self.pressureIntervals.hasOwnProperty(i)) {\n clearInterval(self.pressureIntervals[i]);\n }\n }\n\n // Notify the manager passing the instance\n self.trigger('destroyed', self.nipples);\n // We unbind move and end.\n self.manager.unbindDocument();\n // Unbind everything.\n self.off();\n};\n\n/* global u, Super, Collection */\n\n///////////////////////\n/// MANAGER ///\n///////////////////////\n\nfunction Manager (options) {\n var self = this;\n self.ids = {};\n self.index = 0;\n self.collections = [];\n\n self.config(options);\n self.prepareCollections();\n\n // Listen for resize, to reposition every joysticks\n var resizeTimer;\n u.bindEvt(window, 'resize', function (evt) {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(function () {\n var pos;\n var scroll = u.getScroll();\n self.collections.forEach(function (collection) {\n collection.forEach(function (nipple) {\n pos = nipple.el.getBoundingClientRect();\n nipple.position = {\n x: scroll.x + pos.left,\n y: scroll.y + pos.top\n };\n });\n });\n }, 100);\n });\n\n return self.collections;\n};\n\nManager.prototype = new Super();\nManager.constructor = Manager;\n\nManager.prototype.prepareCollections = function () {\n var self = this;\n // Public API Preparation.\n self.collections.create = self.create.bind(self);\n // Listen to anything\n self.collections.on = self.on.bind(self);\n // Unbind general events\n self.collections.off = self.off.bind(self);\n // Destroy everything\n self.collections.destroy = self.destroy.bind(self);\n // Get any nipple\n self.collections.get = function (id) {\n var nipple;\n self.collections.every(function (collection) {\n if (nipple = collection.get(id)) {\n return false;\n }\n return true;\n });\n return nipple;\n };\n};\n\nManager.prototype.create = function (options) {\n return this.createCollection(options);\n};\n\n// Collection Factory\nManager.prototype.createCollection = function (options) {\n var self = this;\n var collection = new Collection(self, options);\n\n self.bindCollection(collection);\n self.collections.push(collection);\n\n return collection;\n};\n\nManager.prototype.bindCollection = function (collection) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's identifier.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed we clean.\n collection.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n collection.on('shown hidden rested dir plain', handler);\n collection.on('dir:up dir:right dir:down dir:left', handler);\n collection.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nManager.prototype.bindDocument = function () {\n var self = this;\n // Bind only if not already binded\n if (!self.binded) {\n self.bindEvt(document, 'move')\n .bindEvt(document, 'end');\n self.binded = true;\n }\n};\n\nManager.prototype.unbindDocument = function (force) {\n var self = this;\n // If there are no touch left\n // unbind the document.\n if (!Object.keys(self.ids).length || force === true) {\n self.unbindEvt(document, 'move')\n .unbindEvt(document, 'end');\n self.binded = false;\n }\n};\n\nManager.prototype.getIdentifier = function (evt) {\n var id;\n // If no event, simple increment\n if (!evt) {\n id = this.index;\n } else {\n // Extract identifier from event object.\n // Unavailable in mouse events so replaced by latest increment.\n id = evt.identifier === undefined ? evt.pointerId : evt.identifier;\n if (id === undefined) {\n id = this.latest || 0;\n }\n }\n\n if (this.ids[id] === undefined) {\n this.ids[id] = this.index;\n this.index += 1;\n }\n\n // Keep the latest id used in case we're using an unidentified mouseEvent\n this.latest = id;\n return this.ids[id];\n};\n\nManager.prototype.removeIdentifier = function (identifier) {\n var removed = {};\n for (var id in this.ids) {\n if (this.ids[id] === identifier) {\n removed.id = id;\n removed.identifier = this.ids[id];\n delete this.ids[id];\n break;\n }\n }\n return removed;\n};\n\nManager.prototype.onmove = function (evt) {\n var self = this;\n self.onAny('move', evt);\n return false;\n};\n\nManager.prototype.onend = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.oncancel = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.onAny = function (which, evt) {\n var self = this;\n var id;\n var processFn = 'processOn' + which.charAt(0).toUpperCase() +\n which.slice(1);\n evt = u.prepareEvent(evt);\n var processColl = function (e, id, coll) {\n if (coll.ids.indexOf(id) >= 0) {\n coll[processFn](e);\n // Mark the event to avoid cleaning it later.\n e._found_ = true;\n }\n };\n var processEvt = function (e) {\n id = self.getIdentifier(e);\n u.map(self.collections, processColl.bind(null, e, id));\n // If the event isn't handled by any collection,\n // we need to clean its identifier.\n if (!e._found_) {\n self.removeIdentifier(id);\n }\n };\n\n u.map(evt, processEvt);\n\n return false;\n};\n\n// Cleanly destroy the manager\nManager.prototype.destroy = function () {\n var self = this;\n self.unbindDocument(true);\n self.ids = {};\n self.index = 0;\n self.collections.forEach(function(collection) {\n collection.destroy();\n });\n self.off();\n};\n\n// When a collection gets destroyed\n// we clean behind.\nManager.prototype.onDestroyed = function (evt, coll) {\n var self = this;\n if (self.collections.indexOf(coll) < 0) {\n return false;\n }\n self.collections.splice(self.collections.indexOf(coll), 1);\n};\n\nvar factory = new Manager();\nreturn {\n create: function (options) {\n return factory.create(options);\n },\n factory: factory\n};\n\n});\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","/**\r\n * Returns the object type of the given payload\r\n *\r\n * @param {*} payload\r\n * @returns {string}\r\n */\r\nfunction getType(payload) {\r\n return Object.prototype.toString.call(payload).slice(8, -1);\r\n}\r\n/**\r\n * Returns whether the payload is undefined\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isUndefined(payload) {\r\n return getType(payload) === 'Undefined';\r\n}\r\n/**\r\n * Returns whether the payload is null\r\n *\r\n * @param {*} payload\r\n * @returns {payload is null}\r\n */\r\nfunction isNull(payload) {\r\n return getType(payload) === 'Null';\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isPlainObject(payload) {\r\n if (getType(payload) !== 'Object')\r\n return false;\r\n return (payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype);\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isObject(payload) {\r\n return isPlainObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isAnyObject(payload) {\r\n return getType(payload) === 'Object';\r\n}\r\n/**\r\n * Returns whether the payload is an object like a type passed in < >\r\n *\r\n * Usage: isObjectLike<{id: any}>(payload) // will make sure it's an object and has an `id` prop.\r\n *\r\n * @template T this must be passed in < >\r\n * @param {*} payload\r\n * @returns {payload is T}\r\n */\r\nfunction isObjectLike(payload) {\r\n return isAnyObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a function\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Function}\r\n */\r\nfunction isFunction(payload) {\r\n return getType(payload) === 'Function';\r\n}\r\n/**\r\n * Returns whether the payload is an array\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isArray(payload) {\r\n return getType(payload) === 'Array';\r\n}\r\n/**\r\n * Returns whether the payload is a string\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isString(payload) {\r\n return getType(payload) === 'String';\r\n}\r\n/**\r\n * Returns whether the payload is a string, BUT returns false for ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isFullString(payload) {\r\n return isString(payload) && payload !== '';\r\n}\r\n/**\r\n * Returns whether the payload is ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isEmptyString(payload) {\r\n return payload === '';\r\n}\r\n/**\r\n * Returns whether the payload is a number\r\n *\r\n * This will return false for NaN\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\r\nfunction isNumber(payload) {\r\n return (getType(payload) === 'Number' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a boolean\r\n *\r\n * @param {*} payload\r\n * @returns {payload is boolean}\r\n */\r\nfunction isBoolean(payload) {\r\n return getType(payload) === 'Boolean';\r\n}\r\n/**\r\n * Returns whether the payload is a regular expression\r\n *\r\n * @param {*} payload\r\n * @returns {payload is RegExp}\r\n */\r\nfunction isRegExp(payload) {\r\n return getType(payload) === 'RegExp';\r\n}\r\n/**\r\n * Returns whether the payload is a date, and that the date is Valid\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Date}\r\n */\r\nfunction isDate(payload) {\r\n return (getType(payload) === 'Date' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a Symbol\r\n *\r\n * @param {*} payload\r\n * @returns {payload is symbol}\r\n */\r\nfunction isSymbol(payload) {\r\n return (getType(payload) === 'Symbol');\r\n}\r\n/**\r\n * Returns whether the payload is a primitive type (eg. Boolean | Null | Undefined | Number | String | Symbol)\r\n *\r\n * @param {*} payload\r\n * @returns {(payload is boolean | null | undefined | number | string | symbol)}\r\n */\r\nfunction isPrimitive(payload) {\r\n return (isBoolean(payload) ||\r\n isNull(payload) ||\r\n isUndefined(payload) ||\r\n isNumber(payload) ||\r\n isString(payload) ||\r\n isSymbol(payload));\r\n}\r\n/**\r\n * Does a generic check to check that the given payload is of a given type.\r\n * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!);\r\n * It will, however, differentiate between object and null\r\n *\r\n * @template T\r\n * @param {*} payload\r\n * @param {T} type\r\n * @throws {TypeError} Will throw type error if type is an invalid type\r\n * @returns {payload is T}\r\n */\r\nfunction isType(payload, type) {\r\n if (!(type instanceof Function)) {\r\n throw new TypeError('Type must be a function');\r\n }\r\n if (!type.hasOwnProperty('prototype')) {\r\n throw new TypeError('Type is not a class');\r\n }\r\n // Classes usually have names (as functions usually have names)\r\n var name = type.name;\r\n return (getType(payload) === name) || Boolean(payload && (payload.constructor === type));\r\n}\n\nexport { getType, isUndefined, isNull, isPlainObject, isObject, isAnyObject, isObjectLike, isFunction, isArray, isString, isFullString, isEmptyString, isNumber, isBoolean, isRegExp, isDate, isSymbol, isPrimitive, isType };\n","import { isArray, isPlainObject, isSymbol } from 'is-what';\n\nfunction assignProp(carry, key, newVal, originalObject) {\r\n var propType = originalObject.propertyIsEnumerable(key)\r\n ? 'enumerable'\r\n : 'nonenumerable';\r\n if (propType === 'enumerable')\r\n carry[key] = newVal;\r\n if (propType === 'nonenumerable') {\r\n Object.defineProperty(carry, key, {\r\n value: newVal,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n });\r\n }\r\n}\r\nfunction mergeRecursively(origin, newComer, extensions) {\r\n // work directly on newComer if its not an object\r\n if (!isPlainObject(newComer)) {\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newComer = extend(origin, newComer);\r\n });\r\n }\r\n return newComer;\r\n }\r\n // define newObject to merge all values upon\r\n var newObject = {};\r\n if (isPlainObject(origin)) {\r\n var props_1 = Object.getOwnPropertyNames(origin);\r\n var symbols_1 = Object.getOwnPropertySymbols(origin);\r\n newObject = props_1.concat(symbols_1).reduce(function (carry, key) {\r\n // @ts-ignore\r\n var targetVal = origin[key];\r\n if ((!isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key)) ||\r\n (isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key))) {\r\n assignProp(carry, key, targetVal, origin);\r\n }\r\n return carry;\r\n }, {});\r\n }\r\n var props = Object.getOwnPropertyNames(newComer);\r\n var symbols = Object.getOwnPropertySymbols(newComer);\r\n var result = props.concat(symbols).reduce(function (carry, key) {\r\n // re-define the origin and newComer as targetVal and newVal\r\n var newVal = newComer[key];\r\n var targetVal = (isPlainObject(origin))\r\n // @ts-ignore\r\n ? origin[key]\r\n : undefined;\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newVal = extend(targetVal, newVal);\r\n });\r\n }\r\n // When newVal is an object do the merge recursively\r\n if (targetVal !== undefined && isPlainObject(newVal)) {\r\n newVal = mergeRecursively(targetVal, newVal, extensions);\r\n }\r\n assignProp(carry, key, newVal, newComer);\r\n return carry;\r\n }, newObject);\r\n return result;\r\n}\r\n/**\r\n * Merge anything recursively.\r\n * Objects get merged, special objects (classes etc.) are re-assigned \"as is\".\r\n * Basic types overwrite objects or other basic types.\r\n *\r\n * @param {(IConfig | any)} origin\r\n * @param {...any[]} newComers\r\n * @returns the result\r\n */\r\nfunction merge(origin) {\r\n var newComers = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n newComers[_i - 1] = arguments[_i];\r\n }\r\n var extensions = null;\r\n var base = origin;\r\n if (isPlainObject(origin) && origin.extensions && Object.keys(origin).length === 1) {\r\n base = {};\r\n extensions = origin.extensions;\r\n }\r\n return newComers.reduce(function (result, newComer) {\r\n return mergeRecursively(result, newComer, extensions);\r\n }, base);\r\n}\n\nfunction concatArrays(originVal, newVal) {\r\n if (isArray(originVal) && isArray(newVal)) {\r\n // concat logic\r\n return originVal.concat(newVal);\r\n }\r\n return newVal; // always return newVal as fallback!!\r\n}\n\nexport default merge;\nexport { merge, concatArrays };\n","/** @license React v16.8.6\n * react-is.production.min.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'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (colorNames.hasOwnProperty(name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar keyword = /(\\D+)/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\n\t\tif (!rgb) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = (parseFloat(match[1]) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = num.toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function () { /* empty */ };\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","/**\n * @ignore\n * event object for dom\n * @author yiminghe@gmail.com\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventBaseObject = require('./EventBaseObject');\n\nvar _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar TRUE = true;\nvar FALSE = false;\nvar commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];\n\nfunction isNullOrUndefined(w) {\n return w === null || w === undefined;\n}\n\nvar eventNormalizers = [{\n reg: /^key/,\n props: ['char', 'charCode', 'key', 'keyCode', 'which'],\n fix: function fix(event, nativeEvent) {\n if (isNullOrUndefined(event.which)) {\n event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;\n }\n\n // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)\n if (event.metaKey === undefined) {\n event.metaKey = event.ctrlKey;\n }\n }\n}, {\n reg: /^touch/,\n props: ['touches', 'changedTouches', 'targetTouches']\n}, {\n reg: /^hashchange$/,\n props: ['newURL', 'oldURL']\n}, {\n reg: /^gesturechange$/i,\n props: ['rotation', 'scale']\n}, {\n reg: /^(mousewheel|DOMMouseScroll)$/,\n props: [],\n fix: function fix(event, nativeEvent) {\n var deltaX = undefined;\n var deltaY = undefined;\n var delta = undefined;\n var wheelDelta = nativeEvent.wheelDelta;\n var axis = nativeEvent.axis;\n var wheelDeltaY = nativeEvent.wheelDeltaY;\n var wheelDeltaX = nativeEvent.wheelDeltaX;\n var detail = nativeEvent.detail;\n\n // ie/webkit\n if (wheelDelta) {\n delta = wheelDelta / 120;\n }\n\n // gecko\n if (detail) {\n // press control e.detail == 1 else e.detail == 3\n delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);\n }\n\n // Gecko\n if (axis !== undefined) {\n if (axis === event.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = 0 - delta;\n } else if (axis === event.VERTICAL_AXIS) {\n deltaX = 0;\n deltaY = delta;\n }\n }\n\n // Webkit\n if (wheelDeltaY !== undefined) {\n deltaY = wheelDeltaY / 120;\n }\n if (wheelDeltaX !== undefined) {\n deltaX = -1 * wheelDeltaX / 120;\n }\n\n // 默认 deltaY (ie)\n if (!deltaX && !deltaY) {\n deltaY = delta;\n }\n\n if (deltaX !== undefined) {\n /**\n * deltaX of mousewheel event\n * @property deltaX\n * @member Event.DomEvent.Object\n */\n event.deltaX = deltaX;\n }\n\n if (deltaY !== undefined) {\n /**\n * deltaY of mousewheel event\n * @property deltaY\n * @member Event.DomEvent.Object\n */\n event.deltaY = deltaY;\n }\n\n if (delta !== undefined) {\n /**\n * delta of mousewheel event\n * @property delta\n * @member Event.DomEvent.Object\n */\n event.delta = delta;\n }\n }\n}, {\n reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,\n props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],\n fix: function fix(event, nativeEvent) {\n var eventDoc = undefined;\n var doc = undefined;\n var body = undefined;\n var target = event.target;\n var button = nativeEvent.button;\n\n // Calculate pageX/Y if missing and clientX/Y available\n if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {\n eventDoc = target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // which for click: 1 === left; 2 === middle; 3 === right\n // do not use button\n if (!event.which && button !== undefined) {\n if (button & 1) {\n event.which = 1;\n } else if (button & 2) {\n event.which = 3;\n } else if (button & 4) {\n event.which = 2;\n } else {\n event.which = 0;\n }\n }\n\n // add relatedTarget, if necessary\n if (!event.relatedTarget && event.fromElement) {\n event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;\n }\n\n return event;\n }\n}];\n\nfunction retTrue() {\n return TRUE;\n}\n\nfunction retFalse() {\n return FALSE;\n}\n\nfunction DomEventObject(nativeEvent) {\n var type = nativeEvent.type;\n\n var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';\n\n _EventBaseObject2['default'].call(this);\n\n this.nativeEvent = nativeEvent;\n\n // in case dom event has been mark as default prevented by lower dom node\n var isDefaultPrevented = retFalse;\n if ('defaultPrevented' in nativeEvent) {\n isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;\n } else if ('getPreventDefault' in nativeEvent) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=691151\n isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;\n } else if ('returnValue' in nativeEvent) {\n isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;\n }\n\n this.isDefaultPrevented = isDefaultPrevented;\n\n var fixFns = [];\n var fixFn = undefined;\n var l = undefined;\n var prop = undefined;\n var props = commonProps.concat();\n\n eventNormalizers.forEach(function (normalizer) {\n if (type.match(normalizer.reg)) {\n props = props.concat(normalizer.props);\n if (normalizer.fix) {\n fixFns.push(normalizer.fix);\n }\n }\n });\n\n l = props.length;\n\n // clone properties of the original event object\n while (l) {\n prop = props[--l];\n this[prop] = nativeEvent[prop];\n }\n\n // fix target property, if necessary\n if (!this.target && isNative) {\n this.target = nativeEvent.srcElement || document; // srcElement might not be defined either\n }\n\n // check if target is a text node (safari)\n if (this.target && this.target.nodeType === 3) {\n this.target = this.target.parentNode;\n }\n\n l = fixFns.length;\n\n while (l) {\n fixFn = fixFns[--l];\n fixFn(this, nativeEvent);\n }\n\n this.timeStamp = nativeEvent.timeStamp || Date.now();\n}\n\nvar EventBaseObjectProto = _EventBaseObject2['default'].prototype;\n\n(0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {\n constructor: DomEventObject,\n\n preventDefault: function preventDefault() {\n var e = this.nativeEvent;\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n // otherwise set the returnValue property of the original event to FALSE (IE)\n e.returnValue = FALSE;\n }\n\n EventBaseObjectProto.preventDefault.call(this);\n },\n\n stopPropagation: function stopPropagation() {\n var e = this.nativeEvent;\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n } else {\n // otherwise set the cancelBubble property of the original event to TRUE (IE)\n e.cancelBubble = TRUE;\n }\n\n EventBaseObjectProto.stopPropagation.call(this);\n }\n});\n\nexports['default'] = DomEventObject;\nmodule.exports = exports['default'];","/**\n * @ignore\n * base event object for custom and dom event.\n * @author yiminghe@gmail.com\n */\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction returnFalse() {\n return false;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction EventBaseObject() {\n this.timeStamp = Date.now();\n this.target = undefined;\n this.currentTarget = undefined;\n}\n\nEventBaseObject.prototype = {\n isEventObject: 1,\n\n constructor: EventBaseObject,\n\n isDefaultPrevented: returnFalse,\n\n isPropagationStopped: returnFalse,\n\n isImmediatePropagationStopped: returnFalse,\n\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n },\n\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n },\n\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n // fixed 1.2\n // call stopPropagation implicitly\n this.stopPropagation();\n },\n\n halt: function halt(immediate) {\n if (immediate) {\n this.stopImmediatePropagation();\n } else {\n this.stopPropagation();\n }\n this.preventDefault();\n }\n};\n\nexports[\"default\"] = EventBaseObject;\nmodule.exports = exports[\"default\"];","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\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","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n","var api = require(\"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../css-loader/dist/cjs.js!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function insertAtTop(element) {\n\t\t\t\t document.head.insertBefore(element, document.head.firstElementChild);\n\t\t\t\t};\noptions.singleton = false;\n\nvar update = api(content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;","\"use strict\";\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 = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\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 && btoa) {\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 ';\n };\n};\n\n/* takes a css factory function and outputs an element factory */\nvar wrapAsElement = function wrapAsElement(css, names) {\n return function () {\n var _props;\n\n var props = (_props = {}, _props[SC_ATTR] = stringifyNames(names), _props[SC_VERSION_ATTR] = \"4.4.0\", _props);\n\n var nonce = getNonce();\n if (nonce) {\n // $FlowFixMe\n props.nonce = nonce;\n }\n\n // eslint-disable-next-line react/no-danger\n return React.createElement('style', _extends({}, props, { dangerouslySetInnerHTML: { __html: css() } }));\n };\n};\n\nvar getIdsFromMarkersFactory = function getIdsFromMarkersFactory(markers) {\n return function () {\n return Object.keys(markers);\n };\n};\n\n/* speedy tags utilise insertRule */\nvar makeSpeedyTag = function makeSpeedyTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var sizes = [];\n\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = sizes.length;\n sizes.push(0);\n resetIdNames(names, id);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var sheet = sheetForTag(el);\n var insertIndex = addUpUntilIndex(sizes, marker);\n\n var injectedRules = 0;\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = cssRules[i];\n var mayHaveImport = extractImport; /* @import rules are reordered to appear first */\n if (mayHaveImport && cssRule.indexOf('@import') !== -1) {\n importRules.push(cssRule);\n } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n mayHaveImport = false;\n injectedRules += 1;\n }\n }\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n\n sizes[marker] += injectedRules; /* add up no of injected rules */\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n // $FlowFixMe\n if (el.isConnected === false) return;\n\n var size = sizes[marker];\n var sheet = sheetForTag(el);\n var removalIndex = addUpUntilIndex(sizes, marker) - 1;\n deleteRules(sheet, removalIndex, size);\n sizes[marker] = 0;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var _sheetForTag = sheetForTag(el),\n cssRules = _sheetForTag.cssRules;\n\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += makeTextMarker(id);\n var marker = markers[id];\n var end = addUpUntilIndex(sizes, marker);\n var size = sizes[marker];\n for (var i = end - size; i < end; i += 1) {\n var rule = cssRules[i];\n if (rule !== undefined) {\n str += rule.cssText;\n }\n }\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeTextNode = function makeTextNode(targetDocument, id) {\n return targetDocument.createTextNode(makeTextMarker(id));\n};\n\nvar makeBrowserTag = function makeBrowserTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n\n var extractImport = getImportRuleTag !== undefined;\n\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = makeTextNode(el.ownerDocument, id);\n el.appendChild(markers[id]);\n names[id] = Object.create(null);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var rule = cssRules[i];\n var mayHaveImport = extractImport;\n if (mayHaveImport && rule.indexOf('@import') !== -1) {\n importRules.push(rule);\n } else {\n mayHaveImport = false;\n var separator = i === cssRulesSize - 1 ? '' : ' ';\n marker.appendData('' + rule + separator);\n }\n }\n\n addNameForId(names, id, name);\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n\n /* create new empty text node and replace the current one */\n var newMarker = makeTextNode(el.ownerDocument, id);\n el.replaceChild(newMarker, marker);\n markers[id] = newMarker;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += markers[id].data;\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeServerTag = function makeServerTag(namesArg, markersArg) {\n var names = namesArg === undefined ? Object.create(null) : namesArg;\n var markers = markersArg === undefined ? Object.create(null) : markersArg;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n return markers[id] = [''];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n marker[0] += cssRules.join(' ');\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n marker[0] = '';\n resetIdNames(names, id);\n };\n\n var css = function css() {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n var cssForId = markers[id][0];\n if (cssForId) {\n str += makeTextMarker(id) + cssForId;\n }\n }\n return str;\n };\n\n var clone = function clone() {\n var namesClone = cloneNames(names);\n var markersClone = Object.create(null);\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n markersClone[id] = [markers[id][0]];\n }\n\n return makeServerTag(namesClone, markersClone);\n };\n\n var tag = {\n clone: clone,\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: null,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n\n return tag;\n};\n\nvar makeTag = function makeTag(target, tagEl, forceServer, insertBefore, getImportRuleTag) {\n if (IS_BROWSER && !forceServer) {\n var el = makeStyleTag(target, tagEl, insertBefore);\n\n if (DISABLE_SPEEDY) {\n return makeBrowserTag(el, getImportRuleTag);\n } else {\n return makeSpeedyTag(el, getImportRuleTag);\n }\n }\n\n return makeServerTag();\n};\n\nvar rehydrate = function rehydrate(tag, els, extracted) {\n /* add all extracted components to the new tag */\n for (var i = 0, len = extracted.length; i < len; i += 1) {\n var _extracted$i = extracted[i],\n componentId = _extracted$i.componentId,\n cssFromDOM = _extracted$i.cssFromDOM;\n\n var cssRules = splitByRules(cssFromDOM);\n tag.insertRules(componentId, cssRules);\n }\n\n /* remove old HTMLStyleElements, since they have been rehydrated */\n for (var _i = 0, _len = els.length; _i < _len; _i += 1) {\n var el = els[_i];\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n};\n\n// \n\nvar SPLIT_REGEX = /\\s+/;\n\n/* determine the maximum number of components before tags are sharded */\nvar MAX_SIZE = void 0;\nif (IS_BROWSER) {\n /* in speedy mode we can keep a lot more rules in a sheet before a slowdown can be expected */\n MAX_SIZE = DISABLE_SPEEDY ? 40 : 1000;\n} else {\n /* for servers we do not need to shard at all */\n MAX_SIZE = -1;\n}\n\nvar sheetRunningId = 0;\nvar master = void 0;\n\nvar StyleSheet = function () {\n\n /* a map from ids to tags */\n\n /* deferred rules for a given id */\n\n /* this is used for not reinjecting rules via hasNameForId() */\n\n /* when rules for an id are removed using remove() we have to ignore rehydratedNames for it */\n\n /* a list of tags belonging to this StyleSheet */\n\n /* a tag for import rules */\n\n /* current capacity until a new tag must be created */\n\n /* children (aka clones) of this StyleSheet inheriting all and future injections */\n\n function StyleSheet() {\n var _this = this;\n\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : IS_BROWSER ? document.head : null;\n var forceServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n classCallCheck(this, StyleSheet);\n\n this.getImportRuleTag = function () {\n var importRuleTag = _this.importRuleTag;\n\n if (importRuleTag !== undefined) {\n return importRuleTag;\n }\n\n var firstTag = _this.tags[0];\n var insertBefore = true;\n\n return _this.importRuleTag = makeTag(_this.target, firstTag ? firstTag.styleTag : null, _this.forceServer, insertBefore);\n };\n\n sheetRunningId += 1;\n this.id = sheetRunningId;\n this.forceServer = forceServer;\n this.target = forceServer ? null : target;\n this.tagMap = {};\n this.deferred = {};\n this.rehydratedNames = {};\n this.ignoreRehydratedNames = {};\n this.tags = [];\n this.capacity = 1;\n this.clones = [];\n }\n\n /* rehydrate all SSR'd style tags */\n\n\n StyleSheet.prototype.rehydrate = function rehydrate$$1() {\n if (!IS_BROWSER || this.forceServer) return this;\n\n var els = [];\n var extracted = [];\n var isStreamed = false;\n\n /* retrieve all of our SSR style elements from the DOM */\n var nodes = document.querySelectorAll('style[' + SC_ATTR + '][' + SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"]');\n\n var nodesSize = nodes.length;\n\n /* abort rehydration if no previous style tags were found */\n if (!nodesSize) return this;\n\n for (var i = 0; i < nodesSize; i += 1) {\n var el = nodes[i];\n\n /* check if style tag is a streamed tag */\n if (!isStreamed) isStreamed = !!el.getAttribute(SC_STREAM_ATTR);\n\n /* retrieve all component names */\n var elNames = (el.getAttribute(SC_ATTR) || '').trim().split(SPLIT_REGEX);\n var elNamesSize = elNames.length;\n for (var j = 0, name; j < elNamesSize; j += 1) {\n name = elNames[j];\n /* add rehydrated name to sheet to avoid re-adding styles */\n this.rehydratedNames[name] = true;\n }\n\n /* extract all components and their CSS */\n extracted.push.apply(extracted, extractComps(el.textContent));\n\n /* store original HTMLStyleElement */\n els.push(el);\n }\n\n /* abort rehydration if nothing was extracted */\n var extractedSize = extracted.length;\n if (!extractedSize) return this;\n\n /* create a tag to be used for rehydration */\n var tag = this.makeTag(null);\n\n rehydrate(tag, els, extracted);\n\n /* reset capacity and adjust MAX_SIZE by the initial size of the rehydration */\n this.capacity = Math.max(1, MAX_SIZE - extractedSize);\n this.tags.push(tag);\n\n /* retrieve all component ids */\n for (var _j = 0; _j < extractedSize; _j += 1) {\n this.tagMap[extracted[_j].componentId] = tag;\n }\n\n return this;\n };\n\n /* retrieve a \"master\" instance of StyleSheet which is typically used when no other is available\n * The master StyleSheet is targeted by createGlobalStyle, keyframes, and components outside of any\n * StyleSheetManager's context */\n\n\n /* reset the internal \"master\" instance */\n StyleSheet.reset = function reset() {\n var forceServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n master = new StyleSheet(undefined, forceServer).rehydrate();\n };\n\n /* adds \"children\" to the StyleSheet that inherit all of the parents' rules\n * while their own rules do not affect the parent */\n\n\n StyleSheet.prototype.clone = function clone() {\n var sheet = new StyleSheet(this.target, this.forceServer);\n\n /* add to clone array */\n this.clones.push(sheet);\n\n /* clone all tags */\n sheet.tags = this.tags.map(function (tag) {\n var ids = tag.getIds();\n var newTag = tag.clone();\n\n /* reconstruct tagMap */\n for (var i = 0; i < ids.length; i += 1) {\n sheet.tagMap[ids[i]] = newTag;\n }\n\n return newTag;\n });\n\n /* clone other maps */\n sheet.rehydratedNames = _extends({}, this.rehydratedNames);\n sheet.deferred = _extends({}, this.deferred);\n\n return sheet;\n };\n\n /* force StyleSheet to create a new tag on the next injection */\n\n\n StyleSheet.prototype.sealAllTags = function sealAllTags() {\n this.capacity = 1;\n\n this.tags.forEach(function (tag) {\n // eslint-disable-next-line no-param-reassign\n tag.sealed = true;\n });\n };\n\n StyleSheet.prototype.makeTag = function makeTag$$1(tag) {\n var lastEl = tag ? tag.styleTag : null;\n var insertBefore = false;\n\n return makeTag(this.target, lastEl, this.forceServer, insertBefore, this.getImportRuleTag);\n };\n\n /* get a tag for a given componentId, assign the componentId to one, or shard */\n StyleSheet.prototype.getTagForId = function getTagForId(id) {\n /* simply return a tag, when the componentId was already assigned one */\n var prev = this.tagMap[id];\n if (prev !== undefined && !prev.sealed) {\n return prev;\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n /* shard (create a new tag) if the tag is exhausted (See MAX_SIZE) */\n this.capacity -= 1;\n\n if (this.capacity === 0) {\n this.capacity = MAX_SIZE;\n tag = this.makeTag(tag);\n this.tags.push(tag);\n }\n\n return this.tagMap[id] = tag;\n };\n\n /* mainly for createGlobalStyle to check for its id */\n\n\n StyleSheet.prototype.hasId = function hasId(id) {\n return this.tagMap[id] !== undefined;\n };\n\n /* caching layer checking id+name to already have a corresponding tag and injected rules */\n\n\n StyleSheet.prototype.hasNameForId = function hasNameForId(id, name) {\n /* exception for rehydrated names which are checked separately */\n if (this.ignoreRehydratedNames[id] === undefined && this.rehydratedNames[name]) {\n return true;\n }\n\n var tag = this.tagMap[id];\n return tag !== undefined && tag.hasNameForId(id, name);\n };\n\n /* registers a componentId and registers it on its tag */\n\n\n StyleSheet.prototype.deferredInject = function deferredInject(id, cssRules) {\n /* don't inject when the id is already registered */\n if (this.tagMap[id] !== undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].deferredInject(id, cssRules);\n }\n\n this.getTagForId(id).insertMarker(id);\n this.deferred[id] = cssRules;\n };\n\n /* injects rules for a given id with a name that will need to be cached */\n\n\n StyleSheet.prototype.inject = function inject(id, cssRules, name) {\n var clones = this.clones;\n\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].inject(id, cssRules, name);\n }\n\n var tag = this.getTagForId(id);\n\n /* add deferred rules for component */\n if (this.deferred[id] !== undefined) {\n // Combine passed cssRules with previously deferred CSS rules\n // NOTE: We cannot mutate the deferred array itself as all clones\n // do the same (see clones[i].inject)\n var rules = this.deferred[id].concat(cssRules);\n tag.insertRules(id, rules, name);\n\n this.deferred[id] = undefined;\n } else {\n tag.insertRules(id, cssRules, name);\n }\n };\n\n /* removes all rules for a given id, which doesn't remove its marker but resets it */\n\n\n StyleSheet.prototype.remove = function remove(id) {\n var tag = this.tagMap[id];\n if (tag === undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].remove(id);\n }\n\n /* remove all rules from the tag */\n tag.removeRules(id);\n\n /* ignore possible rehydrated names */\n this.ignoreRehydratedNames[id] = true;\n\n /* delete possible deferred rules */\n this.deferred[id] = undefined;\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n var id = this.id;\n\n\n return this.tags.map(function (tag, i) {\n var key = 'sc-' + id + '-' + i;\n return cloneElement(tag.toElement(), { key: key });\n });\n };\n\n createClass(StyleSheet, null, [{\n key: 'master',\n get: function get$$1() {\n return master || (master = new StyleSheet().rehydrate());\n }\n\n /* NOTE: This is just for backwards-compatibility with jest-styled-components */\n\n }, {\n key: 'instance',\n get: function get$$1() {\n return StyleSheet.master;\n }\n }]);\n return StyleSheet;\n}();\n\n// \n\nvar Keyframes = function () {\n function Keyframes(name, rules) {\n var _this = this;\n\n classCallCheck(this, Keyframes);\n\n this.inject = function (styleSheet) {\n if (!styleSheet.hasNameForId(_this.id, _this.name)) {\n styleSheet.inject(_this.id, _this.rules, _this.name);\n }\n };\n\n this.toString = function () {\n throw new StyledComponentsError(12, String(_this.name));\n };\n\n this.name = name;\n this.rules = rules;\n\n this.id = 'sc-keyframes-' + name;\n }\n\n Keyframes.prototype.getName = function getName() {\n return this.name;\n };\n\n return Keyframes;\n}();\n\n// \n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\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 * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return string.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\n// \n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nfunction addUnitIfNeeded(name, value) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n}\n\n// \n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nvar isFalsish = function isFalsish(chunk) {\n return chunk === undefined || chunk === null || chunk === false || chunk === '';\n};\n\nvar objToCssArray = function objToCssArray(obj, prevKey) {\n var rules = [];\n var keys = Object.keys(obj);\n\n keys.forEach(function (key) {\n if (!isFalsish(obj[key])) {\n if (isPlainObject(obj[key])) {\n rules.push.apply(rules, objToCssArray(obj[key], key));\n\n return rules;\n } else if (isFunction(obj[key])) {\n rules.push(hyphenateStyleName(key) + ':', obj[key], ';');\n\n return rules;\n }\n rules.push(hyphenateStyleName(key) + ': ' + addUnitIfNeeded(key, obj[key]) + ';');\n }\n return rules;\n });\n\n return prevKey ? [prevKey + ' {'].concat(rules, ['}']) : rules;\n};\n\nfunction flatten(chunk, executionContext, styleSheet) {\n if (Array.isArray(chunk)) {\n var ruleSet = [];\n\n for (var i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet);\n\n if (result === null) continue;else if (Array.isArray(result)) ruleSet.push.apply(ruleSet, result);else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return null;\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return '.' + chunk.styledComponentId;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n var _result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(_result)) {\n // eslint-disable-next-line no-console\n console.warn(getComponentName(chunk) + ' is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.');\n }\n\n return flatten(_result, executionContext, styleSheet);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet);\n return chunk.getName();\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n}\n\n// \n\nfunction css(styles) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return flatten(interleave(EMPTY_ARRAY, [styles].concat(interpolations)));\n }\n\n // $FlowFixMe\n return flatten(interleave(styles, interpolations));\n}\n\n// \n\nfunction constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n if (!isValidElementType(tag)) {\n throw new StyledComponentsError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n var templateFunction = function templateFunction() {\n return componentConstructor(tag, options, css.apply(undefined, arguments));\n };\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean)\n }));\n };\n\n return templateFunction;\n}\n\n// \n// Source: https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash(c) {\n for (var e = c.length | 0, a = e | 0, d = 0, b; e >= 4;) {\n b = c.charCodeAt(d) & 255 | (c.charCodeAt(++d) & 255) << 8 | (c.charCodeAt(++d) & 255) << 16 | (c.charCodeAt(++d) & 255) << 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), b ^= b >>> 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16) ^ b, e -= 4, ++d;\n }\n switch (e) {\n case 3:\n a ^= (c.charCodeAt(d + 2) & 255) << 16;\n case 2:\n a ^= (c.charCodeAt(d + 1) & 255) << 8;\n case 1:\n a ^= c.charCodeAt(d) & 255, a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n }\n a ^= a >>> 13;\n a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n return (a ^ a >>> 15) >>> 0;\n}\n\n// \n/* eslint-disable no-bitwise */\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nvar charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nvar getAlphabeticChar = function getAlphabeticChar(code) {\n return String.fromCharCode(code + (code > 25 ? 39 : 97));\n};\n\n/* input a number, usually a hash and convert it to base-52 */\nfunction generateAlphabeticName(code) {\n var name = '';\n var x = void 0;\n\n /* get a char and divide by alphabet-length */\n for (x = code; x > charsLength; x = Math.floor(x / charsLength)) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return getAlphabeticChar(x % charsLength) + name;\n}\n\n// \n\nfunction hasFunctionObjectKey(obj) {\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in obj) {\n if (isFunction(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isStaticRules(rules, attrs) {\n for (var i = 0; i < rules.length; i += 1) {\n var rule = rules[i];\n\n // recursive case\n if (Array.isArray(rule) && !isStaticRules(rule, attrs)) {\n return false;\n } else if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n if (attrs.some(function (x) {\n return isFunction(x) || hasFunctionObjectKey(x);\n })) return false;\n\n return true;\n}\n\n// \n\n/* combines hashStr (murmurhash) and nameGenerator for convenience */\nvar hasher = function hasher(str) {\n return generateAlphabeticName(murmurhash(str));\n};\n\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\n\nvar ComponentStyle = function () {\n function ComponentStyle(rules, attrs, componentId) {\n classCallCheck(this, ComponentStyle);\n\n this.rules = rules;\n this.isStatic = process.env.NODE_ENV === 'production' && isStaticRules(rules, attrs);\n this.componentId = componentId;\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n\n\n ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) {\n var isStatic = this.isStatic,\n componentId = this.componentId,\n lastClassName = this.lastClassName;\n\n if (IS_BROWSER && isStatic && typeof lastClassName === 'string' && styleSheet.hasNameForId(componentId, lastClassName)) {\n return lastClassName;\n }\n\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var name = hasher(this.componentId + flatCSS.join(''));\n if (!styleSheet.hasNameForId(componentId, name)) {\n styleSheet.inject(this.componentId, stringifyRules(flatCSS, '.' + name, undefined, componentId), name);\n }\n\n this.lastClassName = name;\n return name;\n };\n\n ComponentStyle.generateName = function generateName(str) {\n return hasher(str);\n };\n\n return ComponentStyle;\n}();\n\n// \n\nvar LIMIT = 200;\n\nvar createWarnTooManyClasses = (function (displayName) {\n var generatedClasses = {};\n var warningSeen = false;\n\n return function (className) {\n if (!warningSeen) {\n generatedClasses[className] = true;\n if (Object.keys(generatedClasses).length >= LIMIT) {\n // Unable to find latestRule in test environment.\n /* eslint-disable no-console, prefer-template */\n console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \\n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\\n' + 'Example:\\n' + ' const Component = styled.div.attrs(props => ({\\n' + ' style: {\\n' + ' background: props.background,\\n' + ' },\\n' + ' }))`width: 100%;`\\n\\n' + ' ');\n warningSeen = true;\n generatedClasses = {};\n }\n }\n };\n});\n\n// \n\nvar determineTheme = (function (props, fallbackTheme) {\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types, flowtype-errors/show-errors */\n var isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;\n /* eslint-enable */\n\n return theme;\n});\n\n// \nvar escapeRegex = /[[\\].#*$><+~=|^:(),\"'`-]+/g;\nvar dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nfunction escape(str) {\n return str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n\n// \n\nfunction isTag(target) {\n return typeof target === 'string' && (process.env.NODE_ENV !== 'production' ? target.charAt(0) === target.charAt(0).toLowerCase() : true);\n}\n\n// \n\nfunction generateDisplayName(target) {\n // $FlowFixMe\n return isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')';\n}\n\nvar _TYPE_STATICS;\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDerivedStateFromProps: true,\n propTypes: true,\n type: true\n};\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};\n\nvar TYPE_STATICS = (_TYPE_STATICS = {}, _TYPE_STATICS[ForwardRef] = {\n $$typeof: true,\n render: true\n}, _TYPE_STATICS);\n\nvar defineProperty$1 = Object.defineProperty,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n _Object$getOwnPropert = Object.getOwnPropertySymbols,\n getOwnPropertySymbols = _Object$getOwnPropert === undefined ? function () {\n return [];\n} : _Object$getOwnPropert,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getPrototypeOf = Object.getPrototypeOf,\n objectPrototype = Object.prototype;\nvar arrayPrototype = Array.prototype;\n\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n\n var keys = arrayPrototype.concat(getOwnPropertyNames(sourceComponent),\n // $FlowFixMe\n getOwnPropertySymbols(sourceComponent));\n\n var targetStatics = TYPE_STATICS[targetComponent.$$typeof] || REACT_STATICS;\n\n var sourceStatics = TYPE_STATICS[sourceComponent.$$typeof] || REACT_STATICS;\n\n var i = keys.length;\n var descriptor = void 0;\n var key = void 0;\n\n // eslint-disable-next-line no-plusplus\n while (i--) {\n key = keys[i];\n\n if (\n // $FlowFixMe\n !KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) &&\n // $FlowFixMe\n !(targetStatics && targetStatics[key])) {\n descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n if (descriptor) {\n try {\n // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {\n /* fail silently */\n }\n }\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\n// \nfunction isDerivedReactComponent(fn) {\n return !!(fn && fn.prototype && fn.prototype.isReactComponent);\n}\n\n// \n// Helper to call a given function, only once\nvar once = (function (cb) {\n var called = false;\n\n return function () {\n if (!called) {\n called = true;\n cb.apply(undefined, arguments);\n }\n };\n});\n\n// \n\nvar ThemeContext = createContext();\n\nvar ThemeConsumer = ThemeContext.Consumer;\n\n/**\n * Provide a theme to an entire react component tree via context\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider(props) {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext.bind(_this));\n _this.renderInner = _this.renderInner.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) return null;\n\n return React.createElement(\n ThemeContext.Consumer,\n null,\n this.renderInner\n );\n };\n\n ThemeProvider.prototype.renderInner = function renderInner(outerTheme) {\n var context = this.getContext(this.props.theme, outerTheme);\n\n return React.createElement(\n ThemeContext.Provider,\n { value: context },\n this.props.children\n );\n };\n\n /**\n * Get the theme from the props, supporting both (outerTheme) => {}\n * as well as object notation\n */\n\n\n ThemeProvider.prototype.getTheme = function getTheme(theme, outerTheme) {\n if (isFunction(theme)) {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme === null || Array.isArray(mergedTheme) || (typeof mergedTheme === 'undefined' ? 'undefined' : _typeof(mergedTheme)) !== 'object')) {\n throw new StyledComponentsError(7);\n }\n\n return mergedTheme;\n }\n\n if (theme === null || Array.isArray(theme) || (typeof theme === 'undefined' ? 'undefined' : _typeof(theme)) !== 'object') {\n throw new StyledComponentsError(8);\n }\n\n return _extends({}, outerTheme, theme);\n };\n\n ThemeProvider.prototype.getContext = function getContext(theme, outerTheme) {\n return this.getTheme(theme, outerTheme);\n };\n\n return ThemeProvider;\n}(Component);\n\n// \n\nvar CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nvar ServerStyleSheet = function () {\n function ServerStyleSheet() {\n classCallCheck(this, ServerStyleSheet);\n\n /* The master sheet might be reset, so keep a reference here */\n this.masterSheet = StyleSheet.master;\n this.instance = this.masterSheet.clone();\n this.sealed = false;\n }\n\n /**\n * Mark the ServerStyleSheet as being fully emitted and manually GC it from the\n * StyleSheet singleton.\n */\n\n\n ServerStyleSheet.prototype.seal = function seal() {\n if (!this.sealed) {\n /* Remove sealed StyleSheets from the master sheet */\n var index = this.masterSheet.clones.indexOf(this.instance);\n this.masterSheet.clones.splice(index, 1);\n this.sealed = true;\n }\n };\n\n ServerStyleSheet.prototype.collectStyles = function collectStyles(children) {\n if (this.sealed) {\n throw new StyledComponentsError(2);\n }\n\n return React.createElement(\n StyleSheetManager,\n { sheet: this.instance },\n children\n );\n };\n\n ServerStyleSheet.prototype.getStyleTags = function getStyleTags() {\n this.seal();\n return this.instance.toHTML();\n };\n\n ServerStyleSheet.prototype.getStyleElement = function getStyleElement() {\n this.seal();\n return this.instance.toReactElements();\n };\n\n ServerStyleSheet.prototype.interleaveWithNodeStream = function interleaveWithNodeStream(readableStream) {\n var _this = this;\n\n {\n throw new StyledComponentsError(3);\n }\n\n /* the tag index keeps track of which tags have already been emitted */\n var instance = this.instance;\n\n var instanceTagIndex = 0;\n\n var streamAttr = SC_STREAM_ATTR + '=\"true\"';\n\n var transformer = new stream.Transform({\n transform: function appendStyleChunks(chunk, /* encoding */_, callback) {\n var tags = instance.tags;\n\n var html = '';\n\n /* retrieve html for each new style tag */\n for (; instanceTagIndex < tags.length; instanceTagIndex += 1) {\n var tag = tags[instanceTagIndex];\n html += tag.toHTML(streamAttr);\n }\n\n /* force our StyleSheets to emit entirely new tags */\n instance.sealAllTags();\n\n var renderedHtml = chunk.toString();\n\n /* prepend style html to chunk, unless the start of the chunk is a closing tag in which case append right after that */\n if (CLOSING_TAG_R.test(renderedHtml)) {\n var endOfClosingTag = renderedHtml.indexOf('>');\n\n this.push(renderedHtml.slice(0, endOfClosingTag + 1) + html + renderedHtml.slice(endOfClosingTag + 1));\n } else this.push(html + renderedHtml);\n\n callback();\n }\n });\n\n readableStream.on('end', function () {\n return _this.seal();\n });\n\n readableStream.on('error', function (err) {\n _this.seal();\n\n // forward the error to the transform stream\n transformer.emit('error', err);\n });\n\n return readableStream.pipe(transformer);\n };\n\n return ServerStyleSheet;\n}();\n\n// \n\nvar StyleSheetContext = createContext();\nvar StyleSheetConsumer = StyleSheetContext.Consumer;\n\nvar StyleSheetManager = function (_Component) {\n inherits(StyleSheetManager, _Component);\n\n function StyleSheetManager(props) {\n classCallCheck(this, StyleSheetManager);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext);\n return _this;\n }\n\n StyleSheetManager.prototype.getContext = function getContext(sheet, target) {\n if (sheet) {\n return sheet;\n } else if (target) {\n return new StyleSheet(target);\n } else {\n throw new StyledComponentsError(4);\n }\n };\n\n StyleSheetManager.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n sheet = _props.sheet,\n target = _props.target;\n\n\n return React.createElement(\n StyleSheetContext.Provider,\n { value: this.getContext(sheet, target) },\n process.env.NODE_ENV !== 'production' ? React.Children.only(children) : children\n );\n };\n\n return StyleSheetManager;\n}(Component);\nprocess.env.NODE_ENV !== \"production\" ? StyleSheetManager.propTypes = {\n sheet: PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]),\n\n target: PropTypes.shape({\n appendChild: PropTypes.func.isRequired\n })\n} : void 0;\n\n// \n\nvar THEME_PROP_REGEX = /\\.theme[.[]/;\nvar identifiers = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(_ComponentStyle, _displayName, parentComponentId) {\n var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName);\n\n /**\n * This ensures uniqueness if two components happen to share\n * the same displayName.\n */\n var nr = (identifiers[displayName] || 0) + 1;\n identifiers[displayName] = nr;\n\n var componentId = displayName + '-' + _ComponentStyle.generateName(displayName + nr);\n\n return parentComponentId ? parentComponentId + '-' + componentId : componentId;\n}\n\n// $FlowFixMe\n\nvar StyledComponent = function (_Component) {\n inherits(StyledComponent, _Component);\n\n function StyledComponent() {\n classCallCheck(this, StyledComponent);\n\n var _this = possibleConstructorReturn(this, _Component.call(this));\n\n _this.attrs = {};\n\n _this.renderOuter = _this.renderOuter.bind(_this);\n _this.renderInner = _this.renderInner.bind(_this);\n\n if (process.env.NODE_ENV !== 'production') {\n _this.warnInnerRef = once(function (displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('The \"innerRef\" API has been removed in styled-components v4 in favor of React 16 ref forwarding, use \"ref\" instead like a typical component. \"innerRef\" was detected on component \"' + displayName + '\".')\n );\n });\n\n _this.warnAttrsFnObjectKeyDeprecated = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('Functions as object-form attrs({}) keys are now deprecated and will be removed in a future version of styled-components. Switch to the new attrs(props => ({})) syntax instead for easier and more powerful composition. The attrs key in question is \"' + key + '\" on component \"' + displayName + '\".', '\\n ' + new Error().stack)\n );\n });\n\n _this.warnNonStyledComponentAttrsObjectKey = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('It looks like you\\'ve used a non styled-component as the value for the \"' + key + '\" prop in an object-form attrs constructor of \"' + displayName + '\".\\n' + 'You should use the new function-form attrs constructor which avoids this issue: attrs(props => ({ yourStuff }))\\n' + \"To continue using the deprecated object syntax, you'll need to wrap your component prop in a function to make it available inside the styled component (you'll still get the deprecation warning though.)\\n\" + ('For example, { ' + key + ': () => InnerComponent } instead of { ' + key + ': InnerComponent }'))\n );\n });\n }\n return _this;\n }\n\n StyledComponent.prototype.render = function render() {\n return React.createElement(\n StyleSheetConsumer,\n null,\n this.renderOuter\n );\n };\n\n StyledComponent.prototype.renderOuter = function renderOuter() {\n var styleSheet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : StyleSheet.master;\n\n this.styleSheet = styleSheet;\n\n // No need to subscribe a static component to theme changes, it won't change anything\n if (this.props.forwardedComponent.componentStyle.isStatic) return this.renderInner();\n\n return React.createElement(\n ThemeConsumer,\n null,\n this.renderInner\n );\n };\n\n StyledComponent.prototype.renderInner = function renderInner(theme) {\n var _props$forwardedCompo = this.props.forwardedComponent,\n componentStyle = _props$forwardedCompo.componentStyle,\n defaultProps = _props$forwardedCompo.defaultProps,\n displayName = _props$forwardedCompo.displayName,\n foldedComponentIds = _props$forwardedCompo.foldedComponentIds,\n styledComponentId = _props$forwardedCompo.styledComponentId,\n target = _props$forwardedCompo.target,\n usesTheme = _props$forwardedCompo.usesTheme;\n\n\n var generatedClassName = void 0;\n var rawTheme = void 0;\n\n if (componentStyle.isStatic) {\n generatedClassName = this.generateAndInjectStyles(EMPTY_OBJECT, this.props);\n } else {\n rawTheme = determineTheme(this.props, theme, defaultProps);\n generatedClassName = this.generateAndInjectStyles(rawTheme || EMPTY_OBJECT, this.props);\n\n if (process.env.NODE_ENV !== 'production' && usesTheme && !rawTheme) {\n console.error('Component \\'' +\n // $FlowFixMe\n displayName + '\\' (.' + styledComponentId + ') references the \\'theme\\' prop in its styles but no theme was provided via prop or .');\n }\n }\n\n var elementToBeCreated = this.props.as || this.attrs.as || target;\n var isTargetTag = isTag(elementToBeCreated);\n\n var propsForElement = {};\n var computedProps = _extends({}, this.props, this.attrs);\n\n var key = void 0;\n // eslint-disable-next-line guard-for-in\n for (key in computedProps) {\n if (process.env.NODE_ENV !== 'production' && key === 'innerRef' && isTargetTag) {\n this.warnInnerRef(displayName);\n }\n\n if (key === 'forwardedComponent' || key === 'as') {\n continue;\n } else if (key === 'forwardedRef') propsForElement.ref = computedProps[key];else if (key === 'forwardedAs') propsForElement.as = computedProps[key];else if (!isTargetTag || validAttr(key)) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (this.props.style && this.attrs.style) {\n propsForElement.style = _extends({}, this.attrs.style, this.props.style);\n }\n\n propsForElement.className = Array.prototype.concat(foldedComponentIds, styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : null, this.props.className, this.attrs.className).filter(Boolean).join(' ');\n\n return createElement(elementToBeCreated, propsForElement);\n };\n\n StyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props, attrs) {\n var _this2 = this;\n\n var context = _extends({}, props, { theme: theme });\n\n if (!attrs.length) return context;\n\n this.attrs = {};\n\n attrs.forEach(function (attrDef) {\n var resolvedAttrDef = attrDef;\n var attrDefWasFn = false;\n var attr = void 0;\n var key = void 0;\n\n if (isFunction(resolvedAttrDef)) {\n // $FlowFixMe\n resolvedAttrDef = resolvedAttrDef(context);\n attrDefWasFn = true;\n }\n\n /* eslint-disable guard-for-in */\n // $FlowFixMe\n for (key in resolvedAttrDef) {\n attr = resolvedAttrDef[key];\n\n if (!attrDefWasFn) {\n if (isFunction(attr) && !isDerivedReactComponent(attr) && !isStyledComponent(attr)) {\n if (process.env.NODE_ENV !== 'production') {\n _this2.warnAttrsFnObjectKeyDeprecated(key, props.forwardedComponent.displayName);\n }\n\n attr = attr(context);\n\n if (process.env.NODE_ENV !== 'production' && React.isValidElement(attr)) {\n _this2.warnNonStyledComponentAttrsObjectKey(key, props.forwardedComponent.displayName);\n }\n }\n }\n\n _this2.attrs[key] = attr;\n context[key] = attr;\n }\n /* eslint-enable */\n });\n\n return context;\n };\n\n StyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var _props$forwardedCompo2 = props.forwardedComponent,\n attrs = _props$forwardedCompo2.attrs,\n componentStyle = _props$forwardedCompo2.componentStyle,\n warnTooManyClasses = _props$forwardedCompo2.warnTooManyClasses;\n\n // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n\n if (componentStyle.isStatic && !attrs.length) {\n return componentStyle.generateAndInjectStyles(EMPTY_OBJECT, this.styleSheet);\n }\n\n var className = componentStyle.generateAndInjectStyles(this.buildExecutionContext(theme, props, attrs), this.styleSheet);\n\n if (process.env.NODE_ENV !== 'production' && warnTooManyClasses) warnTooManyClasses(className);\n\n return className;\n };\n\n return StyledComponent;\n}(Component);\n\nfunction createStyledComponent(target, options, rules) {\n var isTargetStyledComp = isStyledComponent(target);\n var isClass = !isTag(target);\n\n var _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? generateDisplayName(target) : _options$displayName,\n _options$componentId = options.componentId,\n componentId = _options$componentId === undefined ? generateId(ComponentStyle, options.displayName, options.parentComponentId) : _options$componentId,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? StyledComponent : _options$ParentCompon,\n _options$attrs = options.attrs,\n attrs = _options$attrs === undefined ? EMPTY_ARRAY : _options$attrs;\n\n\n var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n var finalAttrs =\n // $FlowFixMe\n isTargetStyledComp && target.attrs ? Array.prototype.concat(target.attrs, attrs).filter(Boolean) : attrs;\n\n var componentStyle = new ComponentStyle(isTargetStyledComp ? // fold the underlying StyledComponent rules up (implicit extend)\n // $FlowFixMe\n target.componentStyle.rules.concat(rules) : rules, finalAttrs, styledComponentId);\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n var WrappedStyledComponent = void 0;\n var forwardRef = function forwardRef(props, ref) {\n return React.createElement(ParentComponent, _extends({}, props, { forwardedComponent: WrappedStyledComponent, forwardedRef: ref }));\n };\n forwardRef.displayName = displayName;\n WrappedStyledComponent = React.forwardRef(forwardRef);\n WrappedStyledComponent.displayName = displayName;\n\n // $FlowFixMe\n WrappedStyledComponent.attrs = finalAttrs;\n // $FlowFixMe\n WrappedStyledComponent.componentStyle = componentStyle;\n\n // $FlowFixMe\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp ? // $FlowFixMe\n Array.prototype.concat(target.foldedComponentIds, target.styledComponentId) : EMPTY_ARRAY;\n\n // $FlowFixMe\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n // $FlowFixMe\n WrappedStyledComponent.target = isTargetStyledComp ? target.target : target;\n\n // $FlowFixMe\n WrappedStyledComponent.withComponent = function withComponent(tag) {\n var previousComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['componentId']);\n\n\n var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag)));\n\n var newOptions = _extends({}, optionsToCopy, {\n attrs: finalAttrs,\n componentId: newComponentId,\n ParentComponent: ParentComponent\n });\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n // $FlowFixMe\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get: function get$$1() {\n return this._foldedDefaultProps;\n },\n set: function set$$1(obj) {\n // $FlowFixMe\n this._foldedDefaultProps = isTargetStyledComp ? merge(target.defaultProps, obj) : obj;\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n WrappedStyledComponent.usesTheme = componentStyle.rules.some(function (x) {\n return isFunction(x) && THEME_PROP_REGEX.test(x.toString());\n });\n\n // $FlowFixMe\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName);\n }\n\n // $FlowFixMe\n WrappedStyledComponent.toString = function () {\n return '.' + WrappedStyledComponent.styledComponentId;\n };\n\n if (isClass) {\n hoistNonReactStatics(WrappedStyledComponent, target, {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n styledComponentId: true,\n target: true,\n withComponent: true\n });\n }\n\n return WrappedStyledComponent;\n}\n\n// \n// Thanks to ReactDOMFactories for this handy list!\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr',\n\n// SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'marker', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// \n\nvar styled = function styled(tag) {\n return constructWithOptions(createStyledComponent, tag);\n};\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(function (domElement) {\n styled[domElement] = styled(domElement);\n});\n\n// \n\nvar GlobalStyle = function () {\n function GlobalStyle(rules, componentId) {\n classCallCheck(this, GlobalStyle);\n\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules, EMPTY_ARRAY);\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n GlobalStyle.prototype.createStyles = function createStyles(executionContext, styleSheet) {\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var css = stringifyRules(flatCSS, '');\n\n styleSheet.inject(this.componentId, css);\n };\n\n GlobalStyle.prototype.removeStyles = function removeStyles(styleSheet) {\n var componentId = this.componentId;\n\n if (styleSheet.hasId(componentId)) {\n styleSheet.remove(componentId);\n }\n };\n\n // TODO: overwrite in-place instead of remove+create?\n\n\n GlobalStyle.prototype.renderStyles = function renderStyles(executionContext, styleSheet) {\n this.removeStyles(styleSheet);\n this.createStyles(executionContext, styleSheet);\n };\n\n return GlobalStyle;\n}();\n\n// \n\n// place our cache into shared context so it'll persist between HMRs\nif (IS_BROWSER) {\n window.scCGSHMRCache = {};\n}\n\nfunction createGlobalStyle(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var id = 'sc-global-' + murmurhash(JSON.stringify(rules));\n var style = new GlobalStyle(rules, id);\n\n var GlobalStyleComponent = function (_React$Component) {\n inherits(GlobalStyleComponent, _React$Component);\n\n function GlobalStyleComponent(props) {\n classCallCheck(this, GlobalStyleComponent);\n\n var _this = possibleConstructorReturn(this, _React$Component.call(this, props));\n\n var _this$constructor = _this.constructor,\n globalStyle = _this$constructor.globalStyle,\n styledComponentId = _this$constructor.styledComponentId;\n\n\n if (IS_BROWSER) {\n window.scCGSHMRCache[styledComponentId] = (window.scCGSHMRCache[styledComponentId] || 0) + 1;\n }\n\n /**\n * This fixes HMR compatibility. Don't ask me why, but this combination of\n * caching the closure variables via statics and then persisting the statics in\n * state works across HMR where no other combination did. ¯\\_(ツ)_/¯\n */\n _this.state = {\n globalStyle: globalStyle,\n styledComponentId: styledComponentId\n };\n return _this;\n }\n\n GlobalStyleComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n if (window.scCGSHMRCache[this.state.styledComponentId]) {\n window.scCGSHMRCache[this.state.styledComponentId] -= 1;\n }\n /**\n * Depending on the order \"render\" is called this can cause the styles to be lost\n * until the next render pass of the remaining instance, which may\n * not be immediate.\n */\n if (window.scCGSHMRCache[this.state.styledComponentId] === 0) {\n this.state.globalStyle.removeStyles(this.styleSheet);\n }\n };\n\n GlobalStyleComponent.prototype.render = function render() {\n var _this2 = this;\n\n if (process.env.NODE_ENV !== 'production' && React.Children.count(this.props.children)) {\n // eslint-disable-next-line no-console\n console.warn('The global style component ' + this.state.styledComponentId + ' was given child JSX. createGlobalStyle does not render children.');\n }\n\n return React.createElement(\n StyleSheetConsumer,\n null,\n function (styleSheet) {\n _this2.styleSheet = styleSheet || StyleSheet.master;\n\n var globalStyle = _this2.state.globalStyle;\n\n\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(STATIC_EXECUTION_CONTEXT, _this2.styleSheet);\n\n return null;\n } else {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = _this2.constructor.defaultProps;\n\n\n var context = _extends({}, _this2.props);\n\n if (typeof theme !== 'undefined') {\n context.theme = determineTheme(_this2.props, theme, defaultProps);\n }\n\n globalStyle.renderStyles(context, _this2.styleSheet);\n\n return null;\n }\n );\n }\n }\n );\n };\n\n return GlobalStyleComponent;\n }(React.Component);\n\n GlobalStyleComponent.globalStyle = style;\n GlobalStyleComponent.styledComponentId = id;\n\n\n return GlobalStyleComponent;\n}\n\n// \n\nvar replaceWhitespace = function replaceWhitespace(str) {\n return str.replace(/\\s|\\\\n/g, '');\n};\n\nfunction keyframes(strings) {\n /* Warning if you've used keyframes on React Native */\n if (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn('`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.');\n }\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n\n var name = generateAlphabeticName(murmurhash(replaceWhitespace(JSON.stringify(rules))));\n\n return new Keyframes(name, stringifyRules(rules, name, '@keyframes'));\n}\n\n// \n\nvar withTheme = (function (Component$$1) {\n var WithTheme = React.forwardRef(function (props, ref) {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = Component$$1.defaultProps;\n\n var themeProp = determineTheme(props, theme, defaultProps);\n\n if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + getComponentName(Component$$1) + '\"');\n }\n\n return React.createElement(Component$$1, _extends({}, props, { theme: themeProp, ref: ref }));\n }\n );\n });\n\n hoistNonReactStatics(WithTheme, Component$$1);\n\n WithTheme.displayName = 'WithTheme(' + getComponentName(Component$$1) + ')';\n\n return WithTheme;\n});\n\n// \n\n/* eslint-disable */\nvar __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS = {\n StyleSheet: StyleSheet\n};\n\n// \n\n/* Warning if you've imported this file on React Native */\nif (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like you've imported 'styled-components' on React Native.\\n\" + \"Perhaps you're looking to import 'styled-components/native'?\\n\" + 'Read more about this at https://www.styled-components.com/docs/basics#react-native');\n}\n\n/* Warning if there are several instances of styled-components */\nif (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test' && typeof window !== 'undefined' && typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Node.js') === -1 && navigator.userAgent.indexOf('jsdom') === -1) {\n window['__styled-components-init__'] = window['__styled-components-init__'] || 0;\n\n if (window['__styled-components-init__'] === 1) {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. \" + 'This may cause dynamic styles not rendering properly, errors happening during rehydration process ' + 'and makes your application bigger without a good reason.\\n\\n' + 'See https://s-c.sh/2BAXzed for more info.');\n }\n\n window['__styled-components-init__'] += 1;\n}\n\n//\n\nexport default styled;\nexport { createGlobalStyle, css, isStyledComponent, keyframes, ServerStyleSheet, StyleSheetConsumer, StyleSheetContext, StyleSheetManager, ThemeConsumer, ThemeContext, ThemeProvider, withTheme, __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS };\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","export const colors = {\n PRIMARY: '#ABE2FB',\n SECONDARY: '#E6E6E6',\n DARKER_PRIMARY: '#87ceeb',\n OFF_WHITE: '#15181A',\n GREY: '#D3D3D3',\n RED: '#FF5E5E',\n DARK_GREY: '#535D63'\n};\n\nexport const TRACK_TOTAL_DEG = 270.0;\n\nexport const RADIAN = Math.PI / 180.0;\n\nexport const light = {\n primary: colors.PRIMARY,\n secondary: colors.SECONDARY,\n detail: colors.GREY,\n dark: false\n};\n\nexport const dark = {\n primary: colors.PRIMARY,\n secondary: colors.DARK_GREY,\n detail: colors.DARK_GREY,\n dark: true\n};\n\nexport default {\n dark,\n light,\n colors\n};\n","import { omit } from 'ramda';\n\nexport const getClassName = (componentName, theme) => {\n return 'daq-' + componentName + (theme && theme.dark ? '--dark' : '--light');\n};\n\nexport const getFilteredProps = props => omit(['className', 'id', 'setProps', 'style'], props);\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(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};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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};","import React from 'react';\nimport styled from 'styled-components';\n\nimport Label from './Label.styled';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-around;\n flex-direction: column;\n ${({ fullSize }) => {\n if (fullSize) return 'width: 100%;';\n return '';\n }}\n`;\n\nfunction LabelContainer(props) {\n let labelText = props.label;\n let customLabelStyle = {};\n if (typeof props.label === 'object') {\n labelText = props.label.label;\n customLabelStyle = props.label.style;\n }\n const labelElement = \n // if (labelText && labelText.length) {\n return (\n \n {props.labelPosition == 'top' && labelElement}\n {props.children}\n {props.labelPosition != 'top' && labelElement}\n \n );\n // }\n // return
{props.children}
;\n}\n\nLabelContainer.defaultProps = {\n labelPosition: 'bottom'\n};\n\nexport default LabelContainer;\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = 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 (0, _defineProperty2.default)(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}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","(function() { module.exports = window[\"ReactDOM\"]; }());","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n\tvar _react = __webpack_require__(1);\n\n\tvar _react2 = _interopRequireDefault(_react);\n\n\tvar _propTypes = __webpack_require__(2);\n\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\tvar KEYCODE_UP = 38;\n\tvar KEYCODE_DOWN = 40;\n\tvar IS_BROWSER = typeof document != 'undefined';\n\tvar RE_NUMBER = /^[+-]?((\\.\\d+)|(\\d+(\\.\\d+)?))$/;\n\tvar RE_INCOMPLETE_NUMBER = /^([+-]|\\.0*|[+-]\\.0*|[+-]?\\d+\\.)?$/;\n\n\tfunction addClass(element, className) {\n\t if (element.classList) {\n\t return element.classList.add(className);\n\t }\n\t if (!element.className.search(new RegExp(\"\\\\b\" + className + \"\\\\b\"))) {\n\t element.className = \" \" + className;\n\t }\n\t}\n\n\tfunction removeClass(element, className) {\n\t if (element.className) {\n\t if (element.classList) {\n\t return element.classList.remove(className);\n\t }\n\n\t element.className = element.className.replace(new RegExp(\"\\\\b\" + className + \"\\\\b\", \"g\"), \"\");\n\t }\n\t}\n\n\tfunction access(object, prop, defaultValue) {\n\t var result = object[prop];\n\t if (typeof result == \"function\") {\n\t for (var _len = arguments.length, args = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n\t args[_key - 3] = arguments[_key];\n\t }\n\n\t result = result.apply(undefined, args);\n\t }\n\t return result === undefined ? defaultValue : result;\n\t}\n\n\tvar NumericInput = function (_Component) {\n\t _inherits(NumericInput, _Component);\n\n\t function NumericInput() {\n\t var _ref;\n\n\t _classCallCheck(this, NumericInput);\n\n\t for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t args[_key2] = arguments[_key2];\n\t }\n\n\t var _this = _possibleConstructorReturn(this, (_ref = NumericInput.__proto__ || Object.getPrototypeOf(NumericInput)).call.apply(_ref, [this].concat(args)));\n\n\t _this._isStrict = !!_this.props.strict;\n\n\t _this.state = _extends({\n\t btnDownHover: false,\n\t btnDownActive: false,\n\t btnUpHover: false,\n\t btnUpActive: false,\n\t stringValue: \"\"\n\t }, _this._propsToState(_this.props));\n\t _this.stop = _this.stop.bind(_this);\n\t _this.onTouchEnd = _this.onTouchEnd.bind(_this);\n\t _this.refsInput = {};\n\t _this.refsWrapper = {};\n\t return _this;\n\t }\n\n\t _createClass(NumericInput, [{\n\t key: '_propsToState',\n\t value: function _propsToState(props) {\n\t var out = {};\n\n\t if (props.hasOwnProperty(\"value\")) {\n\t out.stringValue = String(props.value || props.value === 0 ? props.value : '').trim();\n\n\t out.value = out.stringValue !== '' ? this._parse(props.value) : null;\n\t } else if (!this._isMounted && props.hasOwnProperty(\"defaultValue\")) {\n\t out.stringValue = String(props.defaultValue || props.defaultValue === 0 ? props.defaultValue : '').trim();\n\n\t out.value = props.defaultValue !== '' ? this._parse(props.defaultValue) : null;\n\t }\n\n\t return out;\n\t }\n\t }, {\n\t key: 'componentWillReceiveProps',\n\t value: function componentWillReceiveProps(props) {\n\t var _this2 = this;\n\n\t this._isStrict = !!props.strict;\n\t var nextState = this._propsToState(props);\n\t if (Object.keys(nextState).length) {\n\t this._ignoreValueChange = true;\n\t this.setState(nextState, function () {\n\t _this2._ignoreValueChange = false;\n\t });\n\t }\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate() {\n\t this.saveSelection();\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate(prevProps, prevState) {\n\t if (!this._ignoreValueChange && prevState.value !== this.state.value && (!isNaN(this.state.value) || this.state.value === null)) {\n\t this._invokeEventCallback(\"onChange\", this.state.value, this.refsInput.value, this.refsInput);\n\t }\n\n\t if (this._inputFocus) {\n\t this.refsInput.focus();\n\n\t if (this.state.selectionStart || this.state.selectionStart === 0) {\n\t this.refsInput.selectionStart = this.state.selectionStart;\n\t }\n\n\t if (this.state.selectionEnd || this.state.selectionEnd === 0) {\n\t this.refsInput.selectionEnd = this.state.selectionEnd;\n\t }\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t this._isMounted = false;\n\t this.stop();\n\t }\n\t }, {\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var _this3 = this;\n\n\t this._isMounted = true;\n\t this.refsInput.getValueAsNumber = function () {\n\t return _this3.state.value || 0;\n\t };\n\n\t this.refsInput.setValue = function (value) {\n\t _this3.setState({\n\t value: _this3._parse(value),\n\t stringValue: value\n\t });\n\t };\n\n\t if (!this._inputFocus && IS_BROWSER && document.activeElement === this.refsInput) {\n\t this._inputFocus = true;\n\t this.refsInput.focus();\n\t this._invokeEventCallback(\"onFocus\", {\n\t target: this.refsInput,\n\t type: \"focus\"\n\t });\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'saveSelection',\n\t value: function saveSelection() {\n\t this.state.selectionStart = this.refsInput.selectionStart;\n\t this.state.selectionEnd = this.refsInput.selectionEnd;\n\t }\n\t }, {\n\t key: 'checkValidity',\n\t value: function checkValidity() {\n\t var valid = void 0,\n\t validationError = \"\";\n\n\t var supportsValidation = !!this.refsInput.checkValidity;\n\n\t var noValidate = !!(this.props.noValidate && this.props.noValidate != \"false\");\n\n\t this.refsInput.noValidate = noValidate;\n\n\t valid = noValidate || !supportsValidation;\n\n\t if (valid) {\n\t validationError = \"\";\n\t } else {\n\t if (this.refsInput.pattern === \"\") {\n\t this.refsInput.pattern = this.props.required ? \".+\" : \".*\";\n\t }\n\n\t if (supportsValidation) {\n\t this.refsInput.checkValidity();\n\t valid = this.refsInput.validity.valid;\n\n\t if (!valid) {\n\t validationError = this.refsInput.validationMessage;\n\t }\n\t }\n\n\t if (valid && supportsValidation && this.props.maxLength) {\n\t if (this.refsInput.value.length > this.props.maxLength) {\n\t validationError = \"This value is too long\";\n\t }\n\t }\n\t }\n\n\t validationError = validationError || (valid ? \"\" : this.refsInput.validationMessage || \"Unknown Error\");\n\n\t var validStateChanged = this._valid !== validationError;\n\t this._valid = validationError;\n\t if (validationError) {\n\t addClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onInvalid\", validationError, this.state.value, this.refsInput.value);\n\t }\n\t } else {\n\t removeClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onValid\", this.state.value, this.refsInput.value);\n\t }\n\t }\n\t }\n\t }, {\n\t key: '_toNumber',\n\t value: function _toNumber(x) {\n\t var n = parseFloat(x);\n\t if (isNaN(n) || !isFinite(n)) {\n\t n = 0;\n\t }\n\n\t if (this._isStrict) {\n\t var precision = access(this.props, \"precision\", null, this);\n\t var q = Math.pow(10, precision === null ? 10 : precision);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t n = Math.min(Math.max(n, _min), _max);\n\t n = Math.round(n * q) / q;\n\t }\n\n\t return n;\n\t }\n\t }, {\n\t key: '_parse',\n\t value: function _parse(x) {\n\t x = String(x);\n\t if (typeof this.props.parse == 'function') {\n\t return parseFloat(this.props.parse(x));\n\t }\n\t return parseFloat(x);\n\t }\n\t }, {\n\t key: '_format',\n\t value: function _format(n) {\n\t var _n = this._toNumber(n);\n\t var precision = access(this.props, \"precision\", null, this);\n\t if (precision !== null) {\n\t _n = n.toFixed(precision);\n\t }\n\n\t _n += \"\";\n\n\t if (this.props.format) {\n\t return this.props.format(_n);\n\t }\n\n\t return _n;\n\t }\n\t }, {\n\t key: '_step',\n\t value: function _step(n, callback) {\n\t var _isStrict = this._isStrict;\n\t this._isStrict = true;\n\n\t var _step = +access(this.props, \"step\", NumericInput.defaultProps.step, this, n > 0 ? NumericInput.DIRECTION_UP : NumericInput.DIRECTION_DOWN);\n\n\t var _n = this._toNumber((this.state.value || 0) + _step * n);\n\n\t if (this.props.snap) {\n\t _n = Math.round(_n / _step) * _step;\n\t }\n\n\t this._isStrict = _isStrict;\n\n\t if (_n !== this.state.value) {\n\t this.setState({ value: _n, stringValue: _n + \"\" }, callback);\n\t return true;\n\t }\n\n\t return false;\n\t }\n\t }, {\n\t key: '_onKeyDown',\n\t value: function _onKeyDown() {\n\t for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n\t args[_key3] = arguments[_key3];\n\t }\n\n\t args[0].persist();\n\t this._invokeEventCallback.apply(this, [\"onKeyDown\"].concat(args));\n\t var e = args[0];\n\t if (!e.isDefaultPrevented()) {\n\t if (e.keyCode === KEYCODE_UP) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? 0.1 : e.shiftKey ? 10 : 1);\n\t } else if (e.keyCode === KEYCODE_DOWN) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? -0.1 : e.shiftKey ? -10 : -1);\n\t } else {\n\t var _value = this.refsInput.value,\n\t length = _value.length;\n\t if (e.keyCode === 8) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd > 0 && _value.length && _value.charAt(this.refsInput.selectionEnd - 1) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd - 1;\n\t }\n\t } else if (e.keyCode === 46) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd < length + 1 && _value.length && _value.charAt(this.refsInput.selectionEnd) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd + 1;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'stop',\n\t value: function stop() {\n\t if (this._timer) {\n\t clearTimeout(this._timer);\n\t }\n\t }\n\t }, {\n\t key: 'increase',\n\t value: function increase() {\n\t var _this4 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(1, callback);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t if (isNaN(this.state.value) || +this.state.value < _max) {\n\t this._timer = setTimeout(function () {\n\t _this4.increase(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'decrease',\n\t value: function decrease() {\n\t var _this5 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(-1, callback);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t if (isNaN(this.state.value) || +this.state.value > _min) {\n\t this._timer = setTimeout(function () {\n\t _this5.decrease(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'onMouseDown',\n\t value: function onMouseDown(dir, callback) {\n\t if (dir == 'down') {\n\t this.decrease(false, callback);\n\t } else if (dir == 'up') {\n\t this.increase(false, callback);\n\t }\n\t }\n\t }, {\n\t key: 'onTouchStart',\n\t value: function onTouchStart(dir, e) {\n\t e.preventDefault();\n\t if (dir == 'down') {\n\t this.decrease();\n\t } else if (dir == 'up') {\n\t this.increase();\n\t }\n\t }\n\t }, {\n\t key: 'onTouchEnd',\n\t value: function onTouchEnd(e) {\n\t e.preventDefault();\n\t this.stop();\n\t }\n\t }, {\n\t key: '_invokeEventCallback',\n\t value: function _invokeEventCallback(callbackName) {\n\t if (typeof this.props[callbackName] == \"function\") {\n\t var _props$callbackName;\n\n\t for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n\t args[_key4 - 1] = arguments[_key4];\n\t }\n\n\t (_props$callbackName = this.props[callbackName]).call.apply(_props$callbackName, [null].concat(args));\n\t }\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _this6 = this;\n\n\t var props = this.props;\n\t var state = this.state;\n\t var css = {};\n\n\t var _props = this.props,\n\t step = _props.step,\n\t min = _props.min,\n\t max = _props.max,\n\t precision = _props.precision,\n\t parse = _props.parse,\n\t format = _props.format,\n\t mobile = _props.mobile,\n\t snap = _props.snap,\n\t componentClass = _props.componentClass,\n\t value = _props.value,\n\t type = _props.type,\n\t style = _props.style,\n\t defaultValue = _props.defaultValue,\n\t onInvalid = _props.onInvalid,\n\t onValid = _props.onValid,\n\t strict = _props.strict,\n\t noStyle = _props.noStyle,\n\t rest = _objectWithoutProperties(_props, ['step', 'min', 'max', 'precision', 'parse', 'format', 'mobile', 'snap', 'componentClass', 'value', 'type', 'style', 'defaultValue', 'onInvalid', 'onValid', 'strict', 'noStyle']);\n\n\t noStyle = noStyle || style === false;\n\n\t for (var x in NumericInput.style) {\n\t css[x] = _extends({}, NumericInput.style[x], style ? style[x] || {} : {});\n\t }\n\n\t var hasFormControl = props.className && /\\bform-control\\b/.test(props.className);\n\n\t if (mobile == 'auto') {\n\t mobile = IS_BROWSER && 'ontouchstart' in document;\n\t }\n\n\t if (typeof mobile == \"function\") {\n\t mobile = mobile.call(this);\n\t }\n\t mobile = !!mobile;\n\n\t var attrs = {\n\t wrap: {\n\t style: noStyle ? null : css.wrap,\n\t className: 'react-numeric-input',\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsWrapper = e;\n\t }\n\t },\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined\n\t },\n\t input: _extends({\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsInput = e;\n\t }\n\t },\n\t type: 'text',\n\t style: noStyle ? null : _extends({}, css.input, !hasFormControl ? css['input:not(.form-control)'] : {}, this._inputFocus ? css['input:focus'] : {})\n\t }, rest),\n\t btnUp: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnUp, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnUpActive ? css['btn:active'] : state.btnUpHover ? css['btn:hover'] : {})\n\t },\n\t btnDown: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnDown, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnDownActive ? css['btn:active'] : state.btnDownHover ? css['btn:hover'] : {})\n\t }\n\t };\n\n\t var stringValue = String(state.stringValue || (state.value || state.value === 0 ? state.value : \"\") || \"\");\n\n\t var loose = !this._isStrict && (this._inputFocus || !this._isMounted);\n\n\t if (loose && RE_INCOMPLETE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (loose && stringValue && !RE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (state.value || state.value === 0) {\n\t attrs.input.value = this._format(state.value);\n\t } else {\n\t attrs.input.value = \"\";\n\t }\n\n\t if (hasFormControl && !noStyle) {\n\t _extends(attrs.wrap.style, css['wrap.hasFormControl']);\n\t }\n\n\t if (mobile && !noStyle) {\n\t _extends(attrs.input.style, css['input.mobile']);\n\t _extends(attrs.btnUp.style, css['btnUp.mobile']);\n\t _extends(attrs.btnDown.style, css['btnDown.mobile']);\n\t }\n\n\t if (!props.disabled && !props.readOnly) {\n\t _extends(attrs.wrap, {\n\t onMouseUp: this.stop,\n\t onMouseLeave: this.stop\n\t });\n\n\t _extends(attrs.btnUp, {\n\t onTouchStart: this.onTouchStart.bind(this, 'up'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnUpHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnUpHover: false,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n\t args[_key5] = arguments[_key5];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('up');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.btnDown, {\n\t onTouchStart: this.onTouchStart.bind(this, 'down'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnDownHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnDownHover: false,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n\t args[_key6] = arguments[_key6];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('down');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.input, {\n\t onChange: function onChange(e) {\n\t var original = e.target.value;\n\t var val = _this6._parse(original);\n\t if (isNaN(val)) {\n\t val = null;\n\t }\n\t _this6.setState({\n\t value: _this6._isStrict ? _this6._toNumber(val) : val,\n\t stringValue: original\n\t });\n\t },\n\t onKeyDown: this._onKeyDown.bind(this),\n\t onInput: function onInput() {\n\t for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n\t args[_key7] = arguments[_key7];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onInput\"].concat(args));\n\t },\n\t onSelect: function onSelect() {\n\t for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n\t args[_key8] = arguments[_key8];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onSelect\"].concat(args));\n\t },\n\t onFocus: function onFocus() {\n\t for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n\t args[_key9] = arguments[_key9];\n\t }\n\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val,\n\t stringValue: val || val === 0 ? val + \"\" : \"\"\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t });\n\t },\n\t onBlur: function onBlur() {\n\t for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n\t args[_key10] = arguments[_key10];\n\t }\n\n\t var _isStrict = _this6._isStrict;\n\t _this6._isStrict = true;\n\t args[0].persist();\n\t _this6._inputFocus = false;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onBlur\"].concat(args));\n\t _this6._isStrict = _isStrict;\n\t });\n\t }\n\t });\n\t } else {\n\t if (!noStyle && props.disabled) {\n\t _extends(attrs.input.style, css['input:disabled']);\n\t }\n\t }\n\n\t var InputTag = componentClass || 'input';\n\n\t if (mobile) {\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus }),\n\t _react2.default.createElement('i', { style: noStyle ? null : css.plus })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus })\n\t )\n\t );\n\t }\n\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowUp })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowDown })\n\t )\n\t );\n\t }\n\t }]);\n\n\t return NumericInput;\n\t}(_react.Component);\n\n\tNumericInput.propTypes = {\n\t step: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t min: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t max: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t precision: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t maxLength: _propTypes2.default.number,\n\t parse: _propTypes2.default.func,\n\t format: _propTypes2.default.func,\n\t className: _propTypes2.default.string,\n\t disabled: _propTypes2.default.bool,\n\t readOnly: _propTypes2.default.bool,\n\t required: _propTypes2.default.bool,\n\t snap: _propTypes2.default.bool,\n\t noValidate: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n\t style: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),\n\t noStyle: _propTypes2.default.bool,\n\t type: _propTypes2.default.string,\n\t pattern: _propTypes2.default.string,\n\t onFocus: _propTypes2.default.func,\n\t onBlur: _propTypes2.default.func,\n\t onKeyDown: _propTypes2.default.func,\n\t onChange: _propTypes2.default.func,\n\t onInvalid: _propTypes2.default.func,\n\t onValid: _propTypes2.default.func,\n\t onInput: _propTypes2.default.func,\n\t onSelect: _propTypes2.default.func,\n\t size: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t strict: _propTypes2.default.bool,\n\t componentClass: _propTypes2.default.string,\n\t mobile: function mobile(props, propName) {\n\t var prop = props[propName];\n\t if (prop !== true && prop !== false && prop !== 'auto' && typeof prop != 'function') {\n\t return new Error('The \"mobile\" prop must be true, false, \"auto\" or a function');\n\t }\n\t }\n\t};\n\tNumericInput.defaultProps = {\n\t step: 1,\n\t min: Number.MIN_SAFE_INTEGER || -9007199254740991,\n\t max: Number.MAX_SAFE_INTEGER || 9007199254740991,\n\t precision: null,\n\t parse: null,\n\t format: null,\n\t mobile: 'auto',\n\t strict: false,\n\t componentClass: \"input\",\n\t style: {}\n\t};\n\tNumericInput.style = {\n\t wrap: {\n\t position: 'relative',\n\t display: 'inline-block'\n\t },\n\n\t 'wrap.hasFormControl': {\n\t display: 'block'\n\t },\n\n\t arrowUp: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0 0.6ex 0.6ex 0.6ex',\n\t borderColor: 'transparent transparent rgba(0, 0, 0, 0.7)',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t arrowDown: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0.6ex 0.6ex 0 0.6ex',\n\t borderColor: 'rgba(0, 0, 0, 0.7) transparent transparent',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t plus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 2,\n\t height: 10,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-5px 0 0 -1px'\n\t },\n\n\t minus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 10,\n\t height: 2,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-1px 0 0 -5px'\n\t },\n\n\t btn: {\n\t position: 'absolute',\n\t right: 2,\n\t width: '2.26ex',\n\t borderColor: 'rgba(0,0,0,.1)',\n\t borderStyle: 'solid',\n\t textAlign: 'center',\n\t cursor: 'default',\n\t transition: 'all 0.1s',\n\t background: 'rgba(0,0,0,.1)',\n\t boxShadow: '-1px -1px 3px rgba(0,0,0,.1) inset,' + '1px 1px 3px rgba(255,255,255,.7) inset'\n\t },\n\n\t btnUp: {\n\t top: 2,\n\t bottom: '50%',\n\t borderRadius: '2px 2px 0 0',\n\t borderWidth: '1px 1px 0 1px'\n\t },\n\n\t 'btnUp.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t btnDown: {\n\t top: '50%',\n\t bottom: 2,\n\t borderRadius: '0 0 2px 2px',\n\t borderWidth: '0 1px 1px 1px'\n\t },\n\n\t 'btnDown.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t left: 2,\n\t top: 2,\n\t right: 'auto',\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t 'btn:hover': {\n\t background: 'rgba(0,0,0,.2)'\n\t },\n\n\t 'btn:active': {\n\t background: 'rgba(0,0,0,.3)',\n\t boxShadow: '0 1px 3px rgba(0,0,0,.2) inset,' + '-1px -1px 4px rgba(255,255,255,.5) inset'\n\t },\n\n\t 'btn:disabled': {\n\t opacity: 0.5,\n\t boxShadow: 'none',\n\t cursor: 'not-allowed'\n\t },\n\n\t input: {\n\t paddingRight: '3ex',\n\t boxSizing: 'border-box',\n\t fontSize: 'inherit'\n\t },\n\n\t 'input:not(.form-control)': {\n\t border: '1px solid #ccc',\n\t borderRadius: 2,\n\t paddingLeft: 4,\n\t display: 'block',\n\t WebkitAppearance: 'none',\n\t lineHeight: 'normal'\n\t },\n\n\t 'input.mobile': {\n\t paddingLeft: ' 3.4ex',\n\t paddingRight: '3.4ex',\n\t textAlign: 'center'\n\t },\n\n\t 'input:focus': {},\n\n\t 'input:disabled': {\n\t color: 'rgba(0, 0, 0, 0.3)',\n\t textShadow: '0 1px 0 rgba(255, 255, 255, 0.8)'\n\t }\n\t};\n\tNumericInput.SPEED = 50;\n\tNumericInput.DELAY = 500;\n\tNumericInput.DIRECTION_UP = \"up\";\n\tNumericInput.DIRECTION_DOWN = \"down\";\n\n\n\tmodule.exports = NumericInput;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"react\");\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"prop-types\");\n\n/***/ })\n/******/ ]);","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","/**\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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (typeof obj === 'undefined') {\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from './_curry1';\nimport _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _isArrayLike from './_isArrayLike';\nimport _xwrap from './_xwrap';\nimport bind from '../bind';\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from './_has';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n};\n\nexport default _isArguments;","import _curry1 from './internal/_curry1';\nimport _has from './internal/_has';\nimport _isArguments from './internal/_isArguments';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar _keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n} : function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n};\nvar keys = /*#__PURE__*/_curry1(_keys);\nexport default keys;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","import _objectAssign from './_objectAssign';\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _curry1 from './internal/_curry1';\nimport _of from './internal/_of';\n\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\nvar of = /*#__PURE__*/_curry1(_of);\nexport default of;","import _curry2 from './internal/_curry2';\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\nvar omit = /*#__PURE__*/_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nexport default omit;","import _cloneRegExp from './internal/_cloneRegExp';\nimport _curry2 from './internal/_curry2';\nimport _isRegExp from './internal/_isRegExp';\nimport toString from './toString';\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\nvar test = /*#__PURE__*/_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n return _cloneRegExp(pattern).test(str);\n});\nexport default test;","import _curry1 from './internal/_curry1';\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\nvar _trim = !hasProtoTrim || /*#__PURE__*/ws.trim() || ! /*#__PURE__*/zeroWidth.trim() ? function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n} : function trim(str) {\n return str.trim();\n};\nvar trim = /*#__PURE__*/_curry1(_trim);\nexport default trim;","export { default as F } from './F';\nexport { default as T } from './T';\nexport { default as __ } from './__';\nexport { default as add } from './add';\nexport { default as addIndex } from './addIndex';\nexport { default as adjust } from './adjust';\nexport { default as all } from './all';\nexport { default as allPass } from './allPass';\nexport { default as always } from './always';\nexport { default as and } from './and';\nexport { default as any } from './any';\nexport { default as anyPass } from './anyPass';\nexport { default as ap } from './ap';\nexport { default as aperture } from './aperture';\nexport { default as append } from './append';\nexport { default as apply } from './apply';\nexport { default as applySpec } from './applySpec';\nexport { default as applyTo } from './applyTo';\nexport { default as ascend } from './ascend';\nexport { default as assoc } from './assoc';\nexport { default as assocPath } from './assocPath';\nexport { default as binary } from './binary';\nexport { default as bind } from './bind';\nexport { default as both } from './both';\nexport { default as call } from './call';\nexport { default as chain } from './chain';\nexport { default as clamp } from './clamp';\nexport { default as clone } from './clone';\nexport { default as comparator } from './comparator';\nexport { default as complement } from './complement';\nexport { default as compose } from './compose';\nexport { default as composeK } from './composeK';\nexport { default as composeP } from './composeP';\nexport { default as concat } from './concat';\nexport { default as cond } from './cond';\nexport { default as construct } from './construct';\nexport { default as constructN } from './constructN';\nexport { default as contains } from './contains';\nexport { default as converge } from './converge';\nexport { default as countBy } from './countBy';\nexport { default as curry } from './curry';\nexport { default as curryN } from './curryN';\nexport { default as dec } from './dec';\nexport { default as defaultTo } from './defaultTo';\nexport { default as descend } from './descend';\nexport { default as difference } from './difference';\nexport { default as differenceWith } from './differenceWith';\nexport { default as dissoc } from './dissoc';\nexport { default as dissocPath } from './dissocPath';\nexport { default as divide } from './divide';\nexport { default as drop } from './drop';\nexport { default as dropLast } from './dropLast';\nexport { default as dropLastWhile } from './dropLastWhile';\nexport { default as dropRepeats } from './dropRepeats';\nexport { default as dropRepeatsWith } from './dropRepeatsWith';\nexport { default as dropWhile } from './dropWhile';\nexport { default as either } from './either';\nexport { default as empty } from './empty';\nexport { default as endsWith } from './endsWith';\nexport { default as eqBy } from './eqBy';\nexport { default as eqProps } from './eqProps';\nexport { default as equals } from './equals';\nexport { default as evolve } from './evolve';\nexport { default as filter } from './filter';\nexport { default as find } from './find';\nexport { default as findIndex } from './findIndex';\nexport { default as findLast } from './findLast';\nexport { default as findLastIndex } from './findLastIndex';\nexport { default as flatten } from './flatten';\nexport { default as flip } from './flip';\nexport { default as forEach } from './forEach';\nexport { default as forEachObjIndexed } from './forEachObjIndexed';\nexport { default as fromPairs } from './fromPairs';\nexport { default as groupBy } from './groupBy';\nexport { default as groupWith } from './groupWith';\nexport { default as gt } from './gt';\nexport { default as gte } from './gte';\nexport { default as has } from './has';\nexport { default as hasIn } from './hasIn';\nexport { default as head } from './head';\nexport { default as identical } from './identical';\nexport { default as identity } from './identity';\nexport { default as ifElse } from './ifElse';\nexport { default as inc } from './inc';\nexport { default as indexBy } from './indexBy';\nexport { default as indexOf } from './indexOf';\nexport { default as init } from './init';\nexport { default as innerJoin } from './innerJoin';\nexport { default as insert } from './insert';\nexport { default as insertAll } from './insertAll';\nexport { default as intersection } from './intersection';\nexport { default as intersperse } from './intersperse';\nexport { default as into } from './into';\nexport { default as invert } from './invert';\nexport { default as invertObj } from './invertObj';\nexport { default as invoker } from './invoker';\nexport { default as is } from './is';\nexport { default as isEmpty } from './isEmpty';\nexport { default as isNil } from './isNil';\nexport { default as join } from './join';\nexport { default as juxt } from './juxt';\nexport { default as keys } from './keys';\nexport { default as keysIn } from './keysIn';\nexport { default as last } from './last';\nexport { default as lastIndexOf } from './lastIndexOf';\nexport { default as length } from './length';\nexport { default as lens } from './lens';\nexport { default as lensIndex } from './lensIndex';\nexport { default as lensPath } from './lensPath';\nexport { default as lensProp } from './lensProp';\nexport { default as lift } from './lift';\nexport { default as liftN } from './liftN';\nexport { default as lt } from './lt';\nexport { default as lte } from './lte';\nexport { default as map } from './map';\nexport { default as mapAccum } from './mapAccum';\nexport { default as mapAccumRight } from './mapAccumRight';\nexport { default as mapObjIndexed } from './mapObjIndexed';\nexport { default as match } from './match';\nexport { default as mathMod } from './mathMod';\nexport { default as max } from './max';\nexport { default as maxBy } from './maxBy';\nexport { default as mean } from './mean';\nexport { default as median } from './median';\nexport { default as memoize } from './memoize';\nexport { default as memoizeWith } from './memoizeWith';\nexport { default as merge } from './merge';\nexport { default as mergeAll } from './mergeAll';\nexport { default as mergeDeepLeft } from './mergeDeepLeft';\nexport { default as mergeDeepRight } from './mergeDeepRight';\nexport { default as mergeDeepWith } from './mergeDeepWith';\nexport { default as mergeDeepWithKey } from './mergeDeepWithKey';\nexport { default as mergeWith } from './mergeWith';\nexport { default as mergeWithKey } from './mergeWithKey';\nexport { default as min } from './min';\nexport { default as minBy } from './minBy';\nexport { default as modulo } from './modulo';\nexport { default as multiply } from './multiply';\nexport { default as nAry } from './nAry';\nexport { default as negate } from './negate';\nexport { default as none } from './none';\nexport { default as not } from './not';\nexport { default as nth } from './nth';\nexport { default as nthArg } from './nthArg';\nexport { default as o } from './o';\nexport { default as objOf } from './objOf';\nexport { default as of } from './of';\nexport { default as omit } from './omit';\nexport { default as once } from './once';\nexport { default as or } from './or';\nexport { default as over } from './over';\nexport { default as pair } from './pair';\nexport { default as partial } from './partial';\nexport { default as partialRight } from './partialRight';\nexport { default as partition } from './partition';\nexport { default as path } from './path';\nexport { default as pathEq } from './pathEq';\nexport { default as pathOr } from './pathOr';\nexport { default as pathSatisfies } from './pathSatisfies';\nexport { default as pick } from './pick';\nexport { default as pickAll } from './pickAll';\nexport { default as pickBy } from './pickBy';\nexport { default as pipe } from './pipe';\nexport { default as pipeK } from './pipeK';\nexport { default as pipeP } from './pipeP';\nexport { default as pluck } from './pluck';\nexport { default as prepend } from './prepend';\nexport { default as product } from './product';\nexport { default as project } from './project';\nexport { default as prop } from './prop';\nexport { default as propEq } from './propEq';\nexport { default as propIs } from './propIs';\nexport { default as propOr } from './propOr';\nexport { default as propSatisfies } from './propSatisfies';\nexport { default as props } from './props';\nexport { default as range } from './range';\nexport { default as reduce } from './reduce';\nexport { default as reduceBy } from './reduceBy';\nexport { default as reduceRight } from './reduceRight';\nexport { default as reduceWhile } from './reduceWhile';\nexport { default as reduced } from './reduced';\nexport { default as reject } from './reject';\nexport { default as remove } from './remove';\nexport { default as repeat } from './repeat';\nexport { default as replace } from './replace';\nexport { default as reverse } from './reverse';\nexport { default as scan } from './scan';\nexport { default as sequence } from './sequence';\nexport { default as set } from './set';\nexport { default as slice } from './slice';\nexport { default as sort } from './sort';\nexport { default as sortBy } from './sortBy';\nexport { default as sortWith } from './sortWith';\nexport { default as split } from './split';\nexport { default as splitAt } from './splitAt';\nexport { default as splitEvery } from './splitEvery';\nexport { default as splitWhen } from './splitWhen';\nexport { default as startsWith } from './startsWith';\nexport { default as subtract } from './subtract';\nexport { default as sum } from './sum';\nexport { default as symmetricDifference } from './symmetricDifference';\nexport { default as symmetricDifferenceWith } from './symmetricDifferenceWith';\nexport { default as tail } from './tail';\nexport { default as take } from './take';\nexport { default as takeLast } from './takeLast';\nexport { default as takeLastWhile } from './takeLastWhile';\nexport { default as takeWhile } from './takeWhile';\nexport { default as tap } from './tap';\nexport { default as test } from './test';\nexport { default as times } from './times';\nexport { default as toLower } from './toLower';\nexport { default as toPairs } from './toPairs';\nexport { default as toPairsIn } from './toPairsIn';\nexport { default as toString } from './toString';\nexport { default as toUpper } from './toUpper';\nexport { default as transduce } from './transduce';\nexport { default as transpose } from './transpose';\nexport { default as traverse } from './traverse';\nexport { default as trim } from './trim';\nexport { default as tryCatch } from './tryCatch';\nexport { default as type } from './type';\nexport { default as unapply } from './unapply';\nexport { default as unary } from './unary';\nexport { default as uncurryN } from './uncurryN';\nexport { default as unfold } from './unfold';\nexport { default as union } from './union';\nexport { default as unionWith } from './unionWith';\nexport { default as uniq } from './uniq';\nexport { default as uniqBy } from './uniqBy';\nexport { default as uniqWith } from './uniqWith';\nexport { default as unless } from './unless';\nexport { default as unnest } from './unnest';\nexport { default as until } from './until';\nexport { default as update } from './update';\nexport { default as useWith } from './useWith';\nexport { default as values } from './values';\nexport { default as valuesIn } from './valuesIn';\nexport { default as view } from './view';\nexport { default as when } from './when';\nexport { default as where } from './where';\nexport { default as whereEq } from './whereEq';\nexport { default as without } from './without';\nexport { default as xprod } from './xprod';\nexport { default as zip } from './zip';\nexport { default as zipObj } from './zipObj';\nexport { default as zipWith } from './zipWith';","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","module.exports = {};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","module.exports = true;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","exports.f = {}.propertyIsEnumerable;\n","import styled, { css } from 'styled-components';\n\nexport default styled.label`\n display: block;\n font-size: 14px;\n ${({ position }) =>\n position === 'top'\n ? css`\n margin-bottom: 8px;\n `\n : css`\n margin-top: 8px;\n `}\n ${props =>\n css`\n ${props.css}\n `}\n`;\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _getPrototypeOf = require(\"../core-js/object/get-prototype-of\");\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _getOwnPropertyDescriptor = require(\"../core-js/object/get-own-property-descriptor\");\n\nvar _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = (0, _getOwnPropertyDescriptor2.default)(object, property);\n\n if (desc === undefined) {\n var parent = (0, _getPrototypeOf2.default)(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};","/**\n * CSS conic-gradient() polyfill\n * By Lea Verou — http://lea.verou.me\n * MIT license\n */\n\n(function(){\n\nvar π = Math.PI;\nvar τ = 2 * π;\nvar ε = .00001;\nvar deg = π/180;\n\nvar dummy = document.createElement(\"div\");\ndocument.head.appendChild(dummy);\n\nvar _ = self.ConicGradient = function(o) {\n\tvar me = this;\n\t_.all.push(this);\n\n\to = o || {};\n\n\tthis.canvas = document.createElement(\"canvas\");\n\tthis.context = this.canvas.getContext(\"2d\");\n\n\tthis.repeating = !!o.repeating;\n\n\tthis.size = o.size || Math.max(innerWidth, innerHeight);\n\n\tthis.canvas.width = this.canvas.height = this.size;\n\n\tvar stops = o.stops;\n\n\tthis.stops = (stops || \"\").split(/\\s*,(?![^(]*\\))\\s*/); // commas that are not followed by a ) without a ( first\n\n\tthis.from = 0;\n\n\tfor (var i=0; i 0) {\n\t\tvar first = this.stops[0].clone();\n\t\tfirst.pos = 0;\n\t\tthis.stops.unshift(first);\n\t}\n\n\t// Add dummy last stop or set first stop’s position to 100% if it doesn’t have one\n\tif (this.stops[this.stops.length - 1].pos === undefined) {\n\t\tthis.stops[this.stops.length - 1].pos = 1;\n\t}\n\telse if (!this.repeating && this.stops[this.stops.length - 1].pos < 1) {\n\t\tvar last = this.stops[this.stops.length - 1].clone();\n\t\tlast.pos = 1;\n\t\tthis.stops.push(last);\n\t}\n\n\tthis.stops.forEach(function(stop, i){\n\t\tif (stop.pos === undefined) {\n\t\t\t// Evenly space color stops with no position\n\t\t\tfor (var j=i+1; this[j]; j++) {\n\t\t\t\tif (this[j].pos !== undefined) {\n\t\t\t\t\tstop.pos = this[i-1].pos + (this[j].pos - this[i-1].pos)/(j-i+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (i > 0) {\n\t\t\t// Normalize color stops whose position is smaller than the position of the stop before them\n\t\t\tstop.pos = Math.max(stop.pos, this[i-1].pos);\n\t\t}\n\t}, this.stops);\n\n\tif (this.repeating) {\n\t\t// Repeat color stops until >= 1\n\t\tvar stops = this.stops.slice();\n\t\tvar lastStop = stops[stops.length-1];\n\t\tvar difference = lastStop.pos - stops[0].pos;\n\n\t\tfor (var i=0; this.stops[this.stops.length-1].pos < 1 && i<10000; i++) {\n\t\t\tfor (var j=0; j' +\n\t\t\t'' +\n\t\t\t'';\n\t},\n\n\tget png() {\n\t\treturn this.canvas.toDataURL();\n\t},\n\n\tget r() {\n\t\treturn Math.sqrt(2) * this.size / 2;\n\t},\n\n\t// Paint the conical gradient on the canvas\n\t// Algorithm inspired from http://jsdo.it/akm2/yr9B\n\tpaint: function() {\n\t\tvar c = this.context;\n\n\t\tvar radius = this.r;\n\t\tvar x = this.size / 2;\n\n\t\tvar stopIndex = 0; // The index of the current color\n\t\tvar stop = this.stops[stopIndex], prevStop;\n\n\t\tvar diff, t;\n\n\t\t// Transform coordinate system so that angles start from the top left, like in CSS\n\t\tc.translate(this.size/2, this.size/2);\n\t\tc.rotate(-90*deg);\n\t\tc.rotate(this.from*deg);\n\t\tc.translate(-this.size/2, -this.size/2);\n\n\t\tfor (var i = 0; i < 360;) {\n\t\t\tif (i/360 + ε >= stop.pos) {\n\t\t\t\t// Switch color stop\n\t\t\t\tdo {\n\t\t\t\t\tprevStop = stop;\n\n\t\t\t\t\tstopIndex++;\n\t\t\t\t\tstop = this.stops[stopIndex];\n\t\t\t\t} while(stop && stop != prevStop && stop.pos === prevStop.pos);\n\n\t\t\t\tif (!stop) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tvar sameColor = prevStop.color + \"\" === stop.color + \"\" && prevStop != stop;\n\n\t\t\t\tdiff = prevStop.color.map(function(c, i){\n\t\t\t\t\treturn stop.color[i] - c;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tt = (i/360 - prevStop.pos) / (stop.pos - prevStop.pos);\n\n\t\t\tvar interpolated = sameColor? stop.color : diff.map(function(d,i){\n\t\t\t\tvar ret = d * t + prevStop.color[i];\n\n\t\t\t\treturn i < 3? ret & 255 : ret;\n\t\t\t});\n\n\t\t\t// Draw a series of arcs, 1deg each\n\t\t\tc.fillStyle = 'rgba(' + interpolated.join(\",\") + ')';\n\t\t\tc.beginPath();\n\t\t\tc.moveTo(x, x);\n\n\t\t\tif (sameColor) {\n\t\t\t\tvar θ = 360 * (stop.pos - prevStop.pos);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar θ = .5;\n\t\t\t}\n\n\t\t\tvar beginArg = i*deg;\n\t\t\tbeginArg = Math.min(360*deg, beginArg);\n\n\t\t\t// .02: To prevent empty blank line and corresponding moire\n\t\t\t// only non-alpha colors are cared now\n\t\t\tvar endArg = beginArg + θ*deg;\n\t\t\tendArg = Math.min(360*deg, endArg + .02);\n\n\t\t\tc.arc(x, x, radius, beginArg, endArg);\n\n\t\t\tc.closePath();\n\t\t\tc.fill();\n\n\t\t\ti += θ;\n\t\t}\n\t}\n};\n\n_.ColorStop = function(gradient, stop) {\n\tthis.gradient = gradient;\n\n\tif (stop) {\n\t\tvar parts = stop.match(/^(.+?)(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?\\s*$/);\n\n\t\tthis.color = _.ColorStop.colorToRGBA(parts[1]);\n\n\t\tif (parts[2]) {\n\t\t\tvar unit = parts[3];\n\n\t\t\tif (unit == \"%\" || parts[2] === \"0\" && !unit) {\n\t\t\t\tthis.pos = parts[2]/100;\n\t\t\t}\n\t\t\telse if (unit == \"turn\") {\n\t\t\t\tthis.pos = +parts[2];\n\t\t\t}\n\t\t\telse if (unit == \"deg\") {\n\t\t\t\tthis.pos = parts[2] / 360;\n\t\t\t}\n\t\t\telse if (unit == \"grad\") {\n\t\t\t\tthis.pos = parts[2] / 400;\n\t\t\t}\n\t\t\telse if (unit == \"rad\") {\n\t\t\t\tthis.pos = parts[2] / τ;\n\t\t\t}\n\t\t}\n\n\t\tif (parts[4]) {\n\t\t\tthis.next = new _.ColorStop(gradient, parts[1] + \" \" + parts[4] + parts[5]);\n\t\t}\n\t}\n}\n\n_.ColorStop.prototype = {\n\tclone: function() {\n\t\tvar ret = new _.ColorStop(this.gradient);\n\t\tret.color = this.color;\n\t\tret.pos = this.pos;\n\n\t\treturn ret;\n\t},\n\n\ttoString: function() {\n\t\treturn \"rgba(\" + this.color.join(\", \") + \") \" + this.pos * 100 + \"%\";\n\t}\n};\n\n_.ColorStop.colorToRGBA = function(color) {\n\tif (!Array.isArray(color) && color.indexOf(\"from\") == -1) {\n\t\tdummy.style.color = color;\n\n\t\tvar rgba = getComputedStyle(dummy).color.match(/rgba?\\(([\\d.]+), ([\\d.]+), ([\\d.]+)(?:, ([\\d.]+))?\\)/);\n\n\t\tif (rgba) {\n\t\t\trgba.shift();\n\t\t\trgba = rgba.map(function(a) { return +a });\n\t\t\trgba[3] = isNaN(rgba[3])? 1 : rgba[3];\n\t\t}\n\n\t\treturn rgba || [0,0,0,0];\n\t}\n\n\treturn color;\n};\n\n})();\n\nif (self.StyleFix) {\n\t// Test if conic gradients are supported first:\n\t(function(){\n\t\tvar dummy = document.createElement(\"p\");\n\t\tdummy.style.backgroundImage = \"conic-gradient(white, black)\";\n\t\tdummy.style.backgroundImage = PrefixFree.prefix + \"conic-gradient(white, black)\";\n\n\t\tif (!dummy.style.backgroundImage) {\n\t\t\t// Not supported, use polyfill\n\t\t\tStyleFix.register(function(css, raw) {\n\t\t\t\tif (css.indexOf(\"conic-gradient\") > -1) {\n\t\t\t\t\tcss = css.replace(/(?:repeating-)?conic-gradient\\(\\s*((?:\\([^()]+\\)|[^;()}])+?)\\)/g, function(gradient, stops) {\n\t\t\t\t\t\treturn new ConicGradient({\n\t\t\t\t\t\t\tstops: stops,\n\t\t\t\t\t\t\trepeating: gradient.indexOf(\"repeating-\") > -1\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn css;\n\t\t\t});\n\t\t}\n\t})();\n}\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","!function(e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(null):\"function\"==typeof define&&define.amd?define(e(null)):window.stylis=e(null)}(function e(a){\"use strict\";var r=/^\\0+/g,c=/[\\0\\r\\f]/g,s=/: */g,t=/zoo|gra/,i=/([,: ])(transform)/g,f=/,+\\s*(?![^(]*[)])/g,n=/ +\\s*(?![^(]*[)])/g,l=/ *[\\0] */g,o=/,\\r+?/g,h=/([\\t\\r\\n ])*\\f?&/g,u=/:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g,d=/\\W+/g,b=/@(k\\w+)\\s*(\\S*)\\s*/,p=/::(place)/g,k=/:(read-only)/g,g=/\\s+(?=[{\\];=:>])/g,A=/([[}=:>])\\s+/g,C=/(\\{[^{]+?);(?=\\})/g,w=/\\s{2,}/g,v=/([^\\(])(:+) */g,m=/[svh]\\w+-[tblr]{2}/,x=/\\(\\s*(.*)\\s*\\)/g,$=/([\\s\\S]*?);/g,y=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\\w-]+)[^]*/,j=/stretch|:\\s*\\w+\\-(?:conte|avail)/,z=/([^-])(image-set\\()/,N=\"-webkit-\",S=\"-moz-\",F=\"-ms-\",W=59,q=125,B=123,D=40,E=41,G=91,H=93,I=10,J=13,K=9,L=64,M=32,P=38,Q=45,R=95,T=42,U=44,V=58,X=39,Y=34,Z=47,_=62,ee=43,ae=126,re=0,ce=12,se=11,te=107,ie=109,fe=115,ne=112,le=111,oe=105,he=99,ue=100,de=112,be=1,pe=1,ke=0,ge=1,Ae=1,Ce=1,we=0,ve=0,me=0,xe=[],$e=[],ye=0,Oe=null,je=-2,ze=-1,Ne=0,Se=1,Fe=2,We=3,qe=0,Be=1,De=\"\",Ee=\"\",Ge=\"\";function He(e,a,s,t,i){for(var f,n,o=0,h=0,u=0,d=0,g=0,A=0,C=0,w=0,m=0,$=0,y=0,O=0,j=0,z=0,R=0,we=0,$e=0,Oe=0,je=0,ze=s.length,Je=ze-1,Re=\"\",Te=\"\",Ue=\"\",Ve=\"\",Xe=\"\",Ye=\"\";R0)Te=Te.replace(c,\"\");if(Te.trim().length>0){switch(C){case M:case K:case W:case J:case I:break;default:Te+=s.charAt(R)}C=W}}if(1===$e)switch(C){case B:case q:case W:case Y:case X:case D:case E:case U:$e=0;case K:case J:case I:case M:break;default:for($e=0,je=R,g=C,R--,C=W;je0)++R,C=g;case B:je=ze}}switch(C){case B:for(g=(Te=Te.trim()).charCodeAt(0),y=1,je=++R;R0)Te=Te.replace(c,\"\");switch(A=Te.charCodeAt(1)){case ue:case ie:case fe:case Q:f=a;break;default:f=xe}if(je=(Ue=He(a,f,Ue,A,i+1)).length,me>0&&0===je)je=Te.length;if(ye>0)if(f=Ie(xe,Te,Oe),n=Pe(We,Ue,f,a,pe,be,je,A,i,t),Te=f.join(\"\"),void 0!==n)if(0===(je=(Ue=n.trim()).length))A=0,Ue=\"\";if(je>0)switch(A){case fe:Te=Te.replace(x,Me);case ue:case ie:case Q:Ue=Te+\"{\"+Ue+\"}\";break;case te:if(Ue=(Te=Te.replace(b,\"$1 $2\"+(Be>0?De:\"\")))+\"{\"+Ue+\"}\",1===Ae||2===Ae&&Le(\"@\"+Ue,3))Ue=\"@\"+N+Ue+\"@\"+Ue;else Ue=\"@\"+Ue;break;default:if(Ue=Te+Ue,t===de)Ve+=Ue,Ue=\"\"}else Ue=\"\";break;default:Ue=He(a,Ie(a,Te,Oe),Ue,t,i+1)}Xe+=Ue,O=0,$e=0,z=0,we=0,Oe=0,j=0,Te=\"\",Ue=\"\",C=s.charCodeAt(++R);break;case q:case W:if((je=(Te=(we>0?Te.replace(c,\"\"):Te).trim()).length)>1){if(0===z)if((g=Te.charCodeAt(0))===Q||g>96&&g<123)je=(Te=Te.replace(\" \",\":\")).length;if(ye>0)if(void 0!==(n=Pe(Se,Te,a,e,pe,be,Ve.length,t,i,t)))if(0===(je=(Te=n.trim()).length))Te=\"\\0\\0\";switch(g=Te.charCodeAt(0),A=Te.charCodeAt(1),g){case re:break;case L:if(A===oe||A===he){Ye+=Te+s.charAt(R);break}default:if(Te.charCodeAt(je-1)===V)break;Ve+=Ke(Te,g,A,Te.charCodeAt(2))}}O=0,$e=0,z=0,we=0,Oe=0,Te=\"\",C=s.charCodeAt(++R)}}switch(C){case J:case I:if(h+d+u+o+ve===0)switch($){case E:case X:case Y:case L:case ae:case _:case T:case ee:case Z:case Q:case V:case U:case W:case B:case q:break;default:if(z>0)$e=1}if(h===Z)h=0;else if(ge+O===0&&t!==te&&Te.length>0)we=1,Te+=\"\\0\";if(ye*qe>0)Pe(Ne,Te,a,e,pe,be,Ve.length,t,i,t);be=1,pe++;break;case W:case q:if(h+d+u+o===0){be++;break}default:switch(be++,Re=s.charAt(R),C){case K:case M:if(d+o+h===0)switch(w){case U:case V:case K:case M:Re=\"\";break;default:if(C!==M)Re=\" \"}break;case re:Re=\"\\\\0\";break;case ce:Re=\"\\\\f\";break;case se:Re=\"\\\\v\";break;case P:if(d+h+o===0&&ge>0)Oe=1,we=1,Re=\"\\f\"+Re;break;case 108:if(d+h+o+ke===0&&z>0)switch(R-z){case 2:if(w===ne&&s.charCodeAt(R-3)===V)ke=w;case 8:if(m===le)ke=m}break;case V:if(d+h+o===0)z=R;break;case U:if(h+u+d+o===0)we=1,Re+=\"\\r\";break;case Y:case X:if(0===h)d=d===C?0:0===d?C:d;break;case G:if(d+h+u===0)o++;break;case H:if(d+h+u===0)o--;break;case E:if(d+h+o===0)u--;break;case D:if(d+h+o===0){if(0===O)switch(2*w+3*m){case 533:break;default:y=0,O=1}u++}break;case L:if(h+u+d+o+z+j===0)j=1;break;case T:case Z:if(d+o+u>0)break;switch(h){case 0:switch(2*C+3*s.charCodeAt(R+1)){case 235:h=Z;break;case 220:je=R,h=T}break;case T:if(C===Z&&w===T&&je+2!==R){if(33===s.charCodeAt(je+2))Ve+=s.substring(je,R+1);Re=\"\",h=0}}}if(0===h){if(ge+d+o+j===0&&t!==te&&C!==W)switch(C){case U:case ae:case _:case ee:case E:case D:if(0===O){switch(w){case K:case M:case I:case J:Re+=\"\\0\";break;default:Re=\"\\0\"+Re+(C===U?\"\":\"\\0\")}we=1}else switch(C){case D:if(z+7===R&&108===w)z=0;O=++y;break;case E:if(0==(O=--y))we=1,Re+=\"\\0\"}break;case K:case M:switch(w){case re:case B:case q:case W:case U:case ce:case K:case M:case I:case J:break;default:if(0===O)we=1,Re+=\"\\0\"}}if(Te+=Re,C!==M&&C!==K)$=C}}m=w,w=C,R++}if(je=Ve.length,me>0)if(0===je&&0===Xe.length&&0===a[0].length==false)if(t!==ie||1===a.length&&(ge>0?Ee:Ge)===a[0])je=a.join(\",\").length+2;if(je>0){if(f=0===ge&&t!==te?function(e){for(var a,r,s=0,t=e.length,i=Array(t);s1)continue;if(u=n.charCodeAt(n.length-1),d=r.charCodeAt(0),a=\"\",0!==o)switch(u){case T:case ae:case _:case ee:case M:case D:break;default:a=\" \"}switch(d){case P:r=a+Ee;case ae:case _:case ee:case M:case E:case D:break;case G:r=a+r+Ee;break;case V:switch(2*r.charCodeAt(1)+3*r.charCodeAt(2)){case 530:if(Ce>0){r=a+r.substring(8,h-1);break}default:if(o<1||f[o-1].length<1)r=a+Ee+r}break;case U:a=\"\";default:if(h>1&&r.indexOf(\":\")>0)r=a+r.replace(v,\"$1\"+Ee+\"$2\");else r=a+r+Ee}n+=r}i[s]=n.replace(c,\"\").trim()}return i}(a):a,ye>0)if(void 0!==(n=Pe(Fe,Ve,f,e,pe,be,je,t,i,t))&&0===(Ve=n).length)return Ye+Ve+Xe;if(Ve=f.join(\",\")+\"{\"+Ve+\"}\",Ae*ke!=0){if(2===Ae&&!Le(Ve,2))ke=0;switch(ke){case le:Ve=Ve.replace(k,\":\"+S+\"$1\")+Ve;break;case ne:Ve=Ve.replace(p,\"::\"+N+\"input-$1\")+Ve.replace(p,\"::\"+S+\"$1\")+Ve.replace(p,\":\"+F+\"input-$1\")+Ve}ke=0}}return Ye+Ve+Xe}function Ie(e,a,r){var c=a.trim().split(o),s=c,t=c.length,i=e.length;switch(i){case 0:case 1:for(var f=0,n=0===i?\"\":e[0]+\" \";f0&&ge>0)return s.replace(u,\"$1\").replace(h,\"$1\"+Ge);break;default:return e.trim()+s.replace(h,\"$1\"+e.trim())}default:if(r*ge>0&&s.indexOf(\"\\f\")>0)return s.replace(h,(e.charCodeAt(0)===V?\"\":\"$1\")+e.trim())}return e+s}function Ke(e,a,r,c){var l,o=0,h=e+\";\",u=2*a+3*r+4*c;if(944===u)return function(e){var a=e.length,r=e.indexOf(\":\",9)+1,c=e.substring(0,r).trim(),s=e.substring(r,a-1).trim();switch(e.charCodeAt(9)*Be){case 0:break;case Q:if(110!==e.charCodeAt(10))break;default:for(var t=s.split((s=\"\",f)),i=0,r=0,a=t.length;iL&&h<90||h>96&&h<123||h===R||h===Q&&l.charCodeAt(1)!==Q))switch(isNaN(parseFloat(l))+(-1!==l.indexOf(\"(\"))){case 1:switch(l){case\"infinite\":case\"alternate\":case\"backwards\":case\"running\":case\"normal\":case\"forwards\":case\"both\":case\"none\":case\"linear\":case\"ease\":case\"ease-in\":case\"ease-out\":case\"ease-in-out\":case\"paused\":case\"reverse\":case\"alternate-reverse\":case\"inherit\":case\"initial\":case\"unset\":case\"step-start\":case\"step-end\":break;default:l+=De}}o[r++]=l}s+=(0===i?\"\":\",\")+o.join(\" \")}}if(s=c+s+\";\",1===Ae||2===Ae&&Le(s,1))return N+s+s;return s}(h);else if(0===Ae||2===Ae&&!Le(h,1))return h;switch(u){case 1015:return 97===h.charCodeAt(10)?N+h+h:h;case 951:return 116===h.charCodeAt(3)?N+h+h:h;case 963:return 110===h.charCodeAt(5)?N+h+h:h;case 1009:if(100!==h.charCodeAt(4))break;case 969:case 942:return N+h+h;case 978:return N+h+S+h+h;case 1019:case 983:return N+h+S+h+F+h+h;case 883:if(h.charCodeAt(8)===Q)return N+h+h;if(h.indexOf(\"image-set(\",11)>0)return h.replace(z,\"$1\"+N+\"$2\")+h;return h;case 932:if(h.charCodeAt(4)===Q)switch(h.charCodeAt(5)){case 103:return N+\"box-\"+h.replace(\"-grow\",\"\")+N+h+F+h.replace(\"grow\",\"positive\")+h;case 115:return N+h+F+h.replace(\"shrink\",\"negative\")+h;case 98:return N+h+F+h.replace(\"basis\",\"preferred-size\")+h}return N+h+F+h+h;case 964:return N+h+F+\"flex-\"+h+h;case 1023:if(99!==h.charCodeAt(8))break;return l=h.substring(h.indexOf(\":\",15)).replace(\"flex-\",\"\").replace(\"space-between\",\"justify\"),N+\"box-pack\"+l+N+h+F+\"flex-pack\"+l+h;case 1005:return t.test(h)?h.replace(s,\":\"+N)+h.replace(s,\":\"+S)+h:h;case 1e3:switch(o=(l=h.substring(13).trim()).indexOf(\"-\")+1,l.charCodeAt(0)+l.charCodeAt(o)){case 226:l=h.replace(m,\"tb\");break;case 232:l=h.replace(m,\"tb-rl\");break;case 220:l=h.replace(m,\"lr\");break;default:return h}return N+h+F+l+h;case 1017:if(-1===h.indexOf(\"sticky\",9))return h;case 975:switch(o=(h=e).length-10,u=(l=(33===h.charCodeAt(o)?h.substring(0,o):h).substring(e.indexOf(\":\",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(l.charCodeAt(8)<111)break;case 115:h=h.replace(l,N+l)+\";\"+h;break;case 207:case 102:h=h.replace(l,N+(u>102?\"inline-\":\"\")+\"box\")+\";\"+h.replace(l,N+l)+\";\"+h.replace(l,F+l+\"box\")+\";\"+h}return h+\";\";case 938:if(h.charCodeAt(5)===Q)switch(h.charCodeAt(6)){case 105:return l=h.replace(\"-items\",\"\"),N+h+N+\"box-\"+l+F+\"flex-\"+l+h;case 115:return N+h+F+\"flex-item-\"+h.replace(y,\"\")+h;default:return N+h+F+\"flex-line-pack\"+h.replace(\"align-content\",\"\").replace(y,\"\")+h}break;case 973:case 989:if(h.charCodeAt(3)!==Q||122===h.charCodeAt(4))break;case 931:case 953:if(true===j.test(e))if(115===(l=e.substring(e.indexOf(\":\")+1)).charCodeAt(0))return Ke(e.replace(\"stretch\",\"fill-available\"),a,r,c).replace(\":fill-available\",\":stretch\");else return h.replace(l,N+l)+h.replace(l,S+l.replace(\"fill-\",\"\"))+h;break;case 962:if(h=N+h+(102===h.charCodeAt(5)?F+h:\"\")+h,r+c===211&&105===h.charCodeAt(13)&&h.indexOf(\"transform\",10)>0)return h.substring(0,h.indexOf(\";\",27)+1).replace(i,\"$1\"+N+\"$2\")+h}return h}function Le(e,a){var r=e.indexOf(1===a?\":\":\"{\"),c=e.substring(0,3!==a?r:10),s=e.substring(r+1,e.length-1);return Oe(2!==a?c:c.replace(O,\"$1\"),s,a)}function Me(e,a){var r=Ke(a,a.charCodeAt(0),a.charCodeAt(1),a.charCodeAt(2));return r!==a+\";\"?r.replace($,\" or ($1)\").substring(4):\"(\"+a+\")\"}function Pe(e,a,r,c,s,t,i,f,n,l){for(var o,h=0,u=a;h0)De=s.replace(d,t===G?\"\":\"-\");if(t=1,1===ge)Ge=s;else Ee=s;var i,f=[Ge];if(ye>0)if(void 0!==(i=Pe(ze,r,f,f,pe,be,0,0,0,0))&&\"string\"==typeof i)r=i;var n=He(xe,f,r,0,0);if(ye>0)if(void 0!==(i=Pe(je,n,f,f,pe,be,n.length,0,0,0))&&\"string\"!=typeof(n=i))t=0;return De=\"\",Ge=\"\",Ee=\"\",ke=0,pe=1,be=1,we*t==0?n:n.replace(c,\"\").replace(g,\"\").replace(A,\"$1\").replace(C,\"$1\").replace(w,\" \")}if(Te.use=function e(a){switch(a){case void 0:case null:ye=$e.length=0;break;default:if(\"function\"==typeof a)$e[ye++]=a;else if(\"object\"==typeof a)for(var r=0,c=a.length;r\n import(/* webpackChunkName: \"colorpicker\" */ '../fragments/ColorPicker.react')\n);\n/**\n * A color picker.\n */\nexport default class ColorPicker extends Component {\n render() {\n return (\n \n \n \n );\n }\n}\n\nColorPicker.defaultProps = {\n size: 225,\n theme: light,\n labelPosition: 'top',\n persisted_props: ['value'],\n persistence_type: 'local'\n};\n\nColorPicker.propTypes = {\n /**\n * The ID used to identify the color picker in Dash callbacks\n */\n id: PropTypes.string,\n\n /**\n * Color value of the picker\n */\n value: PropTypes.shape({\n /**\n * Hex string\n */\n hex: PropTypes.string,\n\n /**\n * RGB/RGBA object\n */\n rbg: PropTypes.shape({\n r: PropTypes.number,\n g: PropTypes.number,\n b: PropTypes.number,\n a: PropTypes.number\n })\n }),\n\n /**\n * If true, color cannot be picked.\n */\n disabled: PropTypes.bool,\n\n /**\n * Size (width) of the component in pixels\n */\n size: PropTypes.number,\n\n /**\n * Theme configuration to be set by a ThemeProvider\n */\n theme: PropTypes.object,\n\n /**\n * Description to be displayed alongside the control. To control styling,\n * pass an object with label and style properties\n */\n label: PropTypes.oneOfType([\n /**\n * Label to be displayed\n */\n PropTypes.string,\n\n /**\n * The style and label\n */\n PropTypes.shape({\n style: PropTypes.object,\n label: PropTypes.string\n })\n ]),\n\n /**\n * Where the indicator label is positioned\n */\n labelPosition: PropTypes.oneOf(['top', 'bottom']),\n\n /**\n * Class to apply to the root component element\n */\n className: PropTypes.string,\n\n /**\n * Dash-assigned callback that gets fired when\n * the color picker's value changes\n */\n setProps: PropTypes.func,\n\n /**\n * Style to apply to the root component element\n */\n style: PropTypes.object,\n\n /**\n * Used to allow user interactions in this component to be persisted when\n * the component - or the page - is refreshed. If `persisted` is truthy and\n * hasn't changed from its previous value, a `value` that the user has\n * changed while using the app will keep that change, as long as\n * the new `value` also matches what was given originally.\n * Used in conjunction with `persistence_type`.\n */\n persistence: PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.number]),\n\n /**\n * Properties whose user interactions will persist after refreshing the\n * component or the page. Since only `value` is allowed this prop can\n * normally be ignored.\n */\n persisted_props: PropTypes.arrayOf(PropTypes.oneOf(['value'])),\n\n /**\n * Where persisted user changes will be stored:\n * memory: only kept in memory, reset on page refresh.\n * local: window.localStorage, data is kept after the browser quit.\n * session: window.sessionStorage, data is cleared once the browser quit.\n */\n persistence_type: PropTypes.oneOf(['local', 'session', 'memory'])\n};\n\nexport const defaultProps = ColorPicker.defaultProps;\nexport const propTypes = ColorPicker.propTypes;\n","// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","// 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","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = require('./_hide');\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","(function (factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory()) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory()) :\n\t\t\t(window['stylisRuleSheet'] = factory())\n}(function () {\n\n\t'use strict'\n\n\treturn function (insertRule) {\n\t\tvar delimiter = '/*|*/'\n\t\tvar needle = delimiter+'}'\n\n\t\tfunction toSheet (block) {\n\t\t\tif (block)\n\t\t\t\ttry {\n\t\t\t\t\tinsertRule(block + '}')\n\t\t\t\t} catch (e) {}\n\t\t}\n\n\t\treturn function ruleSheet (context, content, selectors, parents, line, column, length, ns, depth, at) {\n\t\t\tswitch (context) {\n\t\t\t\t// property\n\t\t\t\tcase 1:\n\t\t\t\t\t// @import\n\t\t\t\t\tif (depth === 0 && content.charCodeAt(0) === 64)\n\t\t\t\t\t\treturn insertRule(content+';'), ''\n\t\t\t\t\tbreak\n\t\t\t\t// selector\n\t\t\t\tcase 2:\n\t\t\t\t\tif (ns === 0)\n\t\t\t\t\t\treturn content + delimiter\n\t\t\t\t\tbreak\n\t\t\t\t// at-rule\n\t\t\t\tcase 3:\n\t\t\t\t\tswitch (ns) {\n\t\t\t\t\t\t// @font-face, @page\n\t\t\t\t\t\tcase 102:\n\t\t\t\t\t\tcase 112:\n\t\t\t\t\t\t\treturn insertRule(selectors[0]+content), ''\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn content + (at === 0 ? delimiter : '')\n\t\t\t\t\t}\n\t\t\t\tcase -2:\n\t\t\t\t\tcontent.split(needle).forEach(toSheet)\n\t\t\t}\n\t\t}\n\t}\n}))\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","/*!\n * TinyGradient 0.4.3\n * Copyright 2014-2018 Damien \"Mistic\" Sorel (http://www.strangeplanet.fr)\n * Licensed under MIT (http://opensource.org/licenses/MIT)\n */\n\n(function (root, factory) {\n if (typeof module !== \"undefined\" && module.exports) {\n module.exports = factory(require('tinycolor2'));\n }\n else if (typeof define === 'function' && define.amd) {\n define(['tinycolor2'], factory);\n }\n else {\n root.tinygradient = factory(root.tinycolor);\n }\n}(this, function (tinycolor) {\n \"use strict\";\n\n var RGBA_MAX = {r: 256, g: 256, b: 256, a: 1};\n var HSVA_MAX = {h: 360, s: 1, v: 1, a: 1};\n\n /**\n * Linearly compute the step size between start and end (not normalized)\n * @param {Object} start - rgba or hsva\n * @param {Object} end - rgba or hsva\n * @param {int} steps - number of desired steps\n * @return {Object} rgba or hsva\n */\n function stepize(start, end, steps) {\n var step = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n step[k] = steps === 0 ? 0 : (end[k] - start[k]) / steps;\n }\n }\n\n return step;\n }\n\n /**\n * Compute the final step color\n * @param {Object} step - rgba or hsva from `stepize`\n * @param {Object} start - rgba or hsva\n * @param {int} i - color index\n * @param {Object} max - rgba or hsva of maximum values for each channel\n * @return {Object} rgba or hsva\n */\n function interpolate(step, start, i, max) {\n var color = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n color[k] = step[k] * i + start[k];\n color[k] = color[k] < 0 ? color[k] + max[k] : ( max[k] !== 1 ? color[k] % max[k] : color[k] );\n }\n }\n\n return color;\n }\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateRgb(stop1, stop2, steps) {\n var start = stop1.color.toRgb(),\n end = stop2.color.toRgb(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n color;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, RGBA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @param {Boolean} trigonometric - true to step in trigonometric order\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateHsv(stop1, stop2, steps, trigonometric) {\n var start = stop1.color.toHsv(),\n end = stop2.color.toHsv(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n diff, color;\n\n // recompute hue\n if ((start.h <= end.h && !trigonometric) || (start.h >= end.h && trigonometric)) {\n diff = end.h - start.h;\n }\n else if (trigonometric) {\n diff = 360 - end.h + start.h;\n }\n else {\n diff = 360 - start.h + end.h;\n }\n step.h = Math.pow(-1, trigonometric ? 1 : 0) * Math.abs(diff) / steps;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, HSVA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Compute substeps between each stops\n * @param {Object[]} stops\n * @param {int} steps\n * @return {int[]}\n */\n function computeSubsteps(stops, steps) {\n var l = stops.length;\n\n // validation\n steps = parseInt(steps);\n\n if (isNaN(steps) || steps < 2) {\n throw new Error('Invalid number of steps (< 2)');\n }\n if (steps < l) {\n throw new Error('Number of steps cannot be inferior to number of stops');\n }\n\n // compute substeps from stop positions\n var substeps = [];\n\n for (var i = 1; i < l; i++) {\n var step = (steps - 1) * (stops[i].pos - stops[i - 1].pos);\n substeps.push(Math.max(1, Math.round(step)));\n }\n\n // adjust number of steps\n var totalSubsteps = 1;\n for (var n = l - 1; n--;) totalSubsteps += substeps[n];\n\n while (totalSubsteps !== steps) {\n if (totalSubsteps < steps) {\n var min = Math.min.apply(null, substeps);\n substeps[substeps.indexOf(min)]++;\n totalSubsteps++;\n }\n else {\n var max = Math.max.apply(null, substeps);\n substeps[substeps.indexOf(max)]--;\n totalSubsteps--;\n }\n }\n\n return substeps;\n }\n\n /**\n * Compute the color at a specific position\n * @param {Object[]} stops\n * @param {float} pos\n * @param {string} method\n * @param {Object} max\n * @returns {tinycolor}\n */\n function computeAt(stops, pos, method, max) {\n if (pos < 0 || pos > 1) {\n throw new Error('Position must be between 0 and 1');\n }\n\n var start, end;\n for (var i = 0, l = stops.length; i < l - 1; i++) {\n if (pos >= stops[i].pos && pos < stops[i + 1].pos) {\n start = stops[i];\n end = stops[i + 1];\n break;\n }\n }\n\n if (!start) {\n start = end = stops[stops.length - 1];\n }\n\n var step = stepize(start.color[method](), end.color[method](), (end.pos - start.pos) * 100);\n var color = interpolate(step, start.color[method](), Math.round((pos - start.pos) * 100), max);\n return tinycolor(color);\n }\n\n /**\n * @class tinygradient\n * @param {*} stops\n */\n var TinyGradient = function (stops) {\n // varargs\n if (arguments.length === 1) {\n if (!(arguments[0] instanceof Array)) {\n throw new Error('\"stops\" is not an array');\n }\n stops = arguments[0];\n }\n else {\n stops = Array.prototype.slice.call(arguments);\n }\n\n // if we are called as a function, call using new instead\n if (!(this instanceof TinyGradient)) {\n return new TinyGradient(stops);\n }\n\n // validation\n if (stops.length < 2) {\n throw new Error('Invalid number of stops (< 2)');\n }\n\n var havingPositions = stops[0].pos !== undefined,\n l = stops.length,\n p = -1;\n // create tinycolor objects and clean positions\n this.stops = stops.map(function (stop, i) {\n var hasPosition = stop.pos !== undefined;\n if (havingPositions ^ hasPosition) {\n throw new Error('Cannot mix positionned and not posionned color stops');\n }\n\n if (hasPosition) {\n stop = {\n color: tinycolor(stop.color),\n pos : stop.pos\n };\n\n if (stop.pos < 0 || stop.pos > 1) {\n throw new Error('Color stops positions must be between 0 and 1');\n }\n else if (stop.pos <= p) {\n throw new Error('Color stops positions are not ordered');\n }\n p = stop.pos;\n }\n else {\n stop = {\n color: tinycolor(stop),\n pos : i / (l - 1)\n };\n }\n\n return stop;\n });\n\n if (this.stops[0].pos !== 0) {\n this.stops.unshift({\n color: this.stops[0].color,\n pos : 0\n });\n }\n if (this.stops[this.stops.length - 1].pos !== 1) {\n this.stops.push({\n color: this.stops[this.stops.length - 1].color,\n pos : 1\n });\n }\n };\n\n /**\n * Return new instance with reversed stops\n * @return {tinygradient}\n */\n TinyGradient.prototype.reverse = function () {\n var stops = [];\n\n this.stops.forEach(function (stop) {\n stops.push({\n color: stop.color,\n pos : 1 - stop.pos\n });\n });\n\n return new TinyGradient(stops.reverse());\n };\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {int} steps\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.rgb = function (steps) {\n var substeps = computeSubsteps(this.stops, steps),\n gradient = [];\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {int} steps\n * @param {Boolean|String} [mode=false]\n * - false to step in clockwise\n * - true to step in trigonometric order\n * - 'short' to use the shortest way\n * - 'long' to use the longest way\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.hsv = function (steps, mode) {\n var substeps = computeSubsteps(this.stops, steps),\n trigonometric = mode === true,\n parametrized = typeof mode === 'string',\n gradient = [],\n start, end, trig;\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n start = this.stops[i].color.toHsv();\n end = this.stops[i + 1].color.toHsv();\n\n if (parametrized) {\n trig = (start.h < end.h && end.h - start.h < 180) || (start.h > end.h && start.h - end.h > 180);\n }\n\n // rgb interpolation if one of the steps in grayscale\n if (start.s === 0 || end.s === 0) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n else {\n gradient = gradient.concat(interpolateHsv(this.stops[i], this.stops[i + 1], substeps[i],\n (mode === 'long' && trig) || (mode === 'short' && !trig) || (!parametrized && trigonometric)\n ));\n }\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate CSS3 command (no prefix) for this gradient\n * @param {String} [mode=linear] - 'linear' or 'radial'\n * @param {String} [direction] - default is 'to right' or 'ellipse at center'\n * @return {String}\n */\n TinyGradient.prototype.css = function (mode, direction) {\n mode = mode || 'linear';\n direction = direction || (mode === 'linear' ? 'to right' : 'ellipse at center');\n\n var css = mode + '-gradient(' + direction;\n this.stops.forEach(function (stop) {\n css += ', ' + stop.color.toRgbString() + ' ' + (stop.pos * 100) + '%';\n });\n css += ')';\n return css;\n };\n\n /**\n * Returns the color at specific position with RGBa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.rgbAt = function (pos) {\n return computeAt(this.stops, pos, 'toRgb', RGBA_MAX);\n };\n\n /**\n * Returns the color at specific position with HSVa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.hsvAt = function (pos) {\n return computeAt(this.stops, pos, 'toHsv', HSVA_MAX);\n };\n\n var STATIC_FNS = {\n 'rgb' : 1,\n 'hsv' : 2,\n 'css' : 2,\n 'rgbAt': 1,\n 'hsvAt': 1\n };\n\n Object.keys(STATIC_FNS).forEach(function (fn) {\n TinyGradient[fn] = function () {\n var colors = Array.prototype.slice.call(arguments);\n var args = colors.splice(-STATIC_FNS[fn]);\n var gradient = new TinyGradient(colors);\n return gradient[fn].apply(gradient, args);\n };\n });\n\n // export\n return TinyGradient;\n}));","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = addEventListener;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventObject = require('./EventObject');\n\nvar _EventObject2 = _interopRequireDefault(_EventObject);\n\nfunction addEventListener(target, eventType, callback, option) {\n function wrapCallback(e) {\n var ne = new _EventObject2['default'](e);\n callback.call(target, ne);\n }\n\n if (target.addEventListener) {\n var _ret = (function () {\n var useCapture = false;\n if (typeof option === 'object') {\n useCapture = option.capture || false;\n } else if (typeof option === 'boolean') {\n useCapture = option;\n }\n\n target.addEventListener(eventType, wrapCallback, option || false);\n\n return {\n v: {\n remove: function remove() {\n target.removeEventListener(eventType, wrapCallback, useCapture);\n }\n }\n };\n })();\n\n if (typeof _ret === 'object') return _ret.v;\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, wrapCallback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, wrapCallback);\n }\n };\n }\n}\n\nmodule.exports = exports['default'];","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\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 }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.nipplejs = f()}})(function(){var define,module,exports;\n'use strict';\n\n// Constants\nvar isTouch = !!('ontouchstart' in window);\nvar isPointer = window.PointerEvent ? true : false;\nvar isMSPointer = window.MSPointerEvent ? true : false;\nvar events = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend, touchcancel'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n },\n pointer: {\n start: 'pointerdown',\n move: 'pointermove',\n end: 'pointerup, pointercancel'\n },\n MSPointer: {\n start: 'MSPointerDown',\n move: 'MSPointerMove',\n end: 'MSPointerUp'\n }\n};\nvar toBind;\nvar secondBind = {};\nif (isPointer) {\n toBind = events.pointer;\n} else if (isMSPointer) {\n toBind = events.MSPointer;\n} else if (isTouch) {\n toBind = events.touch;\n secondBind = events.mouse;\n} else {\n toBind = events.mouse;\n}\n\n///////////////////////\n/// UTILS ///\n///////////////////////\n\nvar u = {};\nu.distance = function (p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return Math.sqrt((dx * dx) + (dy * dy));\n};\n\nu.angle = function(p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return u.degrees(Math.atan2(dy, dx));\n};\n\nu.findCoord = function(p, d, a) {\n var b = {x: 0, y: 0};\n a = u.radians(a);\n b.x = p.x - d * Math.cos(a);\n b.y = p.y - d * Math.sin(a);\n return b;\n};\n\nu.radians = function(a) {\n return a * (Math.PI / 180);\n};\n\nu.degrees = function(a) {\n return a * (180 / Math.PI);\n};\n\nu.bindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.addEventListener) {\n el.addEventListener(type, handler, false);\n } else if (el.attachEvent) {\n el.attachEvent(type, handler);\n }\n }\n};\n\nu.unbindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.removeEventListener) {\n el.removeEventListener(type, handler);\n } else if (el.detachEvent) {\n el.detachEvent(type, handler);\n }\n }\n};\n\nu.trigger = function (el, type, data) {\n var evt = new CustomEvent(type, data);\n el.dispatchEvent(evt);\n};\n\nu.prepareEvent = function (evt) {\n evt.preventDefault();\n return evt.type.match(/^touch/) ? evt.changedTouches : evt;\n};\n\nu.getScroll = function () {\n var x = (window.pageXOffset !== undefined) ?\n window.pageXOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollLeft;\n\n var y = (window.pageYOffset !== undefined) ?\n window.pageYOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollTop;\n return {\n x: x,\n y: y\n };\n};\n\nu.applyPosition = function (el, pos) {\n if (pos.top || pos.right || pos.bottom || pos.left) {\n el.style.top = pos.top;\n el.style.right = pos.right;\n el.style.bottom = pos.bottom;\n el.style.left = pos.left;\n } else {\n el.style.left = pos.x + 'px';\n el.style.top = pos.y + 'px';\n }\n};\n\nu.getTransitionStyle = function (property, values, time) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (typeof values === 'string') {\n obj[i] = values + ' ' + time;\n } else {\n var st = '';\n for (var j = 0, max = values.length; j < max; j += 1) {\n st += values[j] + ' ' + time + ', ';\n }\n obj[i] = st.slice(0, -2);\n }\n }\n }\n return obj;\n};\n\nu.getVendorStyle = function (property, value) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n obj[i] = value;\n }\n }\n return obj;\n};\n\nu.configStylePropertyObject = function (prop) {\n var obj = {};\n obj[prop] = '';\n var vendors = ['webkit', 'Moz', 'o'];\n vendors.forEach(function (vendor) {\n obj[vendor + prop.charAt(0).toUpperCase() + prop.slice(1)] = '';\n });\n return obj;\n};\n\nu.extend = function (objA, objB) {\n for (var i in objB) {\n if (objB.hasOwnProperty(i)) {\n objA[i] = objB[i];\n }\n }\n return objA;\n};\n\n// Overwrite only what's already present\nu.safeExtend = function (objA, objB) {\n var obj = {};\n for (var i in objA) {\n if (objA.hasOwnProperty(i) && objB.hasOwnProperty(i)) {\n obj[i] = objB[i];\n } else if (objA.hasOwnProperty(i)) {\n obj[i] = objA[i];\n }\n }\n return obj;\n};\n\n// Map for array or unique item.\nu.map = function (ar, fn) {\n if (ar.length) {\n for (var i = 0, max = ar.length; i < max; i += 1) {\n fn(ar[i]);\n }\n } else {\n fn(ar);\n }\n};\n\n///////////////////////\n/// SUPER CLASS ///\n///////////////////////\n\nfunction Super () {};\n\n// Basic event system.\nSuper.prototype.on = function (arg, cb) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n self._handlers_[type] = self._handlers_[type] || [];\n self._handlers_[type].push(cb);\n }\n return self;\n};\n\nSuper.prototype.off = function (type, cb) {\n var self = this;\n self._handlers_ = self._handlers_ || {};\n\n if (type === undefined) {\n self._handlers_ = {};\n } else if (cb === undefined) {\n self._handlers_[type] = null;\n } else if (self._handlers_[type] &&\n self._handlers_[type].indexOf(cb) >= 0) {\n self._handlers_[type].splice(self._handlers_[type].indexOf(cb), 1);\n }\n\n return self;\n};\n\nSuper.prototype.trigger = function (arg, data) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (self._handlers_[type] && self._handlers_[type].length) {\n self._handlers_[type].forEach(function (handler) {\n handler.call(self, {\n type: type,\n target: self\n }, data);\n });\n }\n }\n};\n\n// Configuration\nSuper.prototype.config = function (options) {\n var self = this;\n self.options = self.defaults || {};\n if (options) {\n self.options = u.safeExtend(self.options, options);\n }\n};\n\n// Bind internal events.\nSuper.prototype.bindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n self._domHandlers_[type] = function () {\n if (typeof self['on' + type] === 'function') {\n self['on' + type].apply(self, arguments);\n } else {\n console.warn('[WARNING] : Missing \"on' + type + '\" handler.');\n }\n };\n\n u.bindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.bindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n return self;\n};\n\n// Unbind dom events.\nSuper.prototype.unbindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n u.unbindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.unbindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n delete self._domHandlers_[type];\n\n return this;\n};\n\n///////////////////////\n/// THE NIPPLE ///\n///////////////////////\n\nfunction Nipple (collection, options) {\n this.identifier = options.identifier;\n this.position = options.position;\n this.frontPosition = options.frontPosition;\n this.collection = collection;\n\n // Defaults\n this.defaults = {\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n mode: 'dynamic',\n zone: document.body,\n lockX: false,\n lockY: false\n };\n\n this.config(options);\n\n // Overwrites\n if (this.options.mode === 'dynamic') {\n this.options.restOpacity = 0;\n }\n\n this.id = Nipple.id;\n Nipple.id += 1;\n this.buildEl()\n .stylize();\n\n // Nipple's API.\n this.instance = {\n el: this.ui.el,\n on: this.on.bind(this),\n off: this.off.bind(this),\n show: this.show.bind(this),\n hide: this.hide.bind(this),\n add: this.addToDom.bind(this),\n remove: this.removeFromDom.bind(this),\n destroy: this.destroy.bind(this),\n resetDirection: this.resetDirection.bind(this),\n computeDirection: this.computeDirection.bind(this),\n trigger: this.trigger.bind(this),\n position: this.position,\n frontPosition: this.frontPosition,\n ui: this.ui,\n identifier: this.identifier,\n id: this.id,\n options: this.options\n };\n\n return this.instance;\n};\n\nNipple.prototype = new Super();\nNipple.constructor = Nipple;\nNipple.id = 0;\n\n// Build the dom element of the Nipple instance.\nNipple.prototype.buildEl = function (options) {\n this.ui = {};\n\n if (this.options.dataOnly) {\n return this;\n }\n\n this.ui.el = document.createElement('div');\n this.ui.back = document.createElement('div');\n this.ui.front = document.createElement('div');\n\n this.ui.el.className = 'nipple collection_' + this.collection.id;\n this.ui.back.className = 'back';\n this.ui.front.className = 'front';\n\n this.ui.el.setAttribute('id', 'nipple_' + this.collection.id +\n '_' + this.id);\n\n this.ui.el.appendChild(this.ui.back);\n this.ui.el.appendChild(this.ui.front);\n\n return this;\n};\n\n// Apply CSS to the Nipple instance.\nNipple.prototype.stylize = function () {\n if (this.options.dataOnly) {\n return this;\n }\n var animTime = this.options.fadeTime + 'ms';\n var borderStyle = u.getVendorStyle('borderRadius', '50%');\n var transitStyle = u.getTransitionStyle('transition', 'opacity', animTime);\n var styles = {};\n styles.el = {\n position: 'absolute',\n opacity: this.options.restOpacity,\n display: 'block',\n 'zIndex': 999\n };\n\n styles.back = {\n position: 'absolute',\n display: 'block',\n width: this.options.size + 'px',\n height: this.options.size + 'px',\n marginLeft: -this.options.size / 2 + 'px',\n marginTop: -this.options.size / 2 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n styles.front = {\n width: this.options.size / 2 + 'px',\n height: this.options.size / 2 + 'px',\n position: 'absolute',\n display: 'block',\n marginLeft: -this.options.size / 4 + 'px',\n marginTop: -this.options.size / 4 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n u.extend(styles.el, transitStyle);\n u.extend(styles.back, borderStyle);\n u.extend(styles.front, borderStyle);\n\n this.applyStyles(styles);\n\n return this;\n};\n\nNipple.prototype.applyStyles = function (styles) {\n // Apply styles\n for (var i in this.ui) {\n if (this.ui.hasOwnProperty(i)) {\n for (var j in styles[i]) {\n this.ui[i].style[j] = styles[i][j];\n }\n }\n }\n\n return this;\n};\n\n// Inject the Nipple instance into DOM.\nNipple.prototype.addToDom = function () {\n // We're not adding it if we're dataOnly or already in dom.\n if (this.options.dataOnly || document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.appendChild(this.ui.el);\n return this;\n};\n\n// Remove the Nipple instance from DOM.\nNipple.prototype.removeFromDom = function () {\n if (this.options.dataOnly || !document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.removeChild(this.ui.el);\n return this;\n};\n\n// Entirely destroy this nipple\nNipple.prototype.destroy = function () {\n clearTimeout(this.removeTimeout);\n clearTimeout(this.showTimeout);\n clearTimeout(this.restTimeout);\n this.trigger('destroyed', this.instance);\n this.removeFromDom();\n this.off();\n};\n\n// Fade in the Nipple instance.\nNipple.prototype.show = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.addToDom();\n\n self.restCallback();\n\n setTimeout(function () {\n self.ui.el.style.opacity = 1;\n }, 0);\n\n self.showTimeout = setTimeout(function () {\n self.trigger('shown', self.instance);\n if (typeof cb === 'function') {\n cb.call(this);\n }\n }, self.options.fadeTime);\n\n return self;\n};\n\n// Fade out the Nipple instance.\nNipple.prototype.hide = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n self.ui.el.style.opacity = self.options.restOpacity;\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.removeTimeout = setTimeout(\n function () {\n var display = self.options.mode === 'dynamic' ? 'none' : 'block';\n self.ui.el.style.display = display;\n if (typeof cb === 'function') {\n cb.call(self);\n }\n\n self.trigger('hidden', self.instance);\n },\n self.options.fadeTime\n );\n if (self.options.restJoystick) {\n self.restPosition();\n }\n\n return self;\n};\n\nNipple.prototype.restPosition = function (cb) {\n var self = this;\n self.frontPosition = {\n x: 0,\n y: 0\n };\n var animTime = self.options.fadeTime + 'ms';\n\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition',\n ['top', 'left'], animTime);\n\n var styles = {front: {}};\n styles.front = {\n left: self.frontPosition.x + 'px',\n top: self.frontPosition.y + 'px'\n };\n\n self.applyStyles(transitStyle);\n self.applyStyles(styles);\n\n self.restTimeout = setTimeout(\n function () {\n if (typeof cb === 'function') {\n cb.call(self);\n }\n self.restCallback();\n },\n self.options.fadeTime\n );\n};\n\nNipple.prototype.restCallback = function () {\n var self = this;\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition', 'none', '');\n self.applyStyles(transitStyle);\n self.trigger('rested', self.instance);\n};\n\nNipple.prototype.resetDirection = function () {\n // Fully rebuild the object to let the iteration possible.\n this.direction = {\n x: false,\n y: false,\n angle: false\n };\n};\n\nNipple.prototype.computeDirection = function (obj) {\n var rAngle = obj.angle.radian;\n var angle45 = Math.PI / 4;\n var angle90 = Math.PI / 2;\n var direction, directionX, directionY;\n\n // Angular direction\n // \\ UP /\n // \\ /\n // LEFT RIGHT\n // / \\\n // /DOWN \\\n //\n if (\n rAngle > angle45 &&\n rAngle < (angle45 * 3) &&\n !obj.lockX\n ) {\n direction = 'up';\n } else if (\n rAngle > -angle45 &&\n rAngle <= angle45 &&\n !obj.lockY\n ) {\n direction = 'left';\n } else if (\n rAngle > (-angle45 * 3) &&\n rAngle <= -angle45 &&\n !obj.lockX\n ) {\n direction = 'down';\n } else if (!obj.lockY) {\n direction = 'right';\n }\n\n // Plain direction\n // UP |\n // _______ | RIGHT\n // LEFT |\n // DOWN |\n if (!obj.lockY) {\n if (rAngle > -angle90 && rAngle < angle90) {\n directionX = 'left';\n } else {\n directionX = 'right';\n }\n }\n\n if (!obj.lockX) {\n if (rAngle > 0) {\n directionY = 'up';\n } else {\n directionY = 'down';\n }\n }\n\n if (obj.force > this.options.threshold) {\n var oldDirection = {};\n for (var i in this.direction) {\n if (this.direction.hasOwnProperty(i)) {\n oldDirection[i] = this.direction[i];\n }\n }\n\n var same = {};\n\n this.direction = {\n x: directionX,\n y: directionY,\n angle: direction\n };\n\n obj.direction = this.direction;\n\n for (var i in oldDirection) {\n if (oldDirection[i] === this.direction[i]) {\n same[i] = true;\n }\n }\n\n // If all 3 directions are the same, we don't trigger anything.\n if (same.x && same.y && same.angle) {\n return obj;\n }\n\n if (!same.x || !same.y) {\n this.trigger('plain', obj);\n }\n\n if (!same.x) {\n this.trigger('plain:' + directionX, obj);\n }\n\n if (!same.y) {\n this.trigger('plain:' + directionY, obj);\n }\n\n if (!same.angle) {\n this.trigger('dir dir:' + direction, obj);\n }\n }\n return obj;\n};\n\n/* global Nipple, Super */\n\n///////////////////////////\n/// THE COLLECTION ///\n///////////////////////////\n\nfunction Collection (manager, options) {\n var self = this;\n self.nipples = [];\n self.idles = [];\n self.actives = [];\n self.ids = [];\n self.pressureIntervals = {};\n self.manager = manager;\n self.id = Collection.id;\n Collection.id += 1;\n\n // Defaults\n self.defaults = {\n zone: document.body,\n multitouch: false,\n maxNumberOfNipples: 10,\n mode: 'dynamic',\n position: {top: 0, left: 0},\n catchDistance: 200,\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n lockX: false,\n lockY: false\n };\n\n self.config(options);\n\n // Overwrites\n if (self.options.mode === 'static' || self.options.mode === 'semi') {\n self.options.multitouch = false;\n }\n\n if (!self.options.multitouch) {\n self.options.maxNumberOfNipples = 1;\n }\n\n self.updateBox();\n self.prepareNipples();\n self.bindings();\n self.begin();\n\n return self.nipples;\n}\n\nCollection.prototype = new Super();\nCollection.constructor = Collection;\nCollection.id = 0;\n\nCollection.prototype.prepareNipples = function () {\n var self = this;\n var nips = self.nipples;\n\n // Public API Preparation.\n nips.on = self.on.bind(self);\n nips.off = self.off.bind(self);\n nips.options = self.options;\n nips.destroy = self.destroy.bind(self);\n nips.ids = self.ids;\n nips.id = self.id;\n nips.processOnMove = self.processOnMove.bind(self);\n nips.processOnEnd = self.processOnEnd.bind(self);\n nips.get = function (id) {\n if (id === undefined) {\n return nips[0];\n }\n for (var i = 0, max = nips.length; i < max; i += 1) {\n if (nips[i].identifier === id) {\n return nips[i];\n }\n }\n return false;\n };\n};\n\nCollection.prototype.bindings = function () {\n var self = this;\n // Touch start event.\n self.bindEvt(self.options.zone, 'start');\n // Avoid native touch actions (scroll, zoom etc...) on the zone.\n self.options.zone.style.touchAction = 'none';\n self.options.zone.style.msTouchAction = 'none';\n};\n\nCollection.prototype.begin = function () {\n var self = this;\n var opts = self.options;\n\n // We place our static nipple\n // if needed.\n if (opts.mode === 'static') {\n var nipple = self.createNipple(\n opts.position,\n self.manager.getIdentifier()\n );\n // Add it to the dom.\n nipple.add();\n // Store it in idles.\n self.idles.push(nipple);\n }\n};\n\n// Nipple Factory\nCollection.prototype.createNipple = function (position, identifier) {\n var self = this;\n var scroll = u.getScroll();\n var toPutOn = {};\n var opts = self.options;\n\n if (position.x && position.y) {\n toPutOn = {\n x: position.x -\n (scroll.x + self.box.left),\n y: position.y -\n (scroll.y + self.box.top)\n };\n } else if (\n position.top ||\n position.right ||\n position.bottom ||\n position.left\n ) {\n\n // We need to compute the position X / Y of the joystick.\n var dumb = document.createElement('DIV');\n dumb.style.display = 'hidden';\n dumb.style.top = position.top;\n dumb.style.right = position.right;\n dumb.style.bottom = position.bottom;\n dumb.style.left = position.left;\n dumb.style.position = 'absolute';\n\n opts.zone.appendChild(dumb);\n var dumbBox = dumb.getBoundingClientRect();\n opts.zone.removeChild(dumb);\n\n toPutOn = position;\n position = {\n x: dumbBox.left + scroll.x,\n y: dumbBox.top + scroll.y\n };\n }\n\n var nipple = new Nipple(self, {\n color: opts.color,\n size: opts.size,\n threshold: opts.threshold,\n fadeTime: opts.fadeTime,\n dataOnly: opts.dataOnly,\n restJoystick: opts.restJoystick,\n restOpacity: opts.restOpacity,\n mode: opts.mode,\n identifier: identifier,\n position: position,\n zone: opts.zone,\n frontPosition: {\n x: 0,\n y: 0\n }\n });\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.el, toPutOn);\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n self.nipples.push(nipple);\n self.trigger('added ' + nipple.identifier + ':added', nipple);\n self.manager.trigger('added ' + nipple.identifier + ':added', nipple);\n\n self.bindNipple(nipple);\n\n return nipple;\n};\n\nCollection.prototype.updateBox = function () {\n var self = this;\n self.box = self.options.zone.getBoundingClientRect();\n};\n\nCollection.prototype.bindNipple = function (nipple) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's id.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed.\n nipple.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n nipple.on('shown hidden rested dir plain', handler);\n nipple.on('dir:up dir:right dir:down dir:left', handler);\n nipple.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nCollection.prototype.pressureFn = function (touch, nipple, identifier) {\n var self = this;\n var previousPressure = 0;\n clearInterval(self.pressureIntervals[identifier]);\n // Create an interval that will read the pressure every 100ms\n self.pressureIntervals[identifier] = setInterval(function () {\n var pressure = touch.force || touch.pressure ||\n touch.webkitForce || 0;\n if (pressure !== previousPressure) {\n nipple.trigger('pressure', pressure);\n self.trigger('pressure ' +\n nipple.identifier + ':pressure', pressure);\n previousPressure = pressure;\n }\n }.bind(self), 100);\n};\n\nCollection.prototype.onstart = function (evt) {\n var self = this;\n var opts = self.options;\n evt = u.prepareEvent(evt);\n\n // Update the box position\n self.updateBox();\n\n var process = function (touch) {\n // If we can create new nipples\n // meaning we don't have more active nipples than we should.\n if (self.actives.length < opts.maxNumberOfNipples) {\n self.processOnStart(touch);\n }\n };\n\n u.map(evt, process);\n\n // We ask upstream to bind the document\n // on 'move' and 'end'\n self.manager.bindDocument();\n return false;\n};\n\nCollection.prototype.processOnStart = function (evt) {\n var self = this;\n var opts = self.options;\n var indexInIdles;\n var identifier = self.manager.getIdentifier(evt);\n var pressure = evt.force || evt.pressure || evt.webkitForce || 0;\n var position = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var nipple = self.getOrCreate(identifier, position);\n\n // Update its touch identifier\n if (nipple.identifier !== identifier) {\n self.manager.removeIdentifier(nipple.identifier);\n }\n nipple.identifier = identifier;\n\n var process = function (nip) {\n // Trigger the start.\n nip.trigger('start', nip);\n self.trigger('start ' + nip.id + ':start', nip);\n\n nip.show();\n if (pressure > 0) {\n self.pressureFn(evt, nip, nip.identifier);\n }\n // Trigger the first move event.\n self.processOnMove(evt);\n };\n\n // Transfer it from idles to actives.\n if ((indexInIdles = self.idles.indexOf(nipple)) >= 0) {\n self.idles.splice(indexInIdles, 1);\n }\n\n // Store the nipple in the actives array\n self.actives.push(nipple);\n self.ids.push(nipple.identifier);\n\n if (opts.mode !== 'semi') {\n process(nipple);\n } else {\n // In semi we check the distance of the touch\n // to decide if we have to reset the nipple\n var distance = u.distance(position, nipple.position);\n if (distance <= opts.catchDistance) {\n process(nipple);\n } else {\n nipple.destroy();\n self.processOnStart(evt);\n return;\n }\n }\n\n return nipple;\n};\n\nCollection.prototype.getOrCreate = function (identifier, position) {\n var self = this;\n var opts = self.options;\n var nipple;\n\n // If we're in static or semi, we might already have an active.\n if (/(semi|static)/.test(opts.mode)) {\n // Get the active one.\n // TODO: Multi-touche for semi and static will start here.\n // Return the nearest one.\n nipple = self.idles[0];\n if (nipple) {\n self.idles.splice(0, 1);\n return nipple;\n }\n\n if (opts.mode === 'semi') {\n // If we're in semi mode, we need to create one.\n return self.createNipple(position, identifier);\n }\n\n console.warn('Coudln\\'t find the needed nipple.');\n return false;\n }\n // In dynamic, we create a new one.\n nipple = self.createNipple(position, identifier);\n return nipple;\n};\n\nCollection.prototype.processOnMove = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n\n if (!nipple) {\n // This is here just for safety.\n // It shouldn't happen.\n console.error('Found zombie joystick with ID ' + identifier);\n self.manager.removeIdentifier(identifier);\n return;\n }\n\n nipple.identifier = identifier;\n\n var size = nipple.options.size / 2;\n var pos = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var dist = u.distance(pos, nipple.position);\n var angle = u.angle(pos, nipple.position);\n var rAngle = u.radians(angle);\n var force = dist / size;\n\n // If distance is bigger than nipple's size\n // we clamp the position.\n if (dist > size) {\n dist = size;\n pos = u.findCoord(nipple.position, dist, angle);\n }\n\n var xPosition = pos.x - nipple.position.x\n var yPosition = pos.y - nipple.position.y\n\n if (opts.lockX){\n yPosition = 0\n }\n if (opts.lockY) {\n xPosition = 0\n }\n\n nipple.frontPosition = {\n x: xPosition,\n y: yPosition\n };\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n\n // Prepare event's datas.\n var toSend = {\n identifier: nipple.identifier,\n position: pos,\n force: force,\n pressure: evt.force || evt.pressure || evt.webkitForce || 0,\n distance: dist,\n angle: {\n radian: rAngle,\n degree: angle\n },\n instance: nipple,\n lockX: opts.lockX,\n lockY: opts.lockY\n };\n\n // Compute the direction's datas.\n toSend = nipple.computeDirection(toSend);\n\n // Offset angles to follow units circle.\n toSend.angle = {\n radian: u.radians(180 - angle),\n degree: 180 - angle\n };\n\n // Send everything to everyone.\n nipple.trigger('move', toSend);\n self.trigger('move ' + nipple.id + ':move', toSend);\n};\n\nCollection.prototype.processOnEnd = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n var removedIdentifier = self.manager.removeIdentifier(nipple.identifier);\n\n if (!nipple) {\n return;\n }\n\n if (!opts.dataOnly) {\n nipple.hide(function () {\n if (opts.mode === 'dynamic') {\n nipple.trigger('removed', nipple);\n self.trigger('removed ' + nipple.id + ':removed', nipple);\n self.manager\n .trigger('removed ' + nipple.id + ':removed', nipple);\n nipple.destroy();\n }\n });\n }\n\n // Clear the pressure interval reader\n clearInterval(self.pressureIntervals[nipple.identifier]);\n\n // Reset the direciton of the nipple, to be able to trigger a new direction\n // on start.\n nipple.resetDirection();\n\n nipple.trigger('end', nipple);\n self.trigger('end ' + nipple.id + ':end', nipple);\n\n // Remove identifier from our bank.\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Clean our actives array.\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n\n if (/(semi|static)/.test(opts.mode)) {\n // Transfer nipple from actives to idles\n // if we're in semi or static mode.\n self.idles.push(nipple);\n } else if (self.nipples.indexOf(nipple) >= 0) {\n // Only if we're not in semi or static mode\n // we can remove the instance.\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n\n // We unbind move and end.\n self.manager.unbindDocument();\n\n // We add back the identifier of the idle nipple;\n if (/(semi|static)/.test(opts.mode)) {\n self.manager.ids[removedIdentifier.id] = removedIdentifier.identifier;\n }\n};\n\n// Remove destroyed nipple from the lists\nCollection.prototype.onDestroyed = function(evt, nipple) {\n var self = this;\n if (self.nipples.indexOf(nipple) >= 0) {\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n if (self.idles.indexOf(nipple) >= 0) {\n self.idles.splice(self.idles.indexOf(nipple), 1);\n }\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Remove the identifier from our bank\n self.manager.removeIdentifier(nipple.identifier);\n\n // We unbind move and end.\n self.manager.unbindDocument();\n};\n\n// Cleanly destroy the manager\nCollection.prototype.destroy = function () {\n var self = this;\n self.unbindEvt(self.options.zone, 'start');\n\n // Destroy nipples.\n self.nipples.forEach(function(nipple) {\n nipple.destroy();\n });\n\n // Clean 3DTouch intervals.\n for (var i in self.pressureIntervals) {\n if (self.pressureIntervals.hasOwnProperty(i)) {\n clearInterval(self.pressureIntervals[i]);\n }\n }\n\n // Notify the manager passing the instance\n self.trigger('destroyed', self.nipples);\n // We unbind move and end.\n self.manager.unbindDocument();\n // Unbind everything.\n self.off();\n};\n\n/* global u, Super, Collection */\n\n///////////////////////\n/// MANAGER ///\n///////////////////////\n\nfunction Manager (options) {\n var self = this;\n self.ids = {};\n self.index = 0;\n self.collections = [];\n\n self.config(options);\n self.prepareCollections();\n\n // Listen for resize, to reposition every joysticks\n var resizeTimer;\n u.bindEvt(window, 'resize', function (evt) {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(function () {\n var pos;\n var scroll = u.getScroll();\n self.collections.forEach(function (collection) {\n collection.forEach(function (nipple) {\n pos = nipple.el.getBoundingClientRect();\n nipple.position = {\n x: scroll.x + pos.left,\n y: scroll.y + pos.top\n };\n });\n });\n }, 100);\n });\n\n return self.collections;\n};\n\nManager.prototype = new Super();\nManager.constructor = Manager;\n\nManager.prototype.prepareCollections = function () {\n var self = this;\n // Public API Preparation.\n self.collections.create = self.create.bind(self);\n // Listen to anything\n self.collections.on = self.on.bind(self);\n // Unbind general events\n self.collections.off = self.off.bind(self);\n // Destroy everything\n self.collections.destroy = self.destroy.bind(self);\n // Get any nipple\n self.collections.get = function (id) {\n var nipple;\n self.collections.every(function (collection) {\n if (nipple = collection.get(id)) {\n return false;\n }\n return true;\n });\n return nipple;\n };\n};\n\nManager.prototype.create = function (options) {\n return this.createCollection(options);\n};\n\n// Collection Factory\nManager.prototype.createCollection = function (options) {\n var self = this;\n var collection = new Collection(self, options);\n\n self.bindCollection(collection);\n self.collections.push(collection);\n\n return collection;\n};\n\nManager.prototype.bindCollection = function (collection) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's identifier.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed we clean.\n collection.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n collection.on('shown hidden rested dir plain', handler);\n collection.on('dir:up dir:right dir:down dir:left', handler);\n collection.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nManager.prototype.bindDocument = function () {\n var self = this;\n // Bind only if not already binded\n if (!self.binded) {\n self.bindEvt(document, 'move')\n .bindEvt(document, 'end');\n self.binded = true;\n }\n};\n\nManager.prototype.unbindDocument = function (force) {\n var self = this;\n // If there are no touch left\n // unbind the document.\n if (!Object.keys(self.ids).length || force === true) {\n self.unbindEvt(document, 'move')\n .unbindEvt(document, 'end');\n self.binded = false;\n }\n};\n\nManager.prototype.getIdentifier = function (evt) {\n var id;\n // If no event, simple increment\n if (!evt) {\n id = this.index;\n } else {\n // Extract identifier from event object.\n // Unavailable in mouse events so replaced by latest increment.\n id = evt.identifier === undefined ? evt.pointerId : evt.identifier;\n if (id === undefined) {\n id = this.latest || 0;\n }\n }\n\n if (this.ids[id] === undefined) {\n this.ids[id] = this.index;\n this.index += 1;\n }\n\n // Keep the latest id used in case we're using an unidentified mouseEvent\n this.latest = id;\n return this.ids[id];\n};\n\nManager.prototype.removeIdentifier = function (identifier) {\n var removed = {};\n for (var id in this.ids) {\n if (this.ids[id] === identifier) {\n removed.id = id;\n removed.identifier = this.ids[id];\n delete this.ids[id];\n break;\n }\n }\n return removed;\n};\n\nManager.prototype.onmove = function (evt) {\n var self = this;\n self.onAny('move', evt);\n return false;\n};\n\nManager.prototype.onend = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.oncancel = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.onAny = function (which, evt) {\n var self = this;\n var id;\n var processFn = 'processOn' + which.charAt(0).toUpperCase() +\n which.slice(1);\n evt = u.prepareEvent(evt);\n var processColl = function (e, id, coll) {\n if (coll.ids.indexOf(id) >= 0) {\n coll[processFn](e);\n // Mark the event to avoid cleaning it later.\n e._found_ = true;\n }\n };\n var processEvt = function (e) {\n id = self.getIdentifier(e);\n u.map(self.collections, processColl.bind(null, e, id));\n // If the event isn't handled by any collection,\n // we need to clean its identifier.\n if (!e._found_) {\n self.removeIdentifier(id);\n }\n };\n\n u.map(evt, processEvt);\n\n return false;\n};\n\n// Cleanly destroy the manager\nManager.prototype.destroy = function () {\n var self = this;\n self.unbindDocument(true);\n self.ids = {};\n self.index = 0;\n self.collections.forEach(function(collection) {\n collection.destroy();\n });\n self.off();\n};\n\n// When a collection gets destroyed\n// we clean behind.\nManager.prototype.onDestroyed = function (evt, coll) {\n var self = this;\n if (self.collections.indexOf(coll) < 0) {\n return false;\n }\n self.collections.splice(self.collections.indexOf(coll), 1);\n};\n\nvar factory = new Manager();\nreturn {\n create: function (options) {\n return factory.create(options);\n },\n factory: factory\n};\n\n});\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","/**\r\n * Returns the object type of the given payload\r\n *\r\n * @param {*} payload\r\n * @returns {string}\r\n */\r\nfunction getType(payload) {\r\n return Object.prototype.toString.call(payload).slice(8, -1);\r\n}\r\n/**\r\n * Returns whether the payload is undefined\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isUndefined(payload) {\r\n return getType(payload) === 'Undefined';\r\n}\r\n/**\r\n * Returns whether the payload is null\r\n *\r\n * @param {*} payload\r\n * @returns {payload is null}\r\n */\r\nfunction isNull(payload) {\r\n return getType(payload) === 'Null';\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isPlainObject(payload) {\r\n if (getType(payload) !== 'Object')\r\n return false;\r\n return (payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype);\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isObject(payload) {\r\n return isPlainObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isAnyObject(payload) {\r\n return getType(payload) === 'Object';\r\n}\r\n/**\r\n * Returns whether the payload is an object like a type passed in < >\r\n *\r\n * Usage: isObjectLike<{id: any}>(payload) // will make sure it's an object and has an `id` prop.\r\n *\r\n * @template T this must be passed in < >\r\n * @param {*} payload\r\n * @returns {payload is T}\r\n */\r\nfunction isObjectLike(payload) {\r\n return isAnyObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a function\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Function}\r\n */\r\nfunction isFunction(payload) {\r\n return getType(payload) === 'Function';\r\n}\r\n/**\r\n * Returns whether the payload is an array\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isArray(payload) {\r\n return getType(payload) === 'Array';\r\n}\r\n/**\r\n * Returns whether the payload is a string\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isString(payload) {\r\n return getType(payload) === 'String';\r\n}\r\n/**\r\n * Returns whether the payload is a string, BUT returns false for ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isFullString(payload) {\r\n return isString(payload) && payload !== '';\r\n}\r\n/**\r\n * Returns whether the payload is ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isEmptyString(payload) {\r\n return payload === '';\r\n}\r\n/**\r\n * Returns whether the payload is a number\r\n *\r\n * This will return false for NaN\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\r\nfunction isNumber(payload) {\r\n return (getType(payload) === 'Number' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a boolean\r\n *\r\n * @param {*} payload\r\n * @returns {payload is boolean}\r\n */\r\nfunction isBoolean(payload) {\r\n return getType(payload) === 'Boolean';\r\n}\r\n/**\r\n * Returns whether the payload is a regular expression\r\n *\r\n * @param {*} payload\r\n * @returns {payload is RegExp}\r\n */\r\nfunction isRegExp(payload) {\r\n return getType(payload) === 'RegExp';\r\n}\r\n/**\r\n * Returns whether the payload is a date, and that the date is Valid\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Date}\r\n */\r\nfunction isDate(payload) {\r\n return (getType(payload) === 'Date' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a Symbol\r\n *\r\n * @param {*} payload\r\n * @returns {payload is symbol}\r\n */\r\nfunction isSymbol(payload) {\r\n return (getType(payload) === 'Symbol');\r\n}\r\n/**\r\n * Returns whether the payload is a primitive type (eg. Boolean | Null | Undefined | Number | String | Symbol)\r\n *\r\n * @param {*} payload\r\n * @returns {(payload is boolean | null | undefined | number | string | symbol)}\r\n */\r\nfunction isPrimitive(payload) {\r\n return (isBoolean(payload) ||\r\n isNull(payload) ||\r\n isUndefined(payload) ||\r\n isNumber(payload) ||\r\n isString(payload) ||\r\n isSymbol(payload));\r\n}\r\n/**\r\n * Does a generic check to check that the given payload is of a given type.\r\n * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!);\r\n * It will, however, differentiate between object and null\r\n *\r\n * @template T\r\n * @param {*} payload\r\n * @param {T} type\r\n * @throws {TypeError} Will throw type error if type is an invalid type\r\n * @returns {payload is T}\r\n */\r\nfunction isType(payload, type) {\r\n if (!(type instanceof Function)) {\r\n throw new TypeError('Type must be a function');\r\n }\r\n if (!type.hasOwnProperty('prototype')) {\r\n throw new TypeError('Type is not a class');\r\n }\r\n // Classes usually have names (as functions usually have names)\r\n var name = type.name;\r\n return (getType(payload) === name) || Boolean(payload && (payload.constructor === type));\r\n}\n\nexport { getType, isUndefined, isNull, isPlainObject, isObject, isAnyObject, isObjectLike, isFunction, isArray, isString, isFullString, isEmptyString, isNumber, isBoolean, isRegExp, isDate, isSymbol, isPrimitive, isType };\n","import { isArray, isPlainObject, isSymbol } from 'is-what';\n\nfunction assignProp(carry, key, newVal, originalObject) {\r\n var propType = originalObject.propertyIsEnumerable(key)\r\n ? 'enumerable'\r\n : 'nonenumerable';\r\n if (propType === 'enumerable')\r\n carry[key] = newVal;\r\n if (propType === 'nonenumerable') {\r\n Object.defineProperty(carry, key, {\r\n value: newVal,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n });\r\n }\r\n}\r\nfunction mergeRecursively(origin, newComer, extensions) {\r\n // work directly on newComer if its not an object\r\n if (!isPlainObject(newComer)) {\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newComer = extend(origin, newComer);\r\n });\r\n }\r\n return newComer;\r\n }\r\n // define newObject to merge all values upon\r\n var newObject = {};\r\n if (isPlainObject(origin)) {\r\n var props_1 = Object.getOwnPropertyNames(origin);\r\n var symbols_1 = Object.getOwnPropertySymbols(origin);\r\n newObject = props_1.concat(symbols_1).reduce(function (carry, key) {\r\n // @ts-ignore\r\n var targetVal = origin[key];\r\n if ((!isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key)) ||\r\n (isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key))) {\r\n assignProp(carry, key, targetVal, origin);\r\n }\r\n return carry;\r\n }, {});\r\n }\r\n var props = Object.getOwnPropertyNames(newComer);\r\n var symbols = Object.getOwnPropertySymbols(newComer);\r\n var result = props.concat(symbols).reduce(function (carry, key) {\r\n // re-define the origin and newComer as targetVal and newVal\r\n var newVal = newComer[key];\r\n var targetVal = (isPlainObject(origin))\r\n // @ts-ignore\r\n ? origin[key]\r\n : undefined;\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newVal = extend(targetVal, newVal);\r\n });\r\n }\r\n // When newVal is an object do the merge recursively\r\n if (targetVal !== undefined && isPlainObject(newVal)) {\r\n newVal = mergeRecursively(targetVal, newVal, extensions);\r\n }\r\n assignProp(carry, key, newVal, newComer);\r\n return carry;\r\n }, newObject);\r\n return result;\r\n}\r\n/**\r\n * Merge anything recursively.\r\n * Objects get merged, special objects (classes etc.) are re-assigned \"as is\".\r\n * Basic types overwrite objects or other basic types.\r\n *\r\n * @param {(IConfig | any)} origin\r\n * @param {...any[]} newComers\r\n * @returns the result\r\n */\r\nfunction merge(origin) {\r\n var newComers = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n newComers[_i - 1] = arguments[_i];\r\n }\r\n var extensions = null;\r\n var base = origin;\r\n if (isPlainObject(origin) && origin.extensions && Object.keys(origin).length === 1) {\r\n base = {};\r\n extensions = origin.extensions;\r\n }\r\n return newComers.reduce(function (result, newComer) {\r\n return mergeRecursively(result, newComer, extensions);\r\n }, base);\r\n}\n\nfunction concatArrays(originVal, newVal) {\r\n if (isArray(originVal) && isArray(newVal)) {\r\n // concat logic\r\n return originVal.concat(newVal);\r\n }\r\n return newVal; // always return newVal as fallback!!\r\n}\n\nexport default merge;\nexport { merge, concatArrays };\n","/** @license React v16.8.6\n * react-is.production.min.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'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (colorNames.hasOwnProperty(name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar keyword = /(\\D+)/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\n\t\tif (!rgb) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = (parseFloat(match[1]) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = num.toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function () { /* empty */ };\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","/**\n * @ignore\n * event object for dom\n * @author yiminghe@gmail.com\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventBaseObject = require('./EventBaseObject');\n\nvar _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar TRUE = true;\nvar FALSE = false;\nvar commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];\n\nfunction isNullOrUndefined(w) {\n return w === null || w === undefined;\n}\n\nvar eventNormalizers = [{\n reg: /^key/,\n props: ['char', 'charCode', 'key', 'keyCode', 'which'],\n fix: function fix(event, nativeEvent) {\n if (isNullOrUndefined(event.which)) {\n event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;\n }\n\n // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)\n if (event.metaKey === undefined) {\n event.metaKey = event.ctrlKey;\n }\n }\n}, {\n reg: /^touch/,\n props: ['touches', 'changedTouches', 'targetTouches']\n}, {\n reg: /^hashchange$/,\n props: ['newURL', 'oldURL']\n}, {\n reg: /^gesturechange$/i,\n props: ['rotation', 'scale']\n}, {\n reg: /^(mousewheel|DOMMouseScroll)$/,\n props: [],\n fix: function fix(event, nativeEvent) {\n var deltaX = undefined;\n var deltaY = undefined;\n var delta = undefined;\n var wheelDelta = nativeEvent.wheelDelta;\n var axis = nativeEvent.axis;\n var wheelDeltaY = nativeEvent.wheelDeltaY;\n var wheelDeltaX = nativeEvent.wheelDeltaX;\n var detail = nativeEvent.detail;\n\n // ie/webkit\n if (wheelDelta) {\n delta = wheelDelta / 120;\n }\n\n // gecko\n if (detail) {\n // press control e.detail == 1 else e.detail == 3\n delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);\n }\n\n // Gecko\n if (axis !== undefined) {\n if (axis === event.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = 0 - delta;\n } else if (axis === event.VERTICAL_AXIS) {\n deltaX = 0;\n deltaY = delta;\n }\n }\n\n // Webkit\n if (wheelDeltaY !== undefined) {\n deltaY = wheelDeltaY / 120;\n }\n if (wheelDeltaX !== undefined) {\n deltaX = -1 * wheelDeltaX / 120;\n }\n\n // 默认 deltaY (ie)\n if (!deltaX && !deltaY) {\n deltaY = delta;\n }\n\n if (deltaX !== undefined) {\n /**\n * deltaX of mousewheel event\n * @property deltaX\n * @member Event.DomEvent.Object\n */\n event.deltaX = deltaX;\n }\n\n if (deltaY !== undefined) {\n /**\n * deltaY of mousewheel event\n * @property deltaY\n * @member Event.DomEvent.Object\n */\n event.deltaY = deltaY;\n }\n\n if (delta !== undefined) {\n /**\n * delta of mousewheel event\n * @property delta\n * @member Event.DomEvent.Object\n */\n event.delta = delta;\n }\n }\n}, {\n reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,\n props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],\n fix: function fix(event, nativeEvent) {\n var eventDoc = undefined;\n var doc = undefined;\n var body = undefined;\n var target = event.target;\n var button = nativeEvent.button;\n\n // Calculate pageX/Y if missing and clientX/Y available\n if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {\n eventDoc = target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // which for click: 1 === left; 2 === middle; 3 === right\n // do not use button\n if (!event.which && button !== undefined) {\n if (button & 1) {\n event.which = 1;\n } else if (button & 2) {\n event.which = 3;\n } else if (button & 4) {\n event.which = 2;\n } else {\n event.which = 0;\n }\n }\n\n // add relatedTarget, if necessary\n if (!event.relatedTarget && event.fromElement) {\n event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;\n }\n\n return event;\n }\n}];\n\nfunction retTrue() {\n return TRUE;\n}\n\nfunction retFalse() {\n return FALSE;\n}\n\nfunction DomEventObject(nativeEvent) {\n var type = nativeEvent.type;\n\n var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';\n\n _EventBaseObject2['default'].call(this);\n\n this.nativeEvent = nativeEvent;\n\n // in case dom event has been mark as default prevented by lower dom node\n var isDefaultPrevented = retFalse;\n if ('defaultPrevented' in nativeEvent) {\n isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;\n } else if ('getPreventDefault' in nativeEvent) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=691151\n isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;\n } else if ('returnValue' in nativeEvent) {\n isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;\n }\n\n this.isDefaultPrevented = isDefaultPrevented;\n\n var fixFns = [];\n var fixFn = undefined;\n var l = undefined;\n var prop = undefined;\n var props = commonProps.concat();\n\n eventNormalizers.forEach(function (normalizer) {\n if (type.match(normalizer.reg)) {\n props = props.concat(normalizer.props);\n if (normalizer.fix) {\n fixFns.push(normalizer.fix);\n }\n }\n });\n\n l = props.length;\n\n // clone properties of the original event object\n while (l) {\n prop = props[--l];\n this[prop] = nativeEvent[prop];\n }\n\n // fix target property, if necessary\n if (!this.target && isNative) {\n this.target = nativeEvent.srcElement || document; // srcElement might not be defined either\n }\n\n // check if target is a text node (safari)\n if (this.target && this.target.nodeType === 3) {\n this.target = this.target.parentNode;\n }\n\n l = fixFns.length;\n\n while (l) {\n fixFn = fixFns[--l];\n fixFn(this, nativeEvent);\n }\n\n this.timeStamp = nativeEvent.timeStamp || Date.now();\n}\n\nvar EventBaseObjectProto = _EventBaseObject2['default'].prototype;\n\n(0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {\n constructor: DomEventObject,\n\n preventDefault: function preventDefault() {\n var e = this.nativeEvent;\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n // otherwise set the returnValue property of the original event to FALSE (IE)\n e.returnValue = FALSE;\n }\n\n EventBaseObjectProto.preventDefault.call(this);\n },\n\n stopPropagation: function stopPropagation() {\n var e = this.nativeEvent;\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n } else {\n // otherwise set the cancelBubble property of the original event to TRUE (IE)\n e.cancelBubble = TRUE;\n }\n\n EventBaseObjectProto.stopPropagation.call(this);\n }\n});\n\nexports['default'] = DomEventObject;\nmodule.exports = exports['default'];","/**\n * @ignore\n * base event object for custom and dom event.\n * @author yiminghe@gmail.com\n */\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction returnFalse() {\n return false;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction EventBaseObject() {\n this.timeStamp = Date.now();\n this.target = undefined;\n this.currentTarget = undefined;\n}\n\nEventBaseObject.prototype = {\n isEventObject: 1,\n\n constructor: EventBaseObject,\n\n isDefaultPrevented: returnFalse,\n\n isPropagationStopped: returnFalse,\n\n isImmediatePropagationStopped: returnFalse,\n\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n },\n\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n },\n\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n // fixed 1.2\n // call stopPropagation implicitly\n this.stopPropagation();\n },\n\n halt: function halt(immediate) {\n if (immediate) {\n this.stopImmediatePropagation();\n } else {\n this.stopPropagation();\n }\n this.preventDefault();\n }\n};\n\nexports[\"default\"] = EventBaseObject;\nmodule.exports = exports[\"default\"];","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\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","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n","var api = require(\"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../css-loader/dist/cjs.js!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function insertAtTop(element) {\n\t\t\t\t document.head.insertBefore(element, document.head.firstElementChild);\n\t\t\t\t};\noptions.singleton = false;\n\nvar update = api(content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;","\"use strict\";\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 = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\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 && btoa) {\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 "}},te=function(e,t){return function(){var n,r=((n={})[j]=$(t),n["data-styled-version"]="4.4.0",n),o=G();return o&&(r.nonce=o),l.a.createElement("style",g({},r,{dangerouslySetInnerHTML:{__html:e()}}))}},ne=function(e){return function(){return Object.keys(e)}},re=function(e,t){return e.createTextNode(J(t))},oe=function e(t,n){var r=void 0===t?Object.create(null):t,o=void 0===n?Object.create(null):n,a=function(e){var t=o[e];return void 0!==t?t:o[e]=[""]},i=function(){var e="";for(var t in o){var n=o[t][0];n&&(e+=J(t)+n)}return e};return{clone:function(){var t=function(e){var t=Object.create(null);for(var n in e)t[n]=g({},e[n]);return t}(r),n=Object.create(null);for(var a in o)n[a]=[o[a][0]];return e(t,n)},css:i,getIds:ne(o),hasNameForId:K(r),insertMarker:a,insertRules:function(e,t,n){a(e)[0]+=t.join(" "),Y(r,e,n)},removeRules:function(e){var t=o[e];void 0!==t&&(t[0]="",X(r,e))},sealed:!1,styleTag:null,toElement:te(i,r),toHTML:ee(i,r)}},ae=function(e,t,n,r,o){if(C&&!n){var a=function(e,t,n){var r=document;e?r=e.ownerDocument:t&&(r=t.ownerDocument);var o=r.createElement("style");o.setAttribute(j,""),o.setAttribute("data-styled-version","4.4.0");var a=G();if(a&&o.setAttribute("nonce",a),o.appendChild(r.createTextNode("")),e&&!t)e.appendChild(o);else{if(!t||!e||!t.parentNode)throw new M(6);t.parentNode.insertBefore(o,n?t:t.nextSibling)}return o}(e,t,r);return P?function(e,t){var n=Object.create(null),r=Object.create(null),o=void 0!==t,a=!1,i=function(t){var o=r[t];return void 0!==o?o:(r[t]=re(e.ownerDocument,t),e.appendChild(r[t]),n[t]=Object.create(null),r[t])},s=function(){var e="";for(var t in r)e+=r[t].data;return e};return{clone:function(){throw new M(5)},css:s,getIds:ne(r),hasNameForId:K(n),insertMarker:i,insertRules:function(e,r,s){for(var l=i(e),c=[],u=r.length,f=0;f0&&(a=!0,t().insertRules(e+"-import",c))},removeRules:function(i){var s=r[i];if(void 0!==s){var l=re(e.ownerDocument,i);e.replaceChild(l,s),r[i]=l,X(n,i),o&&a&&t().removeRules(i+"-import")}},sealed:!1,styleTag:e,toElement:te(s,n),toHTML:ee(s,n)}}(a,o):function(e,t){var n=Object.create(null),r=Object.create(null),o=[],a=void 0!==t,i=!1,s=function(e){var t=r[e];return void 0!==t?t:(r[e]=o.length,o.push(0),X(n,e),r[e])},l=function(){var t=q(e).cssRules,n="";for(var a in r){n+=J(a);for(var i=r[a],s=Q(o,i),l=s-o[i];l0&&(i=!0,t().insertRules(r+"-import",h)),o[u]+=d,Y(n,r,c)},removeRules:function(s){var l=r[s];if(void 0!==l&&!1!==e.isConnected){var c=o[l];!function(e,t,n){for(var r=t-n,o=t;o>r;o-=1)e.deleteRule(o)}(q(e),Q(o,l)-1,c),o[l]=0,X(n,s),a&&i&&t().removeRules(s+"-import")}},sealed:!1,styleTag:e,toElement:te(l,n),toHTML:ee(l,n)}}(a,o)}return oe()},ie=/\s+/,se=void 0;se=C?P?40:1e3:-1;var le=0,ce=void 0,ue=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C?document.head:null,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];b(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var n=t.tags[0];return t.importRuleTag=ae(t.target,n?n.styleTag:null,t.forceServer,!0)},le+=1,this.id=le,this.forceServer=r,this.target=r?null:n,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!C||this.forceServer)return this;var e=[],t=[],n=!1,r=document.querySelectorAll("style["+j+'][data-styled-version="4.4.0"]'),o=r.length;if(!o)return this;for(var a=0;a0&&void 0!==arguments[0]&&arguments[0];ce=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map((function(e){for(var n=e.getIds(),r=e.clone(),o=0;o1?t-1:0),r=1;r=4;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),n-=4,++o;switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+((1540483477*(r>>>16)&65535)<<16)}return((r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16))^r>>>15)>>>0}var xe=function(e){return String.fromCharCode(e+(e>25?39:97))};function we(e){var t="",n=void 0;for(n=e;n>52;n=Math.floor(n/52))t=xe(n%52)+t;return xe(n%52)+t}function Oe(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:k,r=!!n&&e.theme===n.theme,o=e.theme&&!r?e.theme:t||n.theme;return o},je=/[[\].#*$><+~=|^:(),"'`-]+/g,Ce=/(^-|-$)/g;function Pe(e){return e.replace(je,"-").replace(Ce,"")}function Me(e){return"string"==typeof e&&!0}var Ae={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},Te={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},De=((ke={})[u.ForwardRef]={$$typeof:!0,render:!0},ke),Ne=Object.defineProperty,Ie=Object.getOwnPropertyNames,Le=Object.getOwnPropertySymbols,Re=void 0===Le?function(){return[]}:Le,Fe=Object.getOwnPropertyDescriptor,He=Object.getPrototypeOf,ze=Object.prototype,Be=Array.prototype;function Ue(e,t,n){if("string"!=typeof t){var r=He(t);r&&r!==ze&&Ue(e,r,n);for(var o=Be.concat(Ie(t),Re(t)),a=De[e.$$typeof]||Ae,i=De[t.$$typeof]||Ae,s=o.length,l=void 0,c=void 0;s--;)if(c=o[s],!(Te[c]||n&&n[c]||i&&i[c]||a&&a[c])&&(l=Fe(t,c)))try{Ne(e,c,l)}catch(e){}return e}return e}var Ve=Object(s.createContext)(),We=Ve.Consumer,Ge=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext.bind(r)),r.renderInner=r.renderInner.bind(r),r}return y(t,e),t.prototype.render=function(){return this.props.children?l.a.createElement(Ve.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return l.a.createElement(Ve.Provider,{value:t},this.props.children)},t.prototype.getTheme=function(e,t){if(E(e))return e(t);if(null===e||Array.isArray(e)||"object"!==(void 0===e?"undefined":m(e)))throw new M(8);return g({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)},t}(s.Component),Ye=(function(){function e(){b(this,e),this.masterSheet=ue.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new M(2);return l.a.createElement(Ke,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new M(3)}}(),Object(s.createContext)()),Xe=Ye.Consumer,Ke=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext),r}return y(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new ue(t);throw new M(4)},t.prototype.render=function(){var e=this.props,t=e.children,n=e.sheet,r=e.target;return l.a.createElement(Ye.Provider,{value:this.getContext(n,r)},t)},t}(s.Component),$e={};var qe=function(e){function t(){b(this,t);var n=x(this,e.call(this));return n.attrs={},n.renderOuter=n.renderOuter.bind(n),n.renderInner=n.renderInner.bind(n),n}return y(t,e),t.prototype.render=function(){return l.a.createElement(Xe,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ue.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():l.a.createElement(We,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,n=t.componentStyle,r=t.defaultProps,o=(t.displayName,t.foldedComponentIds),a=t.styledComponentId,i=t.target,l=(t.usesTheme,void 0),c=void 0;n.isStatic?l=this.generateAndInjectStyles(k,this.props):(c=_e(this.props,e,r),l=this.generateAndInjectStyles(c||k,this.props));var u=this.props.as||this.attrs.as||i,f=Me(u),d={},h=g({},this.props,this.attrs),m=void 0;for(m in h)"forwardedComponent"!==m&&"as"!==m&&("forwardedRef"===m?d.ref=h[m]:"forwardedAs"===m?d.as=h[m]:f&&!Object(p.a)(m)||(d[m]=h[m]));return this.props.style&&this.attrs.style&&(d.style=g({},this.attrs.style,this.props.style)),d.className=Array.prototype.concat(o,a,l!==a?l:null,this.props.className,this.attrs.className).filter(Boolean).join(" "),Object(s.createElement)(u,d)},t.prototype.buildExecutionContext=function(e,t,n){var r=this,o=g({},t,{theme:e});return n.length?(this.attrs={},n.forEach((function(e){var t,n=e,a=!1,i=void 0,s=void 0;for(s in E(n)&&(n=n(o),a=!0),n)i=n[s],a||!E(i)||(t=i)&&t.prototype&&t.prototype.isReactComponent||_(i)||(i=i(o)),r.attrs[s]=i,o[s]=i})),o):o},t.prototype.generateAndInjectStyles=function(e,t){var n=t.forwardedComponent,r=n.attrs,o=n.componentStyle;n.warnTooManyClasses;return o.isStatic&&!r.length?o.generateAndInjectStyles(k,this.styleSheet):o.generateAndInjectStyles(this.buildExecutionContext(e,t,r),this.styleSheet)},t}(s.Component);function Ze(e,t,n){var r=_(e),o=!Me(e),a=t.displayName,i=void 0===a?function(e){return Me(e)?"styled."+e:"Styled("+S(e)+")"}(e):a,s=t.componentId,c=void 0===s?function(e,t,n){var r="string"!=typeof t?"sc":Pe(t),o=($e[r]||0)+1;$e[r]=o;var a=r+"-"+e.generateName(r+o);return n?n+"-"+a:a}(Se,t.displayName,t.parentComponentId):s,u=t.ParentComponent,f=void 0===u?qe:u,p=t.attrs,h=void 0===p?O:p,m=t.displayName&&t.componentId?Pe(t.displayName)+"-"+t.componentId:t.componentId||c,b=r&&e.attrs?Array.prototype.concat(e.attrs,h).filter(Boolean):h,v=new Se(r?e.componentStyle.rules.concat(n):n,b,m),y=void 0,x=function(e,t){return l.a.createElement(f,g({},e,{forwardedComponent:y,forwardedRef:t}))};return x.displayName=i,(y=l.a.forwardRef(x)).displayName=i,y.attrs=b,y.componentStyle=v,y.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):O,y.styledComponentId=m,y.target=r?e.target:e,y.withComponent=function(e){var r=t.componentId,o=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(t,["componentId"]),a=r&&r+"-"+(Me(e)?e:Pe(S(e)));return Ze(e,g({},o,{attrs:b,componentId:a,ParentComponent:f}),n)},Object.defineProperty(y,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Object(d.a)(e.defaultProps,t):t}}),y.toString=function(){return"."+y.styledComponentId},o&&Ue(y,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),y}var Je=function(e){return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:k;if(!Object(u.isValidElementType)(n))throw new M(1,String(n));var o=function(){return t(n,r,ge.apply(void 0,arguments))};return o.withConfig=function(o){return e(t,n,g({},r,o))},o.attrs=function(o){return e(t,n,g({},r,{attrs:Array.prototype.concat(r.attrs,o).filter(Boolean)}))},o}(Ze,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){Je[e]=Je(e)}));!function(){function e(t,n){b(this,e),this.rules=t,this.componentId=n,this.isStatic=Oe(t,O),ue.master.hasId(n)||ue.master.deferredInject(n,[])}e.prototype.createStyles=function(e,t){var n=W(ve(this.rules,e,t),"");t.inject(this.componentId,n)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)}}();C&&(window.scCGSHMRCache={});var Qe=function(e){var t=l.a.forwardRef((function(t,n){return l.a.createElement(We,null,(function(r){var o=e.defaultProps,a=_e(t,r,o);return l.a.createElement(e,g({},t,{theme:a,ref:n}))}))}));return Ue(t,e),t.displayName="WithTheme("+S(e)+")",t};t.c=Je}).call(this,n(63))},function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a})),n.d(t,"e",(function(){return i})),n.d(t,"d",(function(){return s}));var r={PRIMARY:"#ABE2FB",SECONDARY:"#E6E6E6",DARKER_PRIMARY:"#87ceeb",OFF_WHITE:"#15181A",GREY:"#D3D3D3",RED:"#FF5E5E",DARK_GREY:"#535D63"},o=270,a=Math.PI/180,i={primary:r.PRIMARY,secondary:r.SECONDARY,detail:r.GREY,dark:!1},s={primary:r.PRIMARY,secondary:r.DARK_GREY,detail:r.DARK_GREY,dark:!0}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return a}));var r=n(30),o=function(e,t){return"daq-"+e+(t&&t.dark?"--dark":"--light")},a=function(e){return Object(r.a)(["className","id","setProps","style"],e)}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(71),a=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,a.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(95),a=(r=o)&&r.__esModule?r:{default:r};t.default=a.default||function(e){for(var t=1;t1?r-1:0),a=1;a0?" Additional arguments: "+o.join(", "):"")));return x(i)}return y(t,e),t}(Error),A=/^[^\S\n]*?\/\* sc-component-id:\s*(\S+)\s+\*\//gm,T=function(e){var t=""+(e||""),n=[];return t.replace(A,(function(e,t,r){return n.push({componentId:t,matchIndex:r}),e})),n.map((function(e,r){var o=e.componentId,a=e.matchIndex,i=n[r+1];return{componentId:o,cssFromDOM:i?t.slice(a,i.matchIndex):t.slice(a)}}))},D=/^\s*\/\/.*$/gm,N=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!1,compress:!1,semicolon:!0}),I=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!0,compress:!1,semicolon:!1}),L=[],R=function(e){if(-2===e){var t=L;return L=[],t}},F=i()((function(e){L.push(e)})),H=void 0,z=void 0,B=void 0,U=function(e,t,n){return t>0&&-1!==n.slice(0,t).indexOf(z)&&n.slice(t-z.length,t)!==z?"."+H:e};I.use([function(e,t,n){2===e&&n.length&&n[0].lastIndexOf(z)>0&&(n[0]=n[0].replace(B,U))},F,R]),N.use([F,R]);var V=function(e){return N("",e)};function W(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"&",o=e.join("").replace(D,""),a=t&&n?n+" "+t+" { "+o+" }":o;return H=r,z=t,B=new RegExp("\\"+z+"\\b","g"),I(n||!t?"":t,a)}var G=function(){return n.nc},Y=function(e,t,n){n&&((e[t]||(e[t]=Object.create(null)))[n]=!0)},X=function(e,t){e[t]=Object.create(null)},K=function(e){return function(t,n){return void 0!==e[t]&&e[t][n]}},$=function(e){var t="";for(var n in e)t+=Object.keys(e[n]).join(" ")+" ";return t.trim()},q=function(e){if(e.sheet)return e.sheet;for(var t=e.ownerDocument.styleSheets.length,n=0;n"+e()+""}},te=function(e,t){return function(){var n,r=((n={})[j]=$(t),n["data-styled-version"]="4.4.0",n),o=G();return o&&(r.nonce=o),l.a.createElement("style",g({},r,{dangerouslySetInnerHTML:{__html:e()}}))}},ne=function(e){return function(){return Object.keys(e)}},re=function(e,t){return e.createTextNode(J(t))},oe=function e(t,n){var r=void 0===t?Object.create(null):t,o=void 0===n?Object.create(null):n,a=function(e){var t=o[e];return void 0!==t?t:o[e]=[""]},i=function(){var e="";for(var t in o){var n=o[t][0];n&&(e+=J(t)+n)}return e};return{clone:function(){var t=function(e){var t=Object.create(null);for(var n in e)t[n]=g({},e[n]);return t}(r),n=Object.create(null);for(var a in o)n[a]=[o[a][0]];return e(t,n)},css:i,getIds:ne(o),hasNameForId:K(r),insertMarker:a,insertRules:function(e,t,n){a(e)[0]+=t.join(" "),Y(r,e,n)},removeRules:function(e){var t=o[e];void 0!==t&&(t[0]="",X(r,e))},sealed:!1,styleTag:null,toElement:te(i,r),toHTML:ee(i,r)}},ae=function(e,t,n,r,o){if(C&&!n){var a=function(e,t,n){var r=document;e?r=e.ownerDocument:t&&(r=t.ownerDocument);var o=r.createElement("style");o.setAttribute(j,""),o.setAttribute("data-styled-version","4.4.0");var a=G();if(a&&o.setAttribute("nonce",a),o.appendChild(r.createTextNode("")),e&&!t)e.appendChild(o);else{if(!t||!e||!t.parentNode)throw new M(6);t.parentNode.insertBefore(o,n?t:t.nextSibling)}return o}(e,t,r);return P?function(e,t){var n=Object.create(null),r=Object.create(null),o=void 0!==t,a=!1,i=function(t){var o=r[t];return void 0!==o?o:(r[t]=re(e.ownerDocument,t),e.appendChild(r[t]),n[t]=Object.create(null),r[t])},s=function(){var e="";for(var t in r)e+=r[t].data;return e};return{clone:function(){throw new M(5)},css:s,getIds:ne(r),hasNameForId:K(n),insertMarker:i,insertRules:function(e,r,s){for(var l=i(e),c=[],u=r.length,f=0;f0&&(a=!0,t().insertRules(e+"-import",c))},removeRules:function(i){var s=r[i];if(void 0!==s){var l=re(e.ownerDocument,i);e.replaceChild(l,s),r[i]=l,X(n,i),o&&a&&t().removeRules(i+"-import")}},sealed:!1,styleTag:e,toElement:te(s,n),toHTML:ee(s,n)}}(a,o):function(e,t){var n=Object.create(null),r=Object.create(null),o=[],a=void 0!==t,i=!1,s=function(e){var t=r[e];return void 0!==t?t:(r[e]=o.length,o.push(0),X(n,e),r[e])},l=function(){var t=q(e).cssRules,n="";for(var a in r){n+=J(a);for(var i=r[a],s=Q(o,i),l=s-o[i];l0&&(i=!0,t().insertRules(r+"-import",h)),o[u]+=d,Y(n,r,c)},removeRules:function(s){var l=r[s];if(void 0!==l&&!1!==e.isConnected){var c=o[l];!function(e,t,n){for(var r=t-n,o=t;o>r;o-=1)e.deleteRule(o)}(q(e),Q(o,l)-1,c),o[l]=0,X(n,s),a&&i&&t().removeRules(s+"-import")}},sealed:!1,styleTag:e,toElement:te(l,n),toHTML:ee(l,n)}}(a,o)}return oe()},ie=/\s+/,se=void 0;se=C?P?40:1e3:-1;var le=0,ce=void 0,ue=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C?document.head:null,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];b(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var n=t.tags[0];return t.importRuleTag=ae(t.target,n?n.styleTag:null,t.forceServer,!0)},le+=1,this.id=le,this.forceServer=r,this.target=r?null:n,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!C||this.forceServer)return this;var e=[],t=[],n=!1,r=document.querySelectorAll("style["+j+'][data-styled-version="4.4.0"]'),o=r.length;if(!o)return this;for(var a=0;a0&&void 0!==arguments[0]&&arguments[0];ce=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map((function(e){for(var n=e.getIds(),r=e.clone(),o=0;o1?t-1:0),r=1;r=4;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),n-=4,++o;switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+((1540483477*(r>>>16)&65535)<<16)}return((r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16))^r>>>15)>>>0}var xe=function(e){return String.fromCharCode(e+(e>25?39:97))};function we(e){var t="",n=void 0;for(n=e;n>52;n=Math.floor(n/52))t=xe(n%52)+t;return xe(n%52)+t}function Oe(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:k,r=!!n&&e.theme===n.theme,o=e.theme&&!r?e.theme:t||n.theme;return o},je=/[[\].#*$><+~=|^:(),"'`-]+/g,Ce=/(^-|-$)/g;function Pe(e){return e.replace(je,"-").replace(Ce,"")}function Me(e){return"string"==typeof e&&!0}var Ae={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},Te={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},De=((ke={})[u.ForwardRef]={$$typeof:!0,render:!0},ke),Ne=Object.defineProperty,Ie=Object.getOwnPropertyNames,Le=Object.getOwnPropertySymbols,Re=void 0===Le?function(){return[]}:Le,Fe=Object.getOwnPropertyDescriptor,He=Object.getPrototypeOf,ze=Object.prototype,Be=Array.prototype;function Ue(e,t,n){if("string"!=typeof t){var r=He(t);r&&r!==ze&&Ue(e,r,n);for(var o=Be.concat(Ie(t),Re(t)),a=De[e.$$typeof]||Ae,i=De[t.$$typeof]||Ae,s=o.length,l=void 0,c=void 0;s--;)if(c=o[s],!(Te[c]||n&&n[c]||i&&i[c]||a&&a[c])&&(l=Fe(t,c)))try{Ne(e,c,l)}catch(e){}return e}return e}var Ve=Object(s.createContext)(),We=Ve.Consumer,Ge=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext.bind(r)),r.renderInner=r.renderInner.bind(r),r}return y(t,e),t.prototype.render=function(){return this.props.children?l.a.createElement(Ve.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return l.a.createElement(Ve.Provider,{value:t},this.props.children)},t.prototype.getTheme=function(e,t){if(E(e))return e(t);if(null===e||Array.isArray(e)||"object"!==(void 0===e?"undefined":m(e)))throw new M(8);return g({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)},t}(s.Component),Ye=(function(){function e(){b(this,e),this.masterSheet=ue.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new M(2);return l.a.createElement(Ke,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new M(3)}}(),Object(s.createContext)()),Xe=Ye.Consumer,Ke=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext),r}return y(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new ue(t);throw new M(4)},t.prototype.render=function(){var e=this.props,t=e.children,n=e.sheet,r=e.target;return l.a.createElement(Ye.Provider,{value:this.getContext(n,r)},t)},t}(s.Component),$e={};var qe=function(e){function t(){b(this,t);var n=x(this,e.call(this));return n.attrs={},n.renderOuter=n.renderOuter.bind(n),n.renderInner=n.renderInner.bind(n),n}return y(t,e),t.prototype.render=function(){return l.a.createElement(Xe,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ue.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():l.a.createElement(We,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,n=t.componentStyle,r=t.defaultProps,o=(t.displayName,t.foldedComponentIds),a=t.styledComponentId,i=t.target,l=(t.usesTheme,void 0),c=void 0;n.isStatic?l=this.generateAndInjectStyles(k,this.props):(c=_e(this.props,e,r),l=this.generateAndInjectStyles(c||k,this.props));var u=this.props.as||this.attrs.as||i,f=Me(u),d={},h=g({},this.props,this.attrs),m=void 0;for(m in h)"forwardedComponent"!==m&&"as"!==m&&("forwardedRef"===m?d.ref=h[m]:"forwardedAs"===m?d.as=h[m]:f&&!Object(p.a)(m)||(d[m]=h[m]));return this.props.style&&this.attrs.style&&(d.style=g({},this.attrs.style,this.props.style)),d.className=Array.prototype.concat(o,a,l!==a?l:null,this.props.className,this.attrs.className).filter(Boolean).join(" "),Object(s.createElement)(u,d)},t.prototype.buildExecutionContext=function(e,t,n){var r=this,o=g({},t,{theme:e});return n.length?(this.attrs={},n.forEach((function(e){var t,n=e,a=!1,i=void 0,s=void 0;for(s in E(n)&&(n=n(o),a=!0),n)i=n[s],a||!E(i)||(t=i)&&t.prototype&&t.prototype.isReactComponent||_(i)||(i=i(o)),r.attrs[s]=i,o[s]=i})),o):o},t.prototype.generateAndInjectStyles=function(e,t){var n=t.forwardedComponent,r=n.attrs,o=n.componentStyle;n.warnTooManyClasses;return o.isStatic&&!r.length?o.generateAndInjectStyles(k,this.styleSheet):o.generateAndInjectStyles(this.buildExecutionContext(e,t,r),this.styleSheet)},t}(s.Component);function Ze(e,t,n){var r=_(e),o=!Me(e),a=t.displayName,i=void 0===a?function(e){return Me(e)?"styled."+e:"Styled("+S(e)+")"}(e):a,s=t.componentId,c=void 0===s?function(e,t,n){var r="string"!=typeof t?"sc":Pe(t),o=($e[r]||0)+1;$e[r]=o;var a=r+"-"+e.generateName(r+o);return n?n+"-"+a:a}(Se,t.displayName,t.parentComponentId):s,u=t.ParentComponent,f=void 0===u?qe:u,p=t.attrs,h=void 0===p?O:p,m=t.displayName&&t.componentId?Pe(t.displayName)+"-"+t.componentId:t.componentId||c,b=r&&e.attrs?Array.prototype.concat(e.attrs,h).filter(Boolean):h,v=new Se(r?e.componentStyle.rules.concat(n):n,b,m),y=void 0,x=function(e,t){return l.a.createElement(f,g({},e,{forwardedComponent:y,forwardedRef:t}))};return x.displayName=i,(y=l.a.forwardRef(x)).displayName=i,y.attrs=b,y.componentStyle=v,y.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):O,y.styledComponentId=m,y.target=r?e.target:e,y.withComponent=function(e){var r=t.componentId,o=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(t,["componentId"]),a=r&&r+"-"+(Me(e)?e:Pe(S(e)));return Ze(e,g({},o,{attrs:b,componentId:a,ParentComponent:f}),n)},Object.defineProperty(y,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Object(d.a)(e.defaultProps,t):t}}),y.toString=function(){return"."+y.styledComponentId},o&&Ue(y,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),y}var Je=function(e){return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:k;if(!Object(u.isValidElementType)(n))throw new M(1,String(n));var o=function(){return t(n,r,ge.apply(void 0,arguments))};return o.withConfig=function(o){return e(t,n,g({},r,o))},o.attrs=function(o){return e(t,n,g({},r,{attrs:Array.prototype.concat(r.attrs,o).filter(Boolean)}))},o}(Ze,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){Je[e]=Je(e)}));!function(){function e(t,n){b(this,e),this.rules=t,this.componentId=n,this.isStatic=Oe(t,O),ue.master.hasId(n)||ue.master.deferredInject(n,[])}e.prototype.createStyles=function(e,t){var n=W(ve(this.rules,e,t),"");t.inject(this.componentId,n)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)}}();C&&(window.scCGSHMRCache={});var Qe=function(e){var t=l.a.forwardRef((function(t,n){return l.a.createElement(We,null,(function(r){var o=e.defaultProps,a=_e(t,r,o);return l.a.createElement(e,g({},t,{theme:a,ref:n}))}))}));return Ue(t,e),t.displayName="WithTheme("+S(e)+")",t};t.c=Je}).call(this,n(63))},function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a})),n.d(t,"e",(function(){return i})),n.d(t,"d",(function(){return s}));var r={PRIMARY:"#ABE2FB",SECONDARY:"#E6E6E6",DARKER_PRIMARY:"#87ceeb",OFF_WHITE:"#15181A",GREY:"#D3D3D3",RED:"#FF5E5E",DARK_GREY:"#535D63"},o=270,a=Math.PI/180,i={primary:r.PRIMARY,secondary:r.SECONDARY,detail:r.GREY,dark:!1},s={primary:r.PRIMARY,secondary:r.DARK_GREY,detail:r.DARK_GREY,dark:!0}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return a}));var r=n(30),o=function(e,t){return"daq-"+e+(t&&t.dark?"--dark":"--light")},a=function(e){return Object(r.a)(["className","id","setProps","style"],e)}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(71),a=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,a.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(95),a=(r=o)&&r.__esModule?r:{default:r};t.default=a.default||function(e){for(var t=1;t1?arguments[1]:void 0,b=void 0!==m,v=0,g=u(p);if(b&&(m=r(m,h>2?arguments[2]:void 0,2)),null==g||d==Array&&s(g))for(n=new d(t=l(p.length));t>v;v++)c(n,v,b?m(p[v],v):p[v]);else for(f=g.call(p),n=new d;!(o=f.next()).done;v++)c(n,v,b?i(f,m,[o.value,v],!0):o.value);return n.length=v,n}})},function(e,t,n){var r=n(26);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var a=e.return;throw void 0!==a&&r(a.call(e)),t}}},function(e,t,n){var r=n(35),o=n(16)("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||a[o]===e)}},function(e,t,n){"use strict";var r=n(19),o=n(33);e.exports=function(e,t,n){t in e?r.f(e,t,o(0,n)):e[t]=n}},function(e,t,n){var r=n(147),o=n(16)("iterator"),a=n(35);e.exports=n(10).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||a[r(e)]}},function(e,t,n){var r=n(45),o=n(16)("toStringTag"),a="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,i;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:a?r(t):"Object"==(i=r(t))&&"function"==typeof t.callee?"Arguments":i}},function(e,t,n){var r=n(16)("iterator"),o=!1;try{var a=[7][r]();a.return=function(){o=!0},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var a=[7],i=a[r]();i.next=function(){return{done:n=!0}},a[r]=function(){return i},e(a)}catch(e){}return n}},function(e,t,n){(function(t){(function(){var n,r,o,a,i,s;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:null!=t&&t.hrtime?(e.exports=function(){return(n()-i)/1e6},r=t.hrtime,a=(n=function(){var e;return 1e9*(e=r())[0]+e[1]})(),s=1e9*t.uptime(),i=a-s):Date.now?(e.exports=function(){return Date.now()-o},o=Date.now()):(e.exports=function(){return(new Date).getTime()-o},o=(new Date).getTime())}).call(this)}).call(this,n(63))},function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}(e.exports="function"==typeof Object.keys?Object.keys:n).shim=n},function(e,t){var n="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();function r(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function o(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}(t=e.exports=n?r:o).supported=r,t.unsupported=o},function(e,t,n){var r=n(153),o=n(154);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[e.i,o,""]]);var a={insert:function(e){document.head.insertBefore(e,document.head.firstElementChild)},singleton:!1},i=(r(o,a),o.locals?o.locals:{});e.exports=i},function(e,t,n){"use strict";var r,o=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},a=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),i=[];function s(e){for(var t=-1,n=0;n0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;if(isNaN(e))return e;var n=t.toString().split("."),r=ke(n,2),o=(r[0],r[1]),a=o?o.length:0;return e.toFixed(a)},_e=function(e){var t=e.min,n=e.max,r=e.value;return null==r||rn?n:r},je=function(e){var t=e.min,n=e.max,r=e.value,o=e.progressionTarget,a=void 0===o?100:o;return r=Number(r),1*Math.abs(r-t)/Math.abs(n-t)*a},Ce=function(e,t){return Number(Math.round(e+"e"+t)+"e-"+t)},Pe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9999;return Math.floor(Math.random()*(t-e+1))+e},Me=n(81),Ae=n.n(Me);function Te(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e))&&"[object Arguments]"!==Object.prototype.toString.call(e))return;var n=[],r=!0,o=!1,a=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function De(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);ta&&f.push({key:p,subKey:o,index:0}),n[p][1]>a&&f.push({key:p,subKey:o,index:1}),n[p][0]i&&(n[p][0]=i),s[0]==n[p][1]&&n[p][1]>i&&(n[p][1]=i),s[s.length-1]==n[p][0]&&n[p][0]1&&void 0!==arguments[1]?arguments[1]:10;return"e"===t&&(t=Math.exp(1)),Math.log(e)/Math.log(t)},generateLogFormatter:function(e){var t=e.base,n=void 0===t?10:t,r=e.isSVG,a=void 0!==r&&r;return function(e){return a?o.a.createElement("tspan",null,n,o.a.createElement("tspan",{dy:"-6px"},e)):o.a.createElement("span",null,n,o.a.createElement("sup",null,e))}},formatValue:function(e,t){return o.a.createElement(Yt,null,"~",t,o.a.createElement("sup",null,Ce(e,2)))},genLogMarks:function(e,t){var n=e.min,r=e.max,a=e.step,i=void 0===a?1:a,s=e.base,l=void 0===s?10:s,c=e.marks;if(!c){var u=n;for(c={};u<=r;)c[u]=!0,u+=i}return Object.keys(c).forEach((function(e){"boolean"==typeof c[e]&&(c[e]=t?o.a.createElement("tspan",null,l,o.a.createElement("tspan",{dy:"-6px"},e)):o.a.createElement("span",null,l,o.a.createElement("sup",null,e)))})),c}};function Kt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qt(e){var t=function(e){var t=e.min,n=e.max,r=e.scale,o=void 0===r?{}:r,a=e.formatter,i={},s=null!=o.start,l=null!=o.interval,c=null!=o.labelInterval;i.min=t,i.max=n,i.start=s?o.start:t,i.interval=l?o.interval:function(e,t){var n=Math.ceil,r=1*Math.abs(t-e)/10;return r>1?n(r):(o=r,Number(o.toFixed(2)));var o}(i.start,n),i.labelInterval=c?o.labelInterval:2,i.custom=o.custom||{},i.formatter=a||Zt;var u=!s&&!l&&!c,f=Object.keys(i.custom).length;return i.onlyRenderCustom=f&&u,i.start=i.start!=t?t:i.start,i}(e),n=function(e){for(var t=1;to){h.current.innerHTML=e.exceedMessage?"string"==typeof e.exceedMessage?e.exceedMessage:e.exceedMessage(r,o)||"":""}else if(r=10?.05*n:.5,o=n-2*r;return Object(s.b)(cn(),e.vertical?"".concat(o,"px"):"100%",e.vertical?"100%":"".concat(o,"px"),e.vertical?"".concat(r,"px 0"):"0 ".concat(r,"px"))}),(function(e){return e.theme.dark&&Sn}));En.defaultProps={theme:c.e};var Sn=Object(s.b)(ln(),(function(e){var t=e.color,n=e.theme;if(!e.gradient)return Object(s.b)(sn(),t||n.primary)}),(function(e){var t=e.color,n=e.theme;return"2px 2px 6px 1px rgba(0, 0, 0, 0.45), inset 1px 1px 2px 0 rgba(255, 255, 255, 0.3),\n 1px 1px 1px 0px rgba(0, 0, 0, 0.6), 0 0 3px 0px ".concat(t||n.primary)})),_n=s.c.div(an(),(function(e){return e.vertical?Object(s.b)(on()):""}));function jn(){return(jn=Object.assign||function(e){for(var t=1;t=n[0]&&e<=n[1]}))[0];return n&&n[0]},Dn=function(e){var t=e.step,n=e.min,r=e.max,a=e.label,i=e.labelPosition,s=e.id,l=e.className,c=e.color,u=e.size,f=e.style,p=e.showCurrentValue,d=e.vertical,h=e.theme,m=e.value||n,b=null,v=[],g=Math.max(Math.min(r,m),n);c.gradient&&Re({color:c,min:n,max:r})&&(b=function(e){var t=e.color,n=e.min,r=e.max,o=0,a=Be(t.ranges).map((function(e){var t=Te(e,2),a=t[0],i=t[1],s=1*(i[1]-i[0])/(r-n),l=o;return o=o+s,{color:a,pos:l}}));return Ae()(a)}({color:c,min:n,max:r}));for(var y=Object(q.a)("graduatedbar",h),x=Object(q.b)(e),w=n;wthis.props.min&&ee?this.props.min:this.props.max}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){void 0!==e.value&&this.setState({value:e.value}),this.state.max!=e.max&&this.setState({max:e.max instanceof Number?e.max:this.state.max}),this.state.min!=e.min&&this.setState({min:e.min instanceof Number?e.min:this.state.min})}},{key:"componentDidMount",value:function(){window.addEventListener("mouseup",this.onMouseUp,!1),n(42)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("mouseup",this.onMouseUp,!1)}},{key:"onMouseDown",value:function(){this.setState({isDragging:!0})}},{key:"onMouseUp",value:function(){this.state.isDragging&&this.setState((function(e){return{rotation:e.currentDeg,isDragging:!1,startAngle:-1}}))}},{key:"onMouseMove",value:function(e){if(this.state.isDragging){var t=this.props,n=t.min,r=t.max,o=this.state.rotation,a=this.state.startAngle;e.touches&&(e=e.touches[0]);var i=this.knobElement.getBoundingClientRect(),s=i.width/2+i.left,l=i.height/2+i.top,u=Math.atan2(e.clientX-s,e.clientY-l)*(180/Math.PI);e.clientX-s>=0?u=Math.abs(360-u)+180:u-=180,u=Math.abs(u),-1===a&&(a=u,this.setState({startAngle:a}));var f=Math.floor(u-a+o);f=Math.min(f,c.b),f=Math.max(f,0),this.setState({currentDeg:f}),this.setValue(Ce(function(e){var t=e.min,n=e.max,r=e.deg;return je({min:0,max:c.b,value:r,progressionTarget:n-t})+t}({min:n,max:r,deg:f}),2))}}},{key:"setValue",value:function(e){this.setState({value:e}),this.props.setProps&&this.props.setProps({value:e})}},{key:"render",value:function(){var e=this,t=this.props,n=t.min,r=t.max,a=t.value,i=void 0===a?this.props.min:a,s=this.props,l=s.id,c=s.className,u=s.labelPosition,f=s.color,p=s.style,d=s.disabled,h=s.theme,m=s.textColor,b=je({min:n,max:r,value:this.getValue(i),progressionTarget:1}),v=m||Ve(f),g=Object(q.a)("knob",h),y=Object(q.b)(this.props),x=o.a.createElement(o.a.Fragment,null,o.a.createElement(gt,{className:g+"__current-value",valueColor:v,valueSize:Math.min(13.3333*(this.props.size+32)/100,32),units:!1,css:"transform: translateY(0%); top: 0;"},i.toFixed(this.props.digits)));return o.a.createElement("div",{id:l,className:g+(c?" "+c:""),style:p},o.a.createElement($.a,Kn({className:g+"__label"},y,{labelCSS:"top"===u?null:"transform: translateY(-40px);"}),o.a.createElement(Yn,{className:g+"__container",colorValue:v,color:Ve(f)},this.props.showCurrentValue&&x,o.a.createElement(Fn,Kn({progress:b},y,this.state,{min:this.props.min!=this.state.min?this.props.min:this.state.min,max:this.props.max!=this.state.max?this.props.max:this.state.max,value:this.getValue(i),scale:qt(this.props),currentDeg:Qn({min:this.props.min,max:this.props.max,value:this.getValue(i)}),refFunc:function(t){return e.knobElement=t},onMouseDown:d?this.noop:this.onMouseDown,onMouseUp:d?this.noop:this.onMouseUp,onMouseMove:d?this.noop:this.onMouseMove})))))}}])&&$n(r.prototype,a),i&&$n(r,i),t}(r.Component);er.defaultProps={min:0,max:10,theme:c.e,labelPosition:"top",persisted_props:["value"],persistence_type:"local",size:114},er.propTypes={id:i.a.string,value:i.a.number,color:i.a.oneOfType([i.a.string,i.a.shape({default:i.a.string,gradient:i.a.bool,ranges:i.a.shape({color:i.a.arrayOf(i.a.number)})})]),size:i.a.number,min:i.a.number,max:i.a.number,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),scale:i.a.shape({start:i.a.number,interval:i.a.number,labelInterval:i.a.number,custom:i.a.oneOfType([i.a.number,i.a.shape({style:i.a.string,label:i.a.string})])}),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"]),showCurrentValue:i.a.bool,textColor:i.a.string,digits:i.a.number};var tr=Object(s.d)(er);tr.defaultProps=er.defaultProps;var nr=tr;function rr(){var e=lr(["\n & .darkLED-fill {\n fill: ",";\n }\n"]);return rr=function(){return e},e}function or(){var e=lr(["\n border-radius: 3px;\n padding: 12px 8px 12px 14px;\n border: 1px solid ",";\n background: ",";\n"]);return or=function(){return e},e}function ar(){var e=lr(["\n padding: 12px 8px 4px 16px;\n background-color: #22272a;\n background-image: linear-gradient(145deg, rgba(255, 255, 255, 0.05) 0%, rgba(0, 0, 0, 0.5) 100%);\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1);\n"]);return ar=function(){return e},e}function ir(){var e=lr(["\n background-color: ",";\n "]);return ir=function(){return e},e}function sr(){var e=lr(["\n display: inline-flex;\n flex-direction: row;\n ",";\n ","\n"]);return sr=function(){return e},e}function lr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var cr=s.c.div(sr(),(function(e){return e.theme.dark?ur:fr}),(function(e){var t=e.backgroundColor;return Object(s.b)(ir(),t)})),ur=Object(s.b)(ar()),fr=Object(s.b)(or(),(function(e){return e.theme.detail}),(function(e){return e.backgroundColor}));cr.defaultProps={theme:c.e};var pr=s.c.div(rr(),(function(e){return e.color})),dr={0:["A","B","C","D","E","F"],1:["B","C"],2:["A","B","G","E","D"],3:["A","B","G","C","D"],4:["F","G","B","C"],5:["A","F","G","C","D"],6:["A","F","G","C","D","E"],7:["A","B","C"],8:["A","B","C","D","E","F","G"],9:["A","B","C","D","F","G"],"-":["G"]},hr={A:{base:"M3.778 3.778L6.555 1h16.667L26 3.778l-2.778 2.778H6.555L3.778 3.778z",stroke:"M3.778 3.778L6.555 1h16.667L26 3.778l-2.778 2.778H6.555L3.778 3.778z"},B:{base:"M26 3.778l2.778 2.777v16.667L26 26l-2.778-2.778V6.555L26 3.778z",stroke:"M26 3.778l2.778 2.777v16.667L26 26l-2.778-2.778V6.555L26 3.778z"},C:{base:"M26 26l2.778 2.778v16.666L26 48.222l-2.778-2.778V28.778L26 26z",stroke:"M26 26l2.778 2.778v16.666L26 48.222l-2.778-2.778V28.778L26 26z"},D:{base:"M26 48.222L23.222 51H6.555l-2.777-2.778 2.777-2.778h16.667L26 48.222z",stroke:"M26 48.222L23.222 51H6.555l-2.777-2.778 2.777-2.778h16.667L26 48.222z"},E:{base:"M3.778 48.222L1 45.444V28.778L3.778 26l2.778 2.778v16.666l-2.778 2.778z",stroke:"M3.778 48.222L1 45.444V28.778L3.778 26l2.778 2.778v16.666l-2.778 2.778z"},F:{base:"M3.778 26L1 23.222V6.555l2.778-2.777 2.778 2.777v16.667L3.778 26z",stroke:"M3.778 26L1 23.222V6.555l2.778-2.777 2.778 2.777v16.667L3.778 26z"},G:{base:"M3.778 26l2.777-2.778h16.667L26 26l-2.778 2.778H6.555L3.778 26z",stroke:"M3.778 26l2.777-2.778h16.667L26 26l-2.778 2.778H6.555L3.778 26z"}},mr=function(e){var t=e.paths,n=t.base,r=t.stroke,a=e.fillColor,i=e.strokeColor;return o.a.createElement("g",null,o.a.createElement("path",{fill:a,fillRule:"evenodd",d:n,clipRule:"evenodd"}),o.a.createElement("path",{stroke:i,strokeWidth:".75",d:r}))},br=function(e){var t=e.fillColor,n=e.strokeColor;return o.a.createElement("g",{transform:"translate(29 46)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"}))},vr=function(e){var t=e.fillColor,n=e.strokeColor;return o.a.createElement("g",null,o.a.createElement("g",{transform:"translate(32 36)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"})),o.a.createElement("g",{transform:"translate(32 9)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"})))},gr=function(e){var t=e.value,n=e.hasColon,r=e.hasDecimal,a=e.color,i=e.backgroundColor,s=e.size,l=e.className,c=xt()(i).darken(.2).fade(.85),u=dr[t].map((function(e){return o.a.createElement(mr,{key:e,fillColor:a,strokeColor:i,paths:hr[e]})})),f=["A","B","C","D","E","F","G"].map((function(e){return o.a.createElement(mr,{key:e,fillColor:c,strokeColor:i,paths:hr[e]})})),p=n?s:s*(6/7),d=s*(9/7);return o.a.createElement("div",{className:l},o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:p,height:d},o.a.createElement("g",{fill:"none",style:{transform:"scale(".concat(Number(s)/42,")")}},f,u,n&&o.a.createElement(vr,{fillColor:a,strokeColor:i}),r&&o.a.createElement(br,{fillColor:a,strokeColor:i}))))},yr=function(e){var t=e.value,n=e.hasColon,r=e.hasDecimal,a=e.color,i=e.size,s=e.className,l=dr[t].map((function(e){return ye[e]})),c=n?i:i*(6/7),u=i*(9/7);return o.a.createElement(pr,{className:s,color:a},o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:c,height:u},ge,o.a.createElement("g",{fill:"none",fillRule:"evenodd",filter:"url(#darkLED-a)",style:{transform:"scale(".concat(Number(i)/42,")")}},l,n&&we,r&&xe)))},xr=function(e){return e.theme.dark?o.a.createElement(yr,e):o.a.createElement(gr,e)},wr=/^(\-)?((\.|:)?[0-9])*$/,Or=wr.test.bind(wr),kr=function(e){var t=Object(q.a)("leddisplay",e.theme),n=Or(e.value)?function(e,t){var n=e.value,r=e.color,a=e.backgroundColor,i=e.theme,s=e.size,l=n.toString().split("").reverse(),c=[];!function(e){var t=!1;"-"===e[e.length-1]&&(t=!0,e.pop());var n=e[e.length-1];[".",":"].includes(n)&&e.push("0");t&&e.push("-")}(l);var u=0;for(;l.length;){var f=l.pop(),p=l.pop();c.push(o.a.createElement(xr,{className:t+"__digit",theme:i,key:u++,value:f,hasColon:":"===p,hasDecimal:"."===p,color:r,backgroundColor:a,size:s})),p&&"."!==p&&":"!==p&&l.push(p)}return c}(e,t):null,r=o.a.createElement(cr,{backgroundColor:e.backgroundColor},n),a=Object(q.b)(e);return o.a.createElement("div",{id:e.id,className:t+(e.className?" "+e.className:""),style:e.style},o.a.createElement($.a,a,n?r:"Invalid Input"))};kr.defaultProps={color:c.c.PRIMARY,backgroundColor:"#fff",size:42,theme:c.e,labelPosition:"top"},kr.propTypes={id:i.a.string,value:i.a.oneOfType([i.a.number,i.a.string]),color:i.a.string,backgroundColor:i.a.string,size:i.a.number,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object};var Er=Object(s.d)(kr),Sr=n(15),_r=n.n(Sr);_r.a.prototype.UNSAFE_componentWillMount=_r.a.prototype.componentWillMount,_r.a.prototype.UNSAFE_componentWillReceiveProps=_r.a.prototype.componentWillReceiveProps,_r.a.prototype.UNSAFE_componentWillUpdate=_r.a.prototype.componentWillUpdate,delete _r.a.prototype.componentWillMount,delete _r.a.prototype.componentWillReceiveProps,delete _r.a.prototype.componentWillUpdate;var jr=_r.a;function Cr(e){return(Cr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Pr(){return(Pr=Object.assign||function(e){for(var t=1;t=this.props.min&&e<=this.props.max&&(this.setState({value:e}),this.props.setProps&&this.props.setProps({value:e}))}},{key:"render",value:function(){var e=this.props,t=e.size,n=e.theme,r=e.style,a=e.className,i=e.id,s=e.disabled,l=e.min,u=e.max,f={background:"none",boxShadow:"none",border:"none",color:n.secondary,cursor:"pointer"},p=Math.max(this.state.value?16-2*this.state.value.toString().length:16,10),d={borderRadius:3,border:n.dark?"none":"1px solid ".concat(c.c.GREY),outline:"none",paddingRight:p,paddingLeft:p,paddingTop:8,paddingBottom:8,width:t||56,color:n.dark?"#fff":c.c.OFF_WHITE,backgroundColor:n.dark?"#22272a":"#fff",fontSize:14,boxSizing:"border-box"},h=Object(q.a)("numericinput",n),m=Object(q.b)(this.props);return o.a.createElement("div",{id:i,className:h+(a?" "+a:""),style:r},o.a.createElement($.a,Pr({className:h+"__label"},m),o.a.createElement(jr,{className:h+"__input",disabled:s,style:{input:d,"input:not(.form-control)":d,btn:f,"btn:hover":f,"btn:active":f,"input:disabled":{opacity:.65,cursor:"not-allowed"}},min:l,max:u,value:this.state.value,onChange:this.setValue,mobile:!1})))}}])&&Mr(n.prototype,r),a&&Mr(n,a),t}(r.Component);Nr.defaultProps={min:0,max:10,theme:c.e,labelPosition:"top",persisted_props:["value"],persistence_type:"local",style:{display:"flex",justifyContent:"center"}},Nr.propTypes={id:i.a.string,value:i.a.number,size:i.a.number,min:i.a.number,max:i.a.number,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"])};var Ir=Object(s.d)(Nr);Ir.defaultProps=Nr.defaultProps;var Lr=Ir;function Rr(){var e=Wr(["\n box-shadow: 0 0 8px 2px ",";\n "]);return Rr=function(){return e},e}function Fr(){var e=Wr(["\n width: ","px;\n height: ","px;\n "]);return Fr=function(){return e},e}function Hr(){var e=Wr(["\n "," border-radius: 100%;\n padding: 0;\n margin-bottom: 8px;\n\n &::before,\n &::after {\n left: 4%;\n border-radius: 100%;\n transition: all 0.1s ease-in;\n }\n\n &::before {\n top: 8%;\n width: 86%;\n height: 86%;\n }\n\n &::after {\n top: 4%;\n width: 92%;\n height: 92%;\n\n ",";\n }\n\n &:hover::before {\n background-color: rgba(0, 0, 0, 0.8);\n }\n\n &:hover::after {\n box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.66);\n }\n\n &:focus::after,\n &:active::after {\n box-shadow: ",";\n }\n"]);return Hr=function(){return e},e}function zr(){var e=Wr(["\n width: ","px;\n height: ","px;\n "]);return zr=function(){return e},e}function Br(){var e=Wr(["\n border-radius: 50%;\n box-sizing: border-box;\n background: #fff;\n border: 1px solid ",";\n "," margin-bottom: ",";\n padding: 0;\n\n &:focus,\n &:hover {\n border-color: ",";\n }\n"]);return Br=function(){return e},e}function Ur(){var e=Wr(["\n cursor: pointer;\n outline: none;\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:disabled {\n opacity: ",";\n cursor: not-allowed;\n }\n\n ",";\n"]);return Ur=function(){return e},e}function Vr(){var e=Wr(["\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n\n & svg {\n margin: 0 auto;\n }\n"]);return Vr=function(){return e},e}function Wr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Gr=Object(s.c)("div")(Vr()),Yr=s.c.button(Ur(),(function(e){return e.theme.dark?1:.65}),(function(e){return e.theme.dark?Kr:Xr})),Xr=Object(s.b)(Br(),(function(e){return e.theme.secondary}),(function(e){var t=e.size;return Object(s.b)(zr(),t,t)}),(function(e){var t=e.size;return"".concat(.0625*t,"px")}),(function(e){return e.theme.secondary})),Kr=Object(s.b)(Hr(),(function(e){var t=e.size;return Object(s.b)(Fr(),t,t)}),(function(e){var t=e.on,n=e.color,r=e.theme;return t?Object(s.b)(Rr(),n||r.primary):""}),(function(e){var t=e.on,n=e.color,r=e.theme;return t?"0 0 8px 2px ".concat(n||r.primary):"0 0 3px 0 rgba(0,0,0,0.66)"}));Yr.defaultProps={theme:c.e};var $r=function(e){var t=e.color,n=e.theme,r=e.on,a=e.size;return o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:a,height:a,viewBox:"0 0 14 14"},o.a.createElement("path",{fill:r?t||n.primary:n.secondary,fillRule:"evenodd",d:"M24.5173333,14.68 C25.2764482,15.3271143 25.8799978,16.1111065 26.328,17.032 C26.7760022,17.9777825 27,18.9671059 27,20 C27,21.2693397 26.6826698,22.4453279 26.048,23.528 C25.4257747,24.5857831 24.5857831,25.4257747 23.528,26.048 C22.4453279,26.6826698 21.2693397,27 20,27 C18.7306603,27 17.5546721,26.6826698 16.472,26.048 C15.4142169,25.4257747 14.5742253,24.5857831 13.952,23.528 C13.3173302,22.4453279 13,21.2693397 13,20 C13,18.9671059 13.2302199,17.9777825 13.6906667,17.032 C14.1262244,16.1111065 14.7235518,15.3271143 15.4826667,14.68 L16.5653333,15.7626667 C15.9555525,16.2728914 15.4764462,16.8888853 15.128,17.6106667 C14.7546648,18.3697816 14.568,19.1662181 14.568,20 C14.568,20.9955605 14.8106642,21.9102181 15.296,22.744 C15.7813358,23.5653374 16.4346626,24.2186642 17.256,24.704 C18.0897819,25.1893358 19.0044395,25.432 20,25.432 C20.9955605,25.432 21.9102181,25.1893358 22.744,24.704 C23.5653374,24.2186642 24.2186642,23.5653374 24.704,22.744 C25.1893358,21.9102181 25.432,20.9955605 25.432,20 C25.432,19.1537735 25.2546684,18.3666703 24.9,17.6386667 C24.5453316,16.910663 24.056892,16.2977803 23.4346667,15.8 L24.5173333,14.68 Z M20.7653333,13 L20.7653333,20.7653333 L19.2346667,20.7653333 L19.2346667,13 L20.7653333,13 Z",transform:"translate(-13 -13)"}))};$r.defaultProps={theme:c.e};var qr=$r;function Zr(e){return(Zr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Jr(){return(Jr=Object.assign||function(e){for(var t=1;t=this.props.min&&e<=this.props.max){var t=this.formatPrecision(e);this.setState({value:t}),this.props.setProps&&this.props.setProps({value:t})}}},{key:"toggleInput",value:function(){if(!this.props.disabled){var e=!this.state.isInput;this.setState({isInput:e}),e&&this.setState({tempValue:this.state.value})}}},{key:"setTempValue",value:function(e){this.setState({tempValue:e})}},{key:"blur",value:function(){null!=this.state.tempValue&&this.setValue(this.state.tempValue),this.setState({tempValue:null}),this.toggleInput()}},{key:"render",value:function(){var e,t=this.props,n=t.id,r=t.className,a=t.style,i=t.size,s=t.theme,l=t.disabled,u=t.precision,f=t.min,p=t.max,d={background:"none",boxShadow:"none",border:"none",color:s.secondary,cursor:"pointer"},h=this.state.value?16-2*this.state.value.toString().length:16,m=Math.max(h,10),b={borderRadius:3,border:s.dark?"none":"1px solid ".concat(c.c.GREY),outline:"none",paddingRight:m,paddingLeft:m,paddingTop:4,paddingBottom:4,width:i||56+20*u,height:36,backgroundColor:s.dark?"#22272a":"#fff",color:s.dark?"#fff":"#000",fontSize:14,lineHeight:14,boxSizing:"border-box"},v=Object(q.a)("precisioninput",s.dark),g=Object(q.b)(this.props);return e=this.state.isInput?o.a.createElement(jr,{autoFocus:!0,className:v+"__input",disabled:l,style:{input:b,"input:not(.form-control)":b,btn:d,"btn:hover":d,"btn:active":d,"input:disabled":{opacity:.65,cursor:"not-allowed"}},min:f,max:p,value:this.state.tempValue,onChange:this.setTempValue,onBlur:this.blur}):o.a.createElement(No,{elementName:v+"__output",value:this.state.value,size:i,onClick:this.toggleInput,color:s.dark?"#fff":c.c.OFF_WHITE}),o.a.createElement("div",{id:n,className:v+(r?" "+r:""),style:Object.assign({},Ao,a)},o.a.createElement($.a,_o({className:v+"__label"},g),e))}}])&&jo(n.prototype,r),a&&jo(n,a),t}(r.Component),Do=function(e){if("-"===e[0]){e.shift();var t=e.shift();e.unshift("-".concat(t))}return e},No=function(e){var t=e.value,n=e.onClick,r=e.size,a=e.elementName,i=Eo(function(e){return Number(e).toExponential().replace("+","")}(t).split("e"),2),s=i[0],l=i[1],c=Do(s.split("")),u=Do(l.split(""));return o.a.createElement(vo,{size:r,onClick:n,className:a},c.map((function(e,t){return o.a.createElement(xo,{className:a+"__digit",key:"d".concat(t)},e)})),o.a.createElement(ko,{className:a+"__exp"},"E"),u.map((function(e,t){return o.a.createElement(ko,{className:a+"__expdigit",key:"e".concat(t)},e)})))};To.defaultProps={min:0,max:Number.MAX_SAFE_INTEGER,theme:c.e,labelPosition:"top",precision:2,persisted_props:["value"],persistence_type:"local"},To.propTypes={id:i.a.string,value:i.a.number,size:i.a.number,min:i.a.number,max:i.a.number,precision:i.a.number.isRequired,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"])};var Io=Object(s.d)(To);Io.defaultProps=To.defaultProps;var Lo=Io;function Ro(){var e=zo(["\n color: #ff6e6e;\n background-color: #22272a;\n\n text-shadow: 0 0 2px rgba(0, 0, 0, 0.9), 0 0 9px #ff6e6e;\n\n background-image: linear-gradient(145deg, rgba(255, 255, 255, 0.05) 0%, rgba(0, 0, 0, 0.5) 100%);\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1);\n\n display: block;\n box-sizing: border-box;\n border: none;\n border-radius: 2px;\n font-weight: bold;\n font-size: 12px;\n text-transform: uppercase;\n padding: 0;\n width: ",";\n height: ",";\n text-align: center;\n cursor: pointer;\n letter-spacing: 0.1;\n line-height: 1;\n\n background-color: #22272a;\n color: #ff1a1a;\n\n &::before,\n &::after {\n transition: all 0.1s ease-in;\n background-color: #e03a3a;\n }\n\n &:hover::before,\n &:hover::after {\n background-color: #e64545;\n }\n\n &:active::before,\n &:active::after {\n background-color: #c72121;\n }\n\n &:hover::after,\n &:active::after,\n &:focus::after {\n box-shadow: none;\n }\n"]);return Ro=function(){return e},e}function Fo(){var e=zo(["\n color: white;\n background-color: #ff5e5e;\n\n display: block;\n box-sizing: border-box;\n border: none;\n border-radius: 2px;\n font-weight: bold;\n font-size: 12px;\n text-transform: uppercase;\n padding: 0;\n width: ",";\n min-height: ",";\n text-align: center;\n cursor: pointer;\n letter-spacing: 0.1;\n line-height: 1;\n\n &:hover,\n &:focus,\n &:active {\n color: #fff;\n }\n\n &:hover {\n background-color: #ff8585;\n }\n\n &:active {\n background-color: #e64545;\n }\n"]);return Fo=function(){return e},e}function Ho(){var e=zo(["\n outline: none;\n transition: all 0.1s ease-in;\n ",";\n\n &:disabled {\n opacity: ",";\n cursor: not-allowed;\n }\n"]);return Ho=function(){return e},e}function zo(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Bo=s.c.button(Ho(),(function(e){return e.theme.dark?Vo:Uo}),(function(e){return e.theme.dark?1:.65}));Bo.defaultProps={theme:c.e};var Uo=Object(s.b)(Fo(),(function(e){var t=e.size;return"".concat(t,"px")}),(function(e){var t=e.size;return"".concat(.42*t,"px")})),Vo=Object(s.b)(Ro(),(function(e){var t=e.size;return"".concat(t,"px")}),(function(e){var t=e.size;return"".concat(.42*t,"px")})),Wo=function(e){var t=e.id,n=e.className,r=e.style,a=e.size,i=e.disabled,s=e.children,l=e.n_clicks,c=e.buttonText,u=e.theme,f=Object(q.a)("stopbutton",u),p=Object(q.b)(e);return o.a.createElement("div",{id:t,className:f+(n?" "+n:""),style:r},o.a.createElement($.a,p,o.a.createElement(Bo,{className:f+"__button",size:a,disabled:i,onClick:function(){e.setProps&&e.setProps({n_clicks:l+1})}},s||c)))};Wo.defaultProps={buttonText:"Stop",n_clicks:0,size:92,labelPosition:"top"},Wo.propTypes={id:i.a.string,size:i.a.number,buttonText:i.a.string,n_clicks:i.a.number,disabled:i.a.bool,children:i.a.node,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func};var Go=Object(s.d)(Wo),Yo=n(6),Xo=n.n(Yo),Ko=n(11),$o=n.n(Ko),qo=n(12),Zo=n.n(qo),Jo=n(9),Qo=n.n(Jo),ea=n(13),ta=n.n(ea),na=n(23),ra=n.n(na),oa=n(5),aa=n.n(oa),ia=function(e){var t,n,r=e.className,a=e.included,i=e.vertical,s=e.style,l=e.length,c=e.offset,u=e.reverse;l<0&&(u=!u,l=Math.abs(l),c=100-c);var f=i?(t={},aa()(t,u?"top":"bottom",c+"%"),aa()(t,u?"bottom":"top","auto"),aa()(t,"height",l+"%"),t):(n={},aa()(n,u?"right":"left",c+"%"),aa()(n,u?"left":"right","auto"),aa()(n,"width",l+"%"),n),p=Xo()({},s,f);return a?o.a.createElement("div",{className:r,style:p}):null},sa=n(24),la=n.n(sa),ca=n(41),ua=n.n(ca),fa=n(82),pa=n.n(fa),da=n(14),ha=n.n(da);function ma(e,t,n,r){var o=ha.a.unstable_batchedUpdates?function(e){ha.a.unstable_batchedUpdates(n,e)}:n;return pa()(e,t,o,r)}var ba=n(8),va=n.n(ba),ga=function(e){var t=e.prefixCls,n=e.vertical,r=e.reverse,a=e.marks,i=e.dots,s=e.step,l=e.included,c=e.lowerBound,u=e.upperBound,f=e.max,p=e.min,d=e.dotStyle,h=e.activeDotStyle,m=f-p,b=function(e,t,n,r,o,a){ra()(!n||r>0,"`Slider[step]` should be a positive number in order to make Slider[dots] work.");var i=Object.keys(t).map(parseFloat).sort((function(e,t){return e-t}));if(n&&r)for(var s=o;s<=a;s+=r)-1===i.indexOf(s)&&i.push(s);return i}(0,a,i,s,p,f).map((function(e){var a,i=Math.abs(e-p)/m*100+"%",s=!l&&e===u||l&&e<=u&&e>=c,f=n?Xo()({},d,aa()({},r?"top":"bottom",i)):Xo()({},d,aa()({},r?"right":"left",i));s&&(f=Xo()({},f,h));var b=va()((a={},aa()(a,t+"-dot",!0),aa()(a,t+"-dot-active",s),aa()(a,t+"-dot-reverse",r),a));return o.a.createElement("span",{className:b,style:f,key:e})}));return o.a.createElement("div",{className:t+"-step"},b)};ga.propTypes={prefixCls:i.a.string,activeDotStyle:i.a.object,dotStyle:i.a.object,min:i.a.number,max:i.a.number,upperBound:i.a.number,lowerBound:i.a.number,included:i.a.bool,dots:i.a.bool,step:i.a.number,marks:i.a.object,vertical:i.a.bool,reverse:i.a.bool};var ya=ga,xa=function(e){var t=e.className,n=e.vertical,r=e.reverse,a=e.marks,i=e.included,s=e.upperBound,l=e.lowerBound,c=e.max,u=e.min,f=e.onClickLabel,p=Object.keys(a),d=c-u,h=p.map(parseFloat).sort((function(e,t){return e-t})).map((function(e){var c,p=a[e],h="object"==typeof p&&!o.a.isValidElement(p),m=h?p.label:p;if(!m&&0!==m)return null;var b=!i&&e===s||i&&e<=s&&e>=l,v=va()((c={},aa()(c,t+"-text",!0),aa()(c,t+"-text-active",b),c)),g=aa()({marginBottom:"-50%"},r?"top":"bottom",(e-u)/d*100+"%"),y=aa()({transform:"translateX(-50%)",msTransform:"translateX(-50%)"},r?"right":"left",r?(e-u/4)/d*100+"%":(e-u)/d*100+"%"),x=n?g:y,w=h?Xo()({},x,p.style):x;return o.a.createElement("span",{className:v,style:w,key:e,onMouseDown:function(t){return f(t,e)},onTouchStart:function(t){return f(t,e)}},m)}));return o.a.createElement("div",{className:t},h)};xa.propTypes={className:i.a.string,vertical:i.a.bool,reverse:i.a.bool,marks:i.a.object,included:i.a.bool,upperBound:i.a.number,lowerBound:i.a.number,max:i.a.number,min:i.a.number,onClickLabel:i.a.func};var wa=xa,Oa=function(e){function t(){var e,n,r,o;$o()(this,t);for(var a=arguments.length,i=Array(a),s=0;s=_a.F1&&t<=_a.F12)return!1;switch(t){case _a.ALT:case _a.CAPS_LOCK:case _a.CONTEXT_MENU:case _a.CTRL:case _a.DOWN:case _a.END:case _a.ESC:case _a.HOME:case _a.INSERT:case _a.LEFT:case _a.MAC_FF_META:case _a.META:case _a.NUMLOCK:case _a.NUM_CENTER:case _a.PAGE_DOWN:case _a.PAGE_UP:case _a.PAUSE:case _a.PRINT_SCREEN:case _a.RIGHT:case _a.SHIFT:case _a.UP:case _a.WIN_KEY:case _a.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=_a.ZERO&&e<=_a.NINE)return!0;if(e>=_a.NUM_ZERO&&e<=_a.NUM_MULTIPLY)return!0;if(e>=_a.A&&e<=_a.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case _a.SPACE:case _a.QUESTION_MARK:case _a.NUM_PLUS:case _a.NUM_MINUS:case _a.NUM_PERIOD:case _a.NUM_DIVISION:case _a.SEMICOLON:case _a.DASH:case _a.EQUALS:case _a.COMMA:case _a.PERIOD:case _a.SLASH:case _a.APOSTROPHE:case _a.SINGLE_QUOTE:case _a.OPEN_SQUARE_BRACKET:case _a.BACKSLASH:case _a.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},ja=_a;function Ca(e,t){try{return Object.keys(t).some((function(n){return e.target===Object(da.findDOMNode)(t[n])}))}catch(e){return!1}}function Pa(e,t){var n=t.min,r=t.max;return er}function Ma(e){return e.touches.length>1||"touchend"===e.type.toLowerCase()&&e.touches.length>0}function Aa(e,t){var n=t.marks,r=t.step,o=t.min,a=t.max,i=Object.keys(n).map(parseFloat);if(null!==r){var s=Math.floor((a-o)/r),l=Math.min((e-o)/r,s),c=Math.round(l)*r+o;i.push(c)}var u=i.map((function(t){return Math.abs(e-t)}));return i[u.indexOf(Math.min.apply(Math,Sa()(u)))]}function Ta(e,t){return e?t.clientY:t.pageX}function Da(e,t){return e?t.touches[0].clientY:t.touches[0].pageX}function Na(e,t){var n=t.getBoundingClientRect();return e?n.top+.5*n.height:window.pageXOffset+n.left+.5*n.width}function Ia(e,t){var n=t.max,r=t.min;return e<=r?r:e>=n?n:e}function La(e,t){var n=t.step,r=isFinite(Aa(e,t))?Aa(e,t):0;return null===n?r:parseFloat(r.toFixed(function(e){var t=e.toString(),n=0;return t.indexOf(".")>=0&&(n=t.length-t.indexOf(".")-1),n}(n)))}function Ra(e){e.stopPropagation(),e.preventDefault()}function Fa(e,t,n){var r="increase";switch(e.keyCode){case ja.UP:r=t&&n?"decrease":"increase";break;case ja.RIGHT:r=!t&&n?"decrease":"increase";break;case ja.DOWN:r=t&&n?"increase":"decrease";break;case ja.LEFT:r=!t&&n?"increase":"decrease";break;case ja.END:return function(e,t){return t.max};case ja.HOME:return function(e,t){return t.min};case ja.PAGE_UP:return function(e,t){return e+2*t.step};case ja.PAGE_DOWN:return function(e,t){return e-2*t.step};default:return}return function(e,t){return function(e,t,n){var r={increase:function(e,t){return e+t},decrease:function(e,t){return e-t}},o=r[e](Object.keys(n.marks).indexOf(JSON.stringify(t)),1),a=Object.keys(n.marks)[o];return n.step?r[e](t,n.step):Object.keys(n.marks).length&&n.marks[a]?n.marks[a]:t}(r,e,t)}}function Ha(){}function za(e){var t,n;return n=t=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onMouseDown=function(e){if(0===e.button){var t=n.props.vertical,r=Ta(t,e);if(Ca(e,n.handlesRefs)){var o=Na(t,e.target);n.dragOffset=r-o,r=o}else n.dragOffset=0;n.removeDocumentEvents(),n.onStart(r),n.addDocumentMouseEvents()}},n.onTouchStart=function(e){if(!Ma(e)){var t=n.props.vertical,r=Da(t,e);if(Ca(e,n.handlesRefs)){var o=Na(t,e.target);n.dragOffset=r-o,r=o}else n.dragOffset=0;n.onStart(r),n.addDocumentTouchEvents(),Ra(e)}},n.onFocus=function(e){var t=n.props,r=t.onFocus,o=t.vertical;if(Ca(e,n.handlesRefs)){var a=Na(o,e.target);n.dragOffset=0,n.onStart(a),Ra(e),r&&r(e)}},n.onBlur=function(e){var t=n.props.onBlur;n.onEnd(),t&&t(e)},n.onMouseUp=function(){n.handlesRefs[n.prevMovedHandleIndex]&&n.handlesRefs[n.prevMovedHandleIndex].clickFocus()},n.onMouseMove=function(e){if(n.sliderRef){var t=Ta(n.props.vertical,e);n.onMove(e,t-n.dragOffset)}else n.onEnd()},n.onTouchMove=function(e){if(!Ma(e)&&n.sliderRef){var t=Da(n.props.vertical,e);n.onMove(e,t-n.dragOffset)}else n.onEnd()},n.onKeyDown=function(e){n.sliderRef&&Ca(e,n.handlesRefs)&&n.onKeyboard(e)},n.onClickMarkLabel=function(e,t){e.stopPropagation(),n.onChange({value:t}),n.setState({value:t},(function(){return n.onEnd(!0)}))},n.saveSlider=function(e){n.sliderRef=e};var r=e.step,o=e.max,a=e.min,i=!isFinite(o-a)||(o-a)%r==0;return ra()(!r||Math.floor(r)!==r||i,"Slider[max] - Slider[min] (%s) should be a multiple of Slider[step] (%s)",o-a,r),n.handlesRefs={},n}return ta()(t,e),Zo()(t,[{key:"componentDidMount",value:function(){this.document=this.sliderRef&&this.sliderRef.ownerDocument;var e=this.props,t=e.autoFocus,n=e.disabled;t&&!n&&this.focus()}},{key:"componentWillUnmount",value:function(){ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"componentWillUnmount",this)&&ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"componentWillUnmount",this).call(this),this.removeDocumentEvents()}},{key:"getSliderStart",value:function(){var e=this.sliderRef,t=this.props,n=t.vertical,r=t.reverse,o=e.getBoundingClientRect();return n?r?o.bottom:o.top:window.pageXOffset+(r?o.right:o.left)}},{key:"getSliderLength",value:function(){var e=this.sliderRef;if(!e)return 0;var t=e.getBoundingClientRect();return this.props.vertical?t.height:t.width}},{key:"addDocumentTouchEvents",value:function(){this.onTouchMoveListener=ma(this.document,"touchmove",this.onTouchMove),this.onTouchUpListener=ma(this.document,"touchend",this.onEnd)}},{key:"addDocumentMouseEvents",value:function(){this.onMouseMoveListener=ma(this.document,"mousemove",this.onMouseMove),this.onMouseUpListener=ma(this.document,"mouseup",this.onEnd)}},{key:"removeDocumentEvents",value:function(){this.onTouchMoveListener&&this.onTouchMoveListener.remove(),this.onTouchUpListener&&this.onTouchUpListener.remove(),this.onMouseMoveListener&&this.onMouseMoveListener.remove(),this.onMouseUpListener&&this.onMouseUpListener.remove()}},{key:"focus",value:function(){this.props.disabled||this.handlesRefs[0].focus()}},{key:"blur",value:function(){var e=this;this.props.disabled||Object.keys(this.handlesRefs).forEach((function(t){e.handlesRefs[t]&&e.handlesRefs[t].blur&&e.handlesRefs[t].blur()}))}},{key:"calcValue",value:function(e){var t=this.props,n=t.vertical,r=t.min,o=t.max,a=Math.abs(Math.max(e,0)/this.getSliderLength());return n?(1-a)*(o-r)+r:a*(o-r)+r}},{key:"calcValueByPos",value:function(e){var t=(this.props.reverse?-1:1)*(e-this.getSliderStart());return this.trimAlignValue(this.calcValue(t))}},{key:"calcOffset",value:function(e){var t=this.props,n=t.min;return 100*((e-n)/(t.max-n))}},{key:"saveHandle",value:function(e,t){this.handlesRefs[e]=t}},{key:"render",value:function(){var e,n=this.props,r=n.prefixCls,a=n.className,i=n.marks,s=n.dots,l=n.step,c=n.included,u=n.disabled,f=n.vertical,p=n.reverse,d=n.min,h=n.max,m=n.children,b=n.maximumTrackStyle,v=n.style,g=n.railStyle,y=n.dotStyle,x=n.activeDotStyle,w=ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"render",this).call(this),O=w.tracks,k=w.handles,E=va()(r,(e={},aa()(e,r+"-with-marks",Object.keys(i).length),aa()(e,r+"-disabled",u),aa()(e,r+"-vertical",f),aa()(e,a,a),e));return o.a.createElement("div",{ref:this.saveSlider,className:E,onTouchStart:u?Ha:this.onTouchStart,onMouseDown:u?Ha:this.onMouseDown,onMouseUp:u?Ha:this.onMouseUp,onKeyDown:u?Ha:this.onKeyDown,onFocus:u?Ha:this.onFocus,onBlur:u?Ha:this.onBlur,style:v},o.a.createElement("div",{className:r+"-rail",style:Xo()({},b,g)}),O,o.a.createElement(ya,{prefixCls:r,vertical:f,reverse:p,marks:i,dots:s,step:l,included:c,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:h,min:d,dotStyle:y,activeDotStyle:x}),k,o.a.createElement(wa,{className:r+"-mark",onClickLabel:u?Ha:this.onClickMarkLabel,vertical:f,marks:i,included:c,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:h,min:d,reverse:p}),m)}}]),t}(e),t.displayName="ComponentEnhancer("+e.displayName+")",t.propTypes=Xo()({},e.propTypes,{min:i.a.number,max:i.a.number,startPoint:i.a.number,step:i.a.number,marks:i.a.object,included:i.a.bool,className:i.a.string,prefixCls:i.a.string,disabled:i.a.bool,children:i.a.any,onBeforeChange:i.a.func,onChange:i.a.func,onAfterChange:i.a.func,handle:i.a.func,dots:i.a.bool,vertical:i.a.bool,style:i.a.object,reverse:i.a.bool,minimumTrackStyle:i.a.object,maximumTrackStyle:i.a.object,handleStyle:i.a.oneOfType([i.a.object,i.a.arrayOf(i.a.object)]),trackStyle:i.a.oneOfType([i.a.object,i.a.arrayOf(i.a.object)]),railStyle:i.a.object,dotStyle:i.a.object,activeDotStyle:i.a.object,autoFocus:i.a.bool,onFocus:i.a.func,onBlur:i.a.func}),t.defaultProps=Xo()({},e.defaultProps,{prefixCls:"rc-slider",className:"",min:0,max:100,step:1,marks:{},handle:function(e){var t=e.index,n=la()(e,["index"]);return delete n.dragging,null===n.value?null:o.a.createElement(ka,Xo()({},n,{key:t}))},onBeforeChange:Ha,onChange:Ha,onAfterChange:Ha,included:!0,disabled:!1,dots:!1,vertical:!1,reverse:!1,trackStyle:[{}],handleStyle:[{}],railStyle:{},dotStyle:{},activeDotStyle:{}}),n}var Ba=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onEnd=function(e){var t=n.state.dragging;n.removeDocumentEvents(),(t||e)&&n.props.onAfterChange(n.getValue()),n.setState({dragging:!1})};var r=void 0!==e.defaultValue?e.defaultValue:e.min,o=void 0!==e.value?e.value:r;return n.state={value:n.trimAlignValue(o),dragging:!1},ra()(!("minimumTrackStyle"in e),"minimumTrackStyle will be deprecated, please use trackStyle instead."),ra()(!("maximumTrackStyle"in e),"maximumTrackStyle will be deprecated, please use railStyle instead."),n}return ta()(t,e),Zo()(t,[{key:"componentDidUpdate",value:function(e,t){if("value"in this.props||"min"in this.props||"max"in this.props){var n=this.props,r=n.value,o=n.onChange,a=void 0!==r?r:t.value,i=this.trimAlignValue(a,this.props);i!==t.value&&(this.setState({value:i}),Pa(a,this.props)&&o(i))}}},{key:"onChange",value:function(e){var t=this.props,n=!("value"in t),r=e.value>this.props.max?Xo()({},e,{value:this.props.max}):e;n&&this.setState(r);var o=r.value;t.onChange(o)}},{key:"onStart",value:function(e){this.setState({dragging:!0});var t=this.props,n=this.getValue();t.onBeforeChange(n);var r=this.calcValueByPos(e);this.startValue=r,this.startPosition=e,r!==n&&(this.prevMovedHandleIndex=0,this.onChange({value:r}))}},{key:"onMove",value:function(e,t){Ra(e);var n=this.state.value,r=this.calcValueByPos(t);r!==n&&this.onChange({value:r})}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,r=Fa(e,t.vertical,n);if(r){Ra(e);var o=this.state.value,a=r(o,this.props),i=this.trimAlignValue(a);if(i===o)return;this.onChange({value:i}),this.props.onAfterChange(i),this.onEnd()}}},{key:"getValue",value:function(){return this.state.value}},{key:"getLowerBound",value:function(){return this.props.min}},{key:"getUpperBound",value:function(){return this.state.value}},{key:"trimAlignValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null===e)return null;var n=Xo()({},this.props,t),r=Ia(e,n);return La(r,n)}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,r=t.vertical,a=t.included,i=t.disabled,s=t.minimumTrackStyle,l=t.trackStyle,c=t.handleStyle,u=t.tabIndex,f=t.ariaLabelForHandle,p=t.ariaLabelledByForHandle,d=t.ariaValueTextFormatterForHandle,h=t.min,m=t.max,b=t.startPoint,v=t.reverse,g=t.handle,y=this.state,x=y.value,w=y.dragging,O=this.calcOffset(x),k=g({className:n+"-handle",prefixCls:n,vertical:r,offset:O,value:x,dragging:w,disabled:i,min:h,max:m,reverse:v,index:0,tabIndex:u,ariaLabel:f,ariaLabelledBy:p,ariaValueTextFormatter:d,style:c[0]||c,ref:function(t){return e.saveHandle(0,t)}}),E=void 0!==b?this.calcOffset(b):0,S=l[0]||l;return{tracks:o.a.createElement(ia,{className:n+"-track",vertical:r,included:a,offset:E,reverse:v,length:O-E,style:Xo()({},s,S)}),handles:k}}}]),t}(o.a.Component);Ba.propTypes={defaultValue:i.a.number,value:i.a.number,disabled:i.a.bool,autoFocus:i.a.bool,tabIndex:i.a.number,reverse:i.a.bool,min:i.a.number,max:i.a.number,startPoint:i.a.number,ariaLabelForHandle:i.a.string,ariaLabelledByForHandle:i.a.string,ariaValueTextFormatterForHandle:i.a.func};var Ua=za(Ba),Va=n(83),Wa=n.n(Va),Ga=function(e){var t=e.value,n=e.handle,r=e.bounds,o=e.props,a=o.allowCross,i=o.pushable,s=Number(i),l=Ia(t,o),c=l;return a||null==n||void 0===r||(n>0&&l<=r[n-1]+s&&(c=r[n-1]+s),n=r[n+1]-s&&(c=r[n+1]-s)),La(c,o)},Ya=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onEnd=function(e){var t=n.state.handle;n.removeDocumentEvents(),(null!==t||e)&&n.props.onAfterChange(n.getValue()),n.setState({handle:null})};var r=e.count,o=e.min,a=e.max,i=Array.apply(void 0,Sa()(Array(r+1))).map((function(){return o})),s="defaultValue"in e?e.defaultValue:i,l=(void 0!==e.value?e.value:s).map((function(t,n){return Ga({value:t,handle:n,props:e})})),c=l[0]===a?0:l.length-1;return n.state={handle:null,recent:c,bounds:l},n}return ta()(t,e),Zo()(t,[{key:"componentDidUpdate",value:function(e,t){var n=this;if(("value"in this.props||"min"in this.props||"max"in this.props)&&(this.props.min!==e.min||this.props.max!==e.max||!Wa()(this.props.value,e.value))){var r=this.props,o=r.onChange,a=r.value||t.bounds;if(a.some((function(e){return Pa(e,n.props)})))o(a.map((function(e){return Ia(e,n.props)})))}}},{key:"onChange",value:function(e){var t=this.props;if(!("value"in t))this.setState(e);else{var n={};["handle","recent"].forEach((function(t){void 0!==e[t]&&(n[t]=e[t])})),Object.keys(n).length&&this.setState(n)}var r=Xo()({},this.state,e).bounds;t.onChange(r)}},{key:"onStart",value:function(e){var t=this.props,n=this.state,r=this.getValue();t.onBeforeChange(r);var o=this.calcValueByPos(e);this.startValue=o,this.startPosition=e;var a=this.getClosestBound(o);if(this.prevMovedHandleIndex=this.getBoundNeedMoving(o,a),this.setState({handle:this.prevMovedHandleIndex,recent:this.prevMovedHandleIndex}),o!==r[this.prevMovedHandleIndex]){var i=[].concat(Sa()(n.bounds));i[this.prevMovedHandleIndex]=o,this.onChange({bounds:i})}}},{key:"onMove",value:function(e,t){Ra(e);var n=this.state,r=this.calcValueByPos(t);r!==n.bounds[n.handle]&&this.moveTo(r)}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,r=Fa(e,t.vertical,n);if(r){Ra(e);var o=this.state,a=this.props,i=o.bounds,s=o.handle,l=i[null===s?o.recent:s],c=r(l,a),u=Ga({value:c,handle:s,bounds:o.bounds,props:a});if(u===l)return;this.moveTo(u,!0)}}},{key:"getValue",value:function(){return this.state.bounds}},{key:"getClosestBound",value:function(e){for(var t=this.state.bounds,n=0,r=1;r=t[r]&&(n=r);return Math.abs(t[n+1]-e)=r.length||o<0)return!1;var a=t+n,i=r[o],s=this.props.pushable,l=n*(e[a]-i);return!!this.pushHandle(e,a,n,s-l)&&(e[t]=i,!0)}},{key:"trimAlignValue",value:function(e){var t=this.state,n=t.handle,r=t.bounds;return Ga({value:e,handle:n,bounds:r,props:this.props})}},{key:"render",value:function(){var e=this,t=this.state,n=t.handle,r=t.bounds,a=this.props,i=a.prefixCls,s=a.vertical,l=a.included,c=a.disabled,u=a.min,f=a.max,p=a.reverse,d=a.handle,h=a.trackStyle,m=a.handleStyle,b=a.tabIndex,v=a.ariaLabelGroupForHandles,g=a.ariaLabelledByGroupForHandles,y=a.ariaValueTextFormatterGroupForHandles,x=r.map((function(t){return e.calcOffset(t)})),w=i+"-handle",O=r.map((function(t,r){var o,a=b[r]||0;return(c||null===b[r])&&(a=null),d({className:va()((o={},aa()(o,w,!0),aa()(o,w+"-"+(r+1),!0),o)),prefixCls:i,vertical:s,offset:x[r],value:t,dragging:n===r,index:r,tabIndex:a,min:u,max:f,reverse:p,disabled:c,style:m[r],ref:function(t){return e.saveHandle(r,t)},ariaLabel:v[r],ariaLabelledBy:g[r],ariaValueTextFormatter:y[r]})}));return{tracks:r.slice(0,-1).map((function(e,t){var n,r=t+1,a=va()((n={},aa()(n,i+"-track",!0),aa()(n,i+"-track-"+r,!0),n));return o.a.createElement(ia,{className:a,vertical:s,reverse:p,included:l,offset:x[r-1],length:x[r]-x[r-1],style:h[t],key:r})})),handles:O}}}],[{key:"getDerivedStateFromProps",value:function(e,t){if("value"in e||"min"in e||"max"in e){var n=(e.value||t.bounds).map((function(n,r){return Ga({value:n,handle:r,bounds:t.bounds,props:e})}));return n.length===t.bounds.length&&n.every((function(e,n){return e===t.bounds[n]}))?null:Xo()({},t,{bounds:n})}return null}}]),t}(o.a.Component);Ya.displayName="Range",Ya.propTypes={autoFocus:i.a.bool,defaultValue:i.a.arrayOf(i.a.number),value:i.a.arrayOf(i.a.number),count:i.a.number,pushable:i.a.oneOfType([i.a.bool,i.a.number]),allowCross:i.a.bool,disabled:i.a.bool,reverse:i.a.bool,tabIndex:i.a.arrayOf(i.a.number),min:i.a.number,max:i.a.number,ariaLabelGroupForHandles:i.a.arrayOf(i.a.string),ariaLabelledByGroupForHandles:i.a.arrayOf(i.a.string),ariaValueTextFormatterGroupForHandles:i.a.arrayOf(i.a.func)},Ya.defaultProps={count:1,allowCross:!0,pushable:!1,tabIndex:[],ariaLabelGroupForHandles:[],ariaLabelledByGroupForHandles:[],ariaValueTextFormatterGroupForHandles:[]};var Xa=za(Ya);function Ka(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}function $a(e){return e instanceof HTMLElement?e:ha.a.findDOMNode(e)}function qa(e){return(qa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Za(e,t){"function"==typeof e?e(t):"object"===qa(e)&&e&&"current"in e&&(e.current=t)}function Ja(){for(var e=arguments.length,t=new Array(e),n=0;n=0&&t.left>=0&&t.bottom>t.top&&t.right>t.left?t:null}function ts(e){var t,n,r;if(qi.isWindow(e)||9===e.nodeType){var o=qi.getWindow(e);t={left:qi.getWindowScrollLeft(o),top:qi.getWindowScrollTop(o)},n=qi.viewportWidth(o),r=qi.viewportHeight(o)}else t=qi.offset(e),n=qi.outerWidth(e),r=qi.outerHeight(e);return t.width=n,t.height=r,t}function ns(e,t){var n=t.charAt(0),r=t.charAt(1),o=e.width,a=e.height,i=e.left,s=e.top;return"c"===n?s+=a/2:"b"===n&&(s+=a),"c"===r?i+=o/2:"r"===r&&(i+=o),{left:i,top:s}}function rs(e,t,n,r,o){var a=ns(t,n[1]),i=ns(e,n[0]),s=[i.left-a.left,i.top-a.top];return{left:Math.round(e.left-s[0]+r[0]-o[0]),top:Math.round(e.top-s[1]+r[1]-o[1])}}function os(e,t,n){return e.leftn.right}function as(e,t,n){return e.topn.bottom}function is(e,t,n){var r=[];return qi.each(e,(function(e){r.push(e.replace(t,(function(e){return n[e]})))})),r}function ss(e,t){return e[t]=-e[t],e}function ls(e,t){return(/%$/.test(e)?parseInt(e.substring(0,e.length-1),10)/100*t:parseInt(e,10))||0}function cs(e,t){e[0]=ls(e[0],t.width),e[1]=ls(e[1],t.height)}function us(e,t,n,r){var o=n.points,a=n.offset||[0,0],i=n.targetOffset||[0,0],s=n.overflow,l=n.source||e;a=[].concat(a),i=[].concat(i),s=s||{};var c={},u=0,f=es(l),p=ts(l);cs(a,p),cs(i,t);var d=rs(p,t,o,a,i),h=qi.merge(p,d);if(f&&(s.adjustX||s.adjustY)&&r){if(s.adjustX&&os(d,p,f)){var m=is(o,/[lr]/gi,{l:"r",r:"l"}),b=ss(a,0),v=ss(i,0);(function(e,t,n){return e.left>n.right||e.left+t.widthn.bottom||e.top+t.height=n.left&&o.left+a.width>n.right&&(a.width-=o.left+a.width-n.right),r.adjustX&&o.left+a.width>n.right&&(o.left=Math.max(n.right-a.width,n.left)),r.adjustY&&o.top=n.top&&o.top+a.height>n.bottom&&(a.height-=o.top+a.height-n.bottom),r.adjustY&&o.top+a.height>n.bottom&&(o.top=Math.max(n.bottom-a.height,n.top)),qi.mix(o,a)}(d,p,f,c))}return h.width!==p.width&&qi.css(l,"width",qi.width(l)+h.width-p.width),h.height!==p.height&&qi.css(l,"height",qi.height(l)+h.height-p.height),qi.offset(l,{left:h.left,top:h.top},{useCssRight:n.useCssRight,useCssBottom:n.useCssBottom,useCssTransform:n.useCssTransform,ignoreShake:n.ignoreShake}),{points:o,offset:a,targetOffset:i,overflow:c}}function fs(e,t,n){var r=n.target||t;return us(e,ts(r),n,!function(e){var t=es(e),n=ts(e);return!t||n.left+n.width<=t.left||n.top+n.height<=t.top||n.left>=t.right||n.top>=t.bottom}(r))}function ps(e,t,n){var r,o,a=qi.getDocument(e),i=a.defaultView||a.parentWindow,s=qi.getWindowScrollLeft(i),l=qi.getWindowScrollTop(i),c=qi.viewportWidth(i),u=qi.viewportHeight(i);r="pageX"in t?t.pageX:s+t.clientX,o="pageY"in t?t.pageY:l+t.clientY;var f=r>=0&&r<=s+c&&o>=0&&o<=l+u;return us(e,{left:r,top:o,width:0,height:0},function(e){for(var t=1;t1&&(p=o.a.createElement("div",{className:"".concat(n,"-content")},s)),o.a.createElement("div",{ref:t,className:va()(r,!a&&"".concat(e.hiddenClassName)),onMouseEnter:l,onMouseLeave:c,onMouseDown:u,onTouchStart:f,style:i},p)}));zs.displayName="PopupInner";var Bs=zs;function Us(e){var t=e.prefixCls,n=e.motion,r=e.animation,o=e.transitionName;return n||(r?{motionName:"".concat(t,"-").concat(r)}:o?{motionName:o}:null)}function Vs(e){return(Vs="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ws(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Gs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ys(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var El=Object(r.forwardRef)((function(e,t){var n=e.overlayClassName,a=e.trigger,i=void 0===a?["hover"]:a,s=e.mouseEnterDelay,l=void 0===s?0:s,c=e.mouseLeaveDelay,u=void 0===c?.1:c,f=e.overlayStyle,p=e.prefixCls,d=void 0===p?"rc-tooltip":p,h=e.children,m=e.onVisibleChange,b=e.afterVisibleChange,v=e.transitionName,g=e.animation,y=e.placement,x=void 0===y?"right":y,w=e.align,O=void 0===w?{}:w,k=e.destroyTooltipOnHide,E=void 0!==k&&k,S=e.defaultVisible,_=e.getTooltipContainer,j=kl(e,["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer"]),C=Object(r.useRef)(null);Object(r.useImperativeHandle)(t,(function(){return C.current}));var P=function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},n=t.isTarget,r=t.showLabel,a=o.a.createElement(vc,Ac({isTarget:n},e),o.a.createElement("div",{className:"label"},e.label),o.a.createElement("div",{className:"value"},e.value));return o.a.createElement(lc,Ac({isTarget:n},e),r&&a,o.a.createElement(fc,Ac({isTarget:n,showLabel:r},e)))},Dc=function(e){if(!e.color.ranges||!Re(e)){var t=Ve(e.color);return{trackStyle:{backgroundColor:t},activeDotStyle:e.theme.dark?{background:t,boxShadow:"0 0 6px 1px ".concat(t)}:{borderColor:t}}}return{railStyle:{backgroundImage:"".concat(Ue(e),", linear-gradient(0deg, #000, #000)"),backgroundBlendMode:e.theme.dark?"none":"overlay"},trackStyle:{mixBlendMode:"overlay",background:e.theme.dark?"#fff":"#000"},dotStyle:{display:"none"}}},Nc=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=function(e,t){return!t||"object"!==Oc(t)&&"function"!=typeof t?Pc(e):t}(this,Cc(t).call(this,e))).state={value:null!=e.value?e.value:e.min,trackStyle:Dc(e)},n.onChange=n.onChange.bind(Pc(n)),n.onAfterChange=n.onAfterChange.bind(Pc(n)),n.renderSliderHandle=n.renderSliderHandle.bind(Pc(n)),n.renderTargets=n.renderTargets.bind(Pc(n)),n.calcLabelOffset=n.calcLabelOffset.bind(Pc(n)),n}var n,r,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Mc(e,t)}(t,e),n=t,(r=[{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t={},n=Object(q.b)(this.props);void 0!==e.value&&e.value!==this.state.value&&(t.value=e.value),jl()(e.color,this.props.color)||(t.trackStyle=Dc(Sc({},n,{},e))),this.setState(t)}},{key:"onChange",value:function(e){var t=this.props,n=t.updatemode,r=t.setProps;this.props.value&&"drag"===n||this.setState({value:e}),"drag"===n&&r&&r({value:e})}},{key:"onAfterChange",value:function(e){var t=this.props,n=t.updatemode,r=t.setProps;"mouseup"===n&&r&&r({value:e})}},{key:"renderSliderHandle",value:function(e){var t=this.props.handleLabel,n=Sc({},Object(q.b)(this.props),{},e);return t?(n=Sc({},n,{value:t.showCurrentValue&&this.state.value,label:t.label||(t instanceof Object?" ":t),color:t.color||Ve(this.props.color),style:t.style}),Tc(n,{showLabel:!0})):Tc(n)}},{key:"renderTargets",value:function(){var e=Object(q.b)(this.props);return Object.entries(this.props.targets).reduce((function(t,n){var r=kc(n,2),o=r[0],a=r[1],i=Sc({},e,{label:a.label||a,value:a.showCurrentValue&&o,color:a.color,style:a.style}),s=Tc(i,{isTarget:!0,showLabel:!!a});return t[o]={style:bc,label:s},t}),{})}},{key:"calcLabelOffset",value:function(e){var t=e.vertical,n=e.labelPosition,r=e.marks,o=e.targets,a=e.handleLabel;if(t)return null;if("bottom"===n)return"transform: translateY(".concat(r?20:0,"px);");var i=!1;return Object.values(o).map((function(e){e.showCurrentValue&&(i=!0)})),a&&a.showCurrentValue&&(i=!0),"transform: translateY(".concat(i?-38:-16,"px);")}},{key:"render",value:function(){var e=this.state.value,t=this.props,n=t.className,r=t.id,a=t.theme,i=t.label,s=t.size,c=t.vertical,u=t.style,f=t.marks,p=Object(q.a)("slider",a.dark),d=Object(q.b)(this.props),h=this.props.vertical?Sc({},u,{marginLeft:"45px"}):Sc({},u,{marginTop:"45px"});return h=this.props.fullSize?this.props.vertical?Sc({},h,{height:"100%"}):Sc({},h,{width:"100%"}):h,o.a.createElement("div",{id:r,style:h,className:p+(n?" "+n:"")},o.a.createElement($.a,Ac({className:p+"__label",labelCSS:i?this.calcLabelOffset(this.props):null},d),o.a.createElement(sc,{fullSize:this.props.fullSize,size:s,vertical:c},o.a.createElement(Sl,Ac({className:p+"__slider",onChange:this.onChange,onAfterChange:this.onAfterChange,value:e,handle:this.renderSliderHandle,marks:Sc({},f,{},this.renderTargets())},this.state.trackStyle,Object(l.a)(["setProps","updatemode","value","marks"],d))))))}}])&&jc(n.prototype,r),a&&jc(n,a),t}(r.Component);Nc.defaultProps=Vc,Nc.propTypes=Wc;var Ic=Object(s.d)(Nc);function Lc(e){return(Lc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Rc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Fc(e,t){for(var n=0;no){b.current.innerHTML=e.exceedMessage?"string"==typeof e.exceedMessage?e.exceedMessage:e.exceedMessage(r,o)||"":""}else if(r div {\n margin-top: 56px;\n line-height: 28px;\n }\n"]);return Zc=function(){return e},e}function Jc(){var e=eu(["\n width: ","px;\n height: ","px;\n border-radius: 50%;\n background-color: ",";\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n bottom: -","px;\n z-index: -1;\n"]);return Jc=function(){return e},e}function Qc(){var e=eu(["\n display: flex;\n flex-direction: column;\n align-items: center;\n"]);return Qc=function(){return e},e}function eu(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var tu=s.c.div(Qc()),nu=s.c.div(Jc(),30,30,(function(e){return e.on?e.color||e.theme.primary:e.theme.secondary}),20);nu.defaultProps={theme:c.e};var ru=s.c.div(Zc());function ou(){return(ou=Object.assign||function(e){for(var t=1;t1?arguments[1]:void 0,b=void 0!==m,v=0,g=u(p);if(b&&(m=r(m,h>2?arguments[2]:void 0,2)),null==g||d==Array&&s(g))for(n=new d(t=l(p.length));t>v;v++)c(n,v,b?m(p[v],v):p[v]);else for(f=g.call(p),n=new d;!(o=f.next()).done;v++)c(n,v,b?i(f,m,[o.value,v],!0):o.value);return n.length=v,n}})},function(e,t,n){var r=n(26);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var a=e.return;throw void 0!==a&&r(a.call(e)),t}}},function(e,t,n){var r=n(35),o=n(16)("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||a[o]===e)}},function(e,t,n){"use strict";var r=n(19),o=n(33);e.exports=function(e,t,n){t in e?r.f(e,t,o(0,n)):e[t]=n}},function(e,t,n){var r=n(147),o=n(16)("iterator"),a=n(35);e.exports=n(10).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||a[r(e)]}},function(e,t,n){var r=n(45),o=n(16)("toStringTag"),a="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,i;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:a?r(t):"Object"==(i=r(t))&&"function"==typeof t.callee?"Arguments":i}},function(e,t,n){var r=n(16)("iterator"),o=!1;try{var a=[7][r]();a.return=function(){o=!0},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var a=[7],i=a[r]();i.next=function(){return{done:n=!0}},a[r]=function(){return i},e(a)}catch(e){}return n}},function(e,t,n){(function(t){(function(){var n,r,o,a,i,s;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:null!=t&&t.hrtime?(e.exports=function(){return(n()-i)/1e6},r=t.hrtime,a=(n=function(){var e;return 1e9*(e=r())[0]+e[1]})(),s=1e9*t.uptime(),i=a-s):Date.now?(e.exports=function(){return Date.now()-o},o=Date.now()):(e.exports=function(){return(new Date).getTime()-o},o=(new Date).getTime())}).call(this)}).call(this,n(63))},function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}(e.exports="function"==typeof Object.keys?Object.keys:n).shim=n},function(e,t){var n="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();function r(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function o(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}(t=e.exports=n?r:o).supported=r,t.unsupported=o},function(e,t,n){var r=n(153),o=n(154);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[e.i,o,""]]);var a={insert:function(e){document.head.insertBefore(e,document.head.firstElementChild)},singleton:!1},i=(r(o,a),o.locals?o.locals:{});e.exports=i},function(e,t,n){"use strict";var r,o=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},a=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),i=[];function s(e){for(var t=-1,n=0;n0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;if(isNaN(e))return e;var n=t.toString().split("."),r=ke(n,2),o=(r[0],r[1]),a=o?o.length:0;return e.toFixed(a)},_e=function(e){var t=e.min,n=e.max,r=e.value;return null==r||rn?n:r},je=function(e){var t=e.min,n=e.max,r=e.value,o=e.progressionTarget,a=void 0===o?100:o;return r=Number(r),1*Math.abs(r-t)/Math.abs(n-t)*a},Ce=function(e,t){return Number(Math.round(e+"e"+t)+"e-"+t)},Pe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9999;return Math.floor(Math.random()*(t-e+1))+e},Me=n(81),Ae=n.n(Me);function Te(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e))&&"[object Arguments]"!==Object.prototype.toString.call(e))return;var n=[],r=!0,o=!1,a=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function De(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);ta&&f.push({key:p,subKey:o,index:0}),n[p][1]>a&&f.push({key:p,subKey:o,index:1}),n[p][0]i&&(n[p][0]=i),s[0]==n[p][1]&&n[p][1]>i&&(n[p][1]=i),s[s.length-1]==n[p][0]&&n[p][0]1&&void 0!==arguments[1]?arguments[1]:10;return"e"===t&&(t=Math.exp(1)),Math.log(e)/Math.log(t)},generateLogFormatter:function(e){var t=e.base,n=void 0===t?10:t,r=e.isSVG,a=void 0!==r&&r;return function(e){return a?o.a.createElement("tspan",null,n,o.a.createElement("tspan",{dy:"-6px"},e)):o.a.createElement("span",null,n,o.a.createElement("sup",null,e))}},formatValue:function(e,t){return o.a.createElement(Yt,null,"~",t,o.a.createElement("sup",null,Ce(e,2)))},genLogMarks:function(e,t){var n=e.min,r=e.max,a=e.step,i=void 0===a?1:a,s=e.base,l=void 0===s?10:s,c=e.marks;if(!c){var u=n;for(c={};u<=r;)c[u]=!0,u+=i}return Object.keys(c).forEach((function(e){"boolean"==typeof c[e]&&(c[e]=t?o.a.createElement("tspan",null,l,o.a.createElement("tspan",{dy:"-6px"},e)):o.a.createElement("span",null,l,o.a.createElement("sup",null,e)))})),c}};function Kt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qt(e){var t=function(e){var t=e.min,n=e.max,r=e.scale,o=void 0===r?{}:r,a=e.formatter,i={},s=null!=o.start,l=null!=o.interval,c=null!=o.labelInterval;i.min=t,i.max=n,i.start=s?o.start:t,i.interval=l?o.interval:function(e,t){var n=Math.ceil,r=1*Math.abs(t-e)/10;return r>1?n(r):(o=r,Number(o.toFixed(2)));var o}(i.start,n),i.labelInterval=c?o.labelInterval:2,i.custom=o.custom||{},i.formatter=a||Zt;var u=!s&&!l&&!c,f=Object.keys(i.custom).length;return i.onlyRenderCustom=f&&u,i.start=i.start!=t?t:i.start,i}(e),n=function(e){for(var t=1;to){h.current.innerHTML=e.exceedMessage?"string"==typeof e.exceedMessage?e.exceedMessage:e.exceedMessage(r,o)||"":""}else if(r=10?.05*n:.5,o=n-2*r;return Object(s.b)(cn(),e.vertical?"".concat(o,"px"):"100%",e.vertical?"100%":"".concat(o,"px"),e.vertical?"".concat(r,"px 0"):"0 ".concat(r,"px"))}),(function(e){return e.theme.dark&&Sn}));En.defaultProps={theme:c.e};var Sn=Object(s.b)(ln(),(function(e){var t=e.color,n=e.theme;if(!e.gradient)return Object(s.b)(sn(),t||n.primary)}),(function(e){var t=e.color,n=e.theme;return"2px 2px 6px 1px rgba(0, 0, 0, 0.45), inset 1px 1px 2px 0 rgba(255, 255, 255, 0.3),\n 1px 1px 1px 0px rgba(0, 0, 0, 0.6), 0 0 3px 0px ".concat(t||n.primary)})),_n=s.c.div(an(),(function(e){return e.vertical?Object(s.b)(on()):""}));function jn(){return(jn=Object.assign||function(e){for(var t=1;t=n[0]&&e<=n[1]}))[0];return n&&n[0]},Dn=function(e){var t=e.step,n=e.min,r=e.max,a=e.label,i=e.labelPosition,s=e.id,l=e.className,c=e.color,u=e.size,f=e.style,p=e.showCurrentValue,d=e.vertical,h=e.theme,m=e.value||n,b=null,v=[],g=Math.max(Math.min(r,m),n);c.gradient&&Re({color:c,min:n,max:r})&&(b=function(e){var t=e.color,n=e.min,r=e.max,o=0,a=Be(t.ranges).map((function(e){var t=Te(e,2),a=t[0],i=t[1],s=1*(i[1]-i[0])/(r-n),l=o;return o=o+s,{color:a,pos:l}}));return Ae()(a)}({color:c,min:n,max:r}));for(var y=Object(q.a)("graduatedbar",h),x=Object(q.b)(e),w=n;wthis.props.min&&ee?this.props.min:this.props.max}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){void 0!==e.value&&this.setState({value:e.value}),this.state.max!=e.max&&this.setState({max:e.max instanceof Number?e.max:this.state.max}),this.state.min!=e.min&&this.setState({min:e.min instanceof Number?e.min:this.state.min})}},{key:"componentDidMount",value:function(){window.addEventListener("mouseup",this.onMouseUp,!1),n(42)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("mouseup",this.onMouseUp,!1)}},{key:"onMouseDown",value:function(){this.setState({isDragging:!0})}},{key:"onMouseUp",value:function(){this.state.isDragging&&this.setState((function(e){return{rotation:e.currentDeg,isDragging:!1,startAngle:-1}}))}},{key:"onMouseMove",value:function(e){if(this.state.isDragging){var t=this.props,n=t.min,r=t.max,o=this.state.rotation,a=this.state.startAngle;e.touches&&(e=e.touches[0]);var i=this.knobElement.getBoundingClientRect(),s=i.width/2+i.left,l=i.height/2+i.top,u=Math.atan2(e.clientX-s,e.clientY-l)*(180/Math.PI);e.clientX-s>=0?u=Math.abs(360-u)+180:u-=180,u=Math.abs(u),-1===a&&(a=u,this.setState({startAngle:a}));var f=Math.floor(u-a+o);f=Math.min(f,c.b),f=Math.max(f,0),this.setState({currentDeg:f}),this.setValue(Ce(function(e){var t=e.min,n=e.max,r=e.deg;return je({min:0,max:c.b,value:r,progressionTarget:n-t})+t}({min:n,max:r,deg:f}),2))}}},{key:"setValue",value:function(e){this.setState({value:e}),this.props.setProps&&this.props.setProps({value:e})}},{key:"render",value:function(){var e=this,t=this.props,n=t.min,r=t.max,a=t.value,i=void 0===a?this.props.min:a,s=this.props,l=s.id,c=s.className,u=s.labelPosition,f=s.color,p=s.style,d=s.disabled,h=s.theme,m=s.textColor,b=je({min:n,max:r,value:this.getValue(i),progressionTarget:1}),v=m||Ve(f),g=Object(q.a)("knob",h),y=Object(q.b)(this.props),x=o.a.createElement(o.a.Fragment,null,o.a.createElement(gt,{className:g+"__current-value",valueColor:v,valueSize:Math.min(13.3333*(this.props.size+32)/100,32),units:!1,css:"transform: translateY(0%); top: 0;"},i.toFixed(this.props.digits)));return o.a.createElement("div",{id:l,className:g+(c?" "+c:""),style:p},o.a.createElement($.a,Kn({className:g+"__label"},y,{labelCSS:"top"===u?null:"transform: translateY(-40px);"}),o.a.createElement(Yn,{className:g+"__container",colorValue:v,color:Ve(f)},this.props.showCurrentValue&&x,o.a.createElement(Fn,Kn({progress:b},y,this.state,{min:this.props.min!=this.state.min?this.props.min:this.state.min,max:this.props.max!=this.state.max?this.props.max:this.state.max,value:this.getValue(i),scale:qt(this.props),currentDeg:Qn({min:this.props.min,max:this.props.max,value:this.getValue(i)}),refFunc:function(t){return e.knobElement=t},onMouseDown:d?this.noop:this.onMouseDown,onMouseUp:d?this.noop:this.onMouseUp,onMouseMove:d?this.noop:this.onMouseMove})))))}}])&&$n(r.prototype,a),i&&$n(r,i),t}(r.Component);er.defaultProps={min:0,max:10,theme:c.e,labelPosition:"top",persisted_props:["value"],persistence_type:"local",size:114},er.propTypes={id:i.a.string,value:i.a.number,color:i.a.oneOfType([i.a.string,i.a.shape({default:i.a.string,gradient:i.a.bool,ranges:i.a.shape({color:i.a.arrayOf(i.a.number)})})]),size:i.a.number,min:i.a.number,max:i.a.number,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),scale:i.a.shape({start:i.a.number,interval:i.a.number,labelInterval:i.a.number,custom:i.a.oneOfType([i.a.number,i.a.shape({style:i.a.string,label:i.a.string})])}),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"]),showCurrentValue:i.a.bool,textColor:i.a.string,digits:i.a.number};var tr=Object(s.d)(er);tr.defaultProps=er.defaultProps;var nr=tr;function rr(){var e=lr(["\n & .darkLED-fill {\n fill: ",";\n }\n"]);return rr=function(){return e},e}function or(){var e=lr(["\n border-radius: 3px;\n padding: 12px 8px 12px 14px;\n border: 1px solid ",";\n background: ",";\n"]);return or=function(){return e},e}function ar(){var e=lr(["\n padding: 12px 8px 4px 16px;\n background-color: #22272a;\n background-image: linear-gradient(145deg, rgba(255, 255, 255, 0.05) 0%, rgba(0, 0, 0, 0.5) 100%);\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1);\n"]);return ar=function(){return e},e}function ir(){var e=lr(["\n background-color: ",";\n "]);return ir=function(){return e},e}function sr(){var e=lr(["\n display: inline-flex;\n flex-direction: row;\n ",";\n ","\n"]);return sr=function(){return e},e}function lr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var cr=s.c.div(sr(),(function(e){return e.theme.dark?ur:fr}),(function(e){var t=e.backgroundColor;return Object(s.b)(ir(),t)})),ur=Object(s.b)(ar()),fr=Object(s.b)(or(),(function(e){return e.theme.detail}),(function(e){return e.backgroundColor}));cr.defaultProps={theme:c.e};var pr=s.c.div(rr(),(function(e){return e.color})),dr={0:["A","B","C","D","E","F"],1:["B","C"],2:["A","B","G","E","D"],3:["A","B","G","C","D"],4:["F","G","B","C"],5:["A","F","G","C","D"],6:["A","F","G","C","D","E"],7:["A","B","C"],8:["A","B","C","D","E","F","G"],9:["A","B","C","D","F","G"],"-":["G"]},hr={A:{base:"M3.778 3.778L6.555 1h16.667L26 3.778l-2.778 2.778H6.555L3.778 3.778z",stroke:"M3.778 3.778L6.555 1h16.667L26 3.778l-2.778 2.778H6.555L3.778 3.778z"},B:{base:"M26 3.778l2.778 2.777v16.667L26 26l-2.778-2.778V6.555L26 3.778z",stroke:"M26 3.778l2.778 2.777v16.667L26 26l-2.778-2.778V6.555L26 3.778z"},C:{base:"M26 26l2.778 2.778v16.666L26 48.222l-2.778-2.778V28.778L26 26z",stroke:"M26 26l2.778 2.778v16.666L26 48.222l-2.778-2.778V28.778L26 26z"},D:{base:"M26 48.222L23.222 51H6.555l-2.777-2.778 2.777-2.778h16.667L26 48.222z",stroke:"M26 48.222L23.222 51H6.555l-2.777-2.778 2.777-2.778h16.667L26 48.222z"},E:{base:"M3.778 48.222L1 45.444V28.778L3.778 26l2.778 2.778v16.666l-2.778 2.778z",stroke:"M3.778 48.222L1 45.444V28.778L3.778 26l2.778 2.778v16.666l-2.778 2.778z"},F:{base:"M3.778 26L1 23.222V6.555l2.778-2.777 2.778 2.777v16.667L3.778 26z",stroke:"M3.778 26L1 23.222V6.555l2.778-2.777 2.778 2.777v16.667L3.778 26z"},G:{base:"M3.778 26l2.777-2.778h16.667L26 26l-2.778 2.778H6.555L3.778 26z",stroke:"M3.778 26l2.777-2.778h16.667L26 26l-2.778 2.778H6.555L3.778 26z"}},mr=function(e){var t=e.paths,n=t.base,r=t.stroke,a=e.fillColor,i=e.strokeColor;return o.a.createElement("g",null,o.a.createElement("path",{fill:a,fillRule:"evenodd",d:n,clipRule:"evenodd"}),o.a.createElement("path",{stroke:i,strokeWidth:".75",d:r}))},br=function(e){var t=e.fillColor,n=e.strokeColor;return o.a.createElement("g",{transform:"translate(29 46)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"}))},vr=function(e){var t=e.fillColor,n=e.strokeColor;return o.a.createElement("g",null,o.a.createElement("g",{transform:"translate(32 36)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"})),o.a.createElement("g",{transform:"translate(32 9)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"})))},gr=function(e){var t=e.value,n=e.hasColon,r=e.hasDecimal,a=e.color,i=e.backgroundColor,s=e.size,l=e.className,c=xt()(i).darken(.2).fade(.85),u=dr[t].map((function(e){return o.a.createElement(mr,{key:e,fillColor:a,strokeColor:i,paths:hr[e]})})),f=["A","B","C","D","E","F","G"].map((function(e){return o.a.createElement(mr,{key:e,fillColor:c,strokeColor:i,paths:hr[e]})})),p=n?s:s*(6/7),d=s*(9/7);return o.a.createElement("div",{className:l},o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:p,height:d},o.a.createElement("g",{fill:"none",style:{transform:"scale(".concat(Number(s)/42,")")}},f,u,n&&o.a.createElement(vr,{fillColor:a,strokeColor:i}),r&&o.a.createElement(br,{fillColor:a,strokeColor:i}))))},yr=function(e){var t=e.value,n=e.hasColon,r=e.hasDecimal,a=e.color,i=e.size,s=e.className,l=dr[t].map((function(e){return ye[e]})),c=n?i:i*(6/7),u=i*(9/7);return o.a.createElement(pr,{className:s,color:a},o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:c,height:u},ge,o.a.createElement("g",{fill:"none",fillRule:"evenodd",filter:"url(#darkLED-a)",style:{transform:"scale(".concat(Number(i)/42,")")}},l,n&&we,r&&xe)))},xr=function(e){return e.theme.dark?o.a.createElement(yr,e):o.a.createElement(gr,e)},wr=/^(\-)?((\.|:)?[0-9])*$/,Or=wr.test.bind(wr),kr=function(e){var t=Object(q.a)("leddisplay",e.theme),n=Or(e.value)?function(e,t){var n=e.value,r=e.color,a=e.backgroundColor,i=e.theme,s=e.size,l=n.toString().split("").reverse(),c=[];!function(e){var t=!1;"-"===e[e.length-1]&&(t=!0,e.pop());var n=e[e.length-1];[".",":"].includes(n)&&e.push("0");t&&e.push("-")}(l);var u=0;for(;l.length;){var f=l.pop(),p=l.pop();c.push(o.a.createElement(xr,{className:t+"__digit",theme:i,key:u++,value:f,hasColon:":"===p,hasDecimal:"."===p,color:r,backgroundColor:a,size:s})),p&&"."!==p&&":"!==p&&l.push(p)}return c}(e,t):null,r=o.a.createElement(cr,{backgroundColor:e.backgroundColor},n),a=Object(q.b)(e);return o.a.createElement("div",{id:e.id,className:t+(e.className?" "+e.className:""),style:e.style},o.a.createElement($.a,a,n?r:"Invalid Input"))};kr.defaultProps={color:c.c.PRIMARY,backgroundColor:"#fff",size:42,theme:c.e,labelPosition:"top"},kr.propTypes={id:i.a.string,value:i.a.oneOfType([i.a.number,i.a.string]),color:i.a.string,backgroundColor:i.a.string,size:i.a.number,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object};var Er=Object(s.d)(kr),Sr=n(15),_r=n.n(Sr);_r.a.prototype.UNSAFE_componentWillMount=_r.a.prototype.componentWillMount,_r.a.prototype.UNSAFE_componentWillReceiveProps=_r.a.prototype.componentWillReceiveProps,_r.a.prototype.UNSAFE_componentWillUpdate=_r.a.prototype.componentWillUpdate,delete _r.a.prototype.componentWillMount,delete _r.a.prototype.componentWillReceiveProps,delete _r.a.prototype.componentWillUpdate;var jr=_r.a;function Cr(e){return(Cr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Pr(){return(Pr=Object.assign||function(e){for(var t=1;t=this.props.min&&e<=this.props.max&&(this.setState({value:e}),this.props.setProps&&this.props.setProps({value:e}))}},{key:"render",value:function(){var e=this.props,t=e.size,n=e.theme,r=e.style,a=e.className,i=e.id,s=e.disabled,l=e.min,u=e.max,f={background:"none",boxShadow:"none",border:"none",color:n.secondary,cursor:"pointer"},p=Math.max(this.state.value?16-2*this.state.value.toString().length:16,10),d={borderRadius:3,border:n.dark?"none":"1px solid ".concat(c.c.GREY),outline:"none",paddingRight:p,paddingLeft:p,paddingTop:8,paddingBottom:8,width:t||56,color:n.dark?"#fff":c.c.OFF_WHITE,backgroundColor:n.dark?"#22272a":"#fff",fontSize:14,boxSizing:"border-box"},h=Object(q.a)("numericinput",n),m=Object(q.b)(this.props);return o.a.createElement("div",{id:i,className:h+(a?" "+a:""),style:r},o.a.createElement($.a,Pr({className:h+"__label"},m),o.a.createElement(jr,{className:h+"__input",disabled:s,style:{input:d,"input:not(.form-control)":d,btn:f,"btn:hover":f,"btn:active":f,"input:disabled":{opacity:.65,cursor:"not-allowed"}},min:l,max:u,value:this.state.value,onChange:this.setValue,mobile:!1})))}}])&&Mr(n.prototype,r),a&&Mr(n,a),t}(r.Component);Nr.defaultProps={min:0,max:10,theme:c.e,labelPosition:"top",persisted_props:["value"],persistence_type:"local",style:{display:"flex",justifyContent:"center"}},Nr.propTypes={id:i.a.string,value:i.a.number,size:i.a.number,min:i.a.number,max:i.a.number,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"])};var Ir=Object(s.d)(Nr);Ir.defaultProps=Nr.defaultProps;var Lr=Ir;function Rr(){var e=Wr(["\n box-shadow: 0 0 8px 2px ",";\n "]);return Rr=function(){return e},e}function Fr(){var e=Wr(["\n width: ","px;\n height: ","px;\n "]);return Fr=function(){return e},e}function Hr(){var e=Wr(["\n "," border-radius: 100%;\n padding: 0;\n margin-bottom: 8px;\n\n &::before,\n &::after {\n left: 4%;\n border-radius: 100%;\n transition: all 0.1s ease-in;\n }\n\n &::before {\n top: 8%;\n width: 86%;\n height: 86%;\n }\n\n &::after {\n top: 4%;\n width: 92%;\n height: 92%;\n\n ",";\n }\n\n &:hover::before {\n background-color: rgba(0, 0, 0, 0.8);\n }\n\n &:hover::after {\n box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.66);\n }\n\n &:focus::after,\n &:active::after {\n box-shadow: ",";\n }\n"]);return Hr=function(){return e},e}function zr(){var e=Wr(["\n width: ","px;\n height: ","px;\n "]);return zr=function(){return e},e}function Br(){var e=Wr(["\n border-radius: 50%;\n box-sizing: border-box;\n background: #fff;\n border: 1px solid ",";\n "," margin-bottom: ",";\n padding: 0;\n\n &:focus,\n &:hover {\n border-color: ",";\n }\n"]);return Br=function(){return e},e}function Ur(){var e=Wr(["\n cursor: pointer;\n outline: none;\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:disabled {\n opacity: ",";\n cursor: not-allowed;\n }\n\n ",";\n"]);return Ur=function(){return e},e}function Vr(){var e=Wr(["\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n\n & svg {\n margin: 0 auto;\n }\n"]);return Vr=function(){return e},e}function Wr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Gr=Object(s.c)("div")(Vr()),Yr=s.c.button(Ur(),(function(e){return e.theme.dark?1:.65}),(function(e){return e.theme.dark?Kr:Xr})),Xr=Object(s.b)(Br(),(function(e){return e.theme.secondary}),(function(e){var t=e.size;return Object(s.b)(zr(),t,t)}),(function(e){var t=e.size;return"".concat(.0625*t,"px")}),(function(e){return e.theme.secondary})),Kr=Object(s.b)(Hr(),(function(e){var t=e.size;return Object(s.b)(Fr(),t,t)}),(function(e){var t=e.on,n=e.color,r=e.theme;return t?Object(s.b)(Rr(),n||r.primary):""}),(function(e){var t=e.on,n=e.color,r=e.theme;return t?"0 0 8px 2px ".concat(n||r.primary):"0 0 3px 0 rgba(0,0,0,0.66)"}));Yr.defaultProps={theme:c.e};var $r=function(e){var t=e.color,n=e.theme,r=e.on,a=e.size;return o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:a,height:a,viewBox:"0 0 14 14"},o.a.createElement("path",{fill:r?t||n.primary:n.secondary,fillRule:"evenodd",d:"M24.5173333,14.68 C25.2764482,15.3271143 25.8799978,16.1111065 26.328,17.032 C26.7760022,17.9777825 27,18.9671059 27,20 C27,21.2693397 26.6826698,22.4453279 26.048,23.528 C25.4257747,24.5857831 24.5857831,25.4257747 23.528,26.048 C22.4453279,26.6826698 21.2693397,27 20,27 C18.7306603,27 17.5546721,26.6826698 16.472,26.048 C15.4142169,25.4257747 14.5742253,24.5857831 13.952,23.528 C13.3173302,22.4453279 13,21.2693397 13,20 C13,18.9671059 13.2302199,17.9777825 13.6906667,17.032 C14.1262244,16.1111065 14.7235518,15.3271143 15.4826667,14.68 L16.5653333,15.7626667 C15.9555525,16.2728914 15.4764462,16.8888853 15.128,17.6106667 C14.7546648,18.3697816 14.568,19.1662181 14.568,20 C14.568,20.9955605 14.8106642,21.9102181 15.296,22.744 C15.7813358,23.5653374 16.4346626,24.2186642 17.256,24.704 C18.0897819,25.1893358 19.0044395,25.432 20,25.432 C20.9955605,25.432 21.9102181,25.1893358 22.744,24.704 C23.5653374,24.2186642 24.2186642,23.5653374 24.704,22.744 C25.1893358,21.9102181 25.432,20.9955605 25.432,20 C25.432,19.1537735 25.2546684,18.3666703 24.9,17.6386667 C24.5453316,16.910663 24.056892,16.2977803 23.4346667,15.8 L24.5173333,14.68 Z M20.7653333,13 L20.7653333,20.7653333 L19.2346667,20.7653333 L19.2346667,13 L20.7653333,13 Z",transform:"translate(-13 -13)"}))};$r.defaultProps={theme:c.e};var qr=$r;function Zr(e){return(Zr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Jr(){return(Jr=Object.assign||function(e){for(var t=1;t=this.props.min&&e<=this.props.max){var t=this.formatPrecision(e);this.setState({value:t}),this.props.setProps&&this.props.setProps({value:t})}}},{key:"toggleInput",value:function(){if(!this.props.disabled){var e=!this.state.isInput;this.setState({isInput:e}),e&&this.setState({tempValue:this.state.value})}}},{key:"setTempValue",value:function(e){this.setState({tempValue:e})}},{key:"blur",value:function(){null!=this.state.tempValue&&this.setValue(this.state.tempValue),this.setState({tempValue:null}),this.toggleInput()}},{key:"render",value:function(){var e,t=this.props,n=t.id,r=t.className,a=t.style,i=t.size,s=t.theme,l=t.disabled,u=t.precision,f=t.min,p=t.max,d={background:"none",boxShadow:"none",border:"none",color:s.secondary,cursor:"pointer"},h=this.state.value?16-2*this.state.value.toString().length:16,m=Math.max(h,10),b={borderRadius:3,border:s.dark?"none":"1px solid ".concat(c.c.GREY),outline:"none",paddingRight:m,paddingLeft:m,paddingTop:4,paddingBottom:4,width:i||56+20*u,height:36,backgroundColor:s.dark?"#22272a":"#fff",color:s.dark?"#fff":"#000",fontSize:14,lineHeight:14,boxSizing:"border-box"},v=Object(q.a)("precisioninput",s.dark),g=Object(q.b)(this.props);return e=this.state.isInput?o.a.createElement(jr,{autoFocus:!0,className:v+"__input",disabled:l,style:{input:b,"input:not(.form-control)":b,btn:d,"btn:hover":d,"btn:active":d,"input:disabled":{opacity:.65,cursor:"not-allowed"}},min:f,max:p,value:this.state.tempValue,onChange:this.setTempValue,onBlur:this.blur}):o.a.createElement(No,{elementName:v+"__output",value:this.state.value,size:i,onClick:this.toggleInput,color:s.dark?"#fff":c.c.OFF_WHITE}),o.a.createElement("div",{id:n,className:v+(r?" "+r:""),style:Object.assign({},Ao,a)},o.a.createElement($.a,_o({className:v+"__label"},g),e))}}])&&jo(n.prototype,r),a&&jo(n,a),t}(r.Component),Do=function(e){if("-"===e[0]){e.shift();var t=e.shift();e.unshift("-".concat(t))}return e},No=function(e){var t=e.value,n=e.onClick,r=e.size,a=e.elementName,i=Eo(function(e){return Number(e).toExponential().replace("+","")}(t).split("e"),2),s=i[0],l=i[1],c=Do(s.split("")),u=Do(l.split(""));return o.a.createElement(vo,{size:r,onClick:n,className:a},c.map((function(e,t){return o.a.createElement(xo,{className:a+"__digit",key:"d".concat(t)},e)})),o.a.createElement(ko,{className:a+"__exp"},"E"),u.map((function(e,t){return o.a.createElement(ko,{className:a+"__expdigit",key:"e".concat(t)},e)})))};To.defaultProps={min:0,max:Number.MAX_SAFE_INTEGER,theme:c.e,labelPosition:"top",precision:2,persisted_props:["value"],persistence_type:"local"},To.propTypes={id:i.a.string,value:i.a.number,size:i.a.number,min:i.a.number,max:i.a.number,precision:i.a.number.isRequired,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"])};var Io=Object(s.d)(To);Io.defaultProps=To.defaultProps;var Lo=Io;function Ro(){var e=zo(["\n color: #ff6e6e;\n background-color: #22272a;\n\n text-shadow: 0 0 2px rgba(0, 0, 0, 0.9), 0 0 9px #ff6e6e;\n\n background-image: linear-gradient(145deg, rgba(255, 255, 255, 0.05) 0%, rgba(0, 0, 0, 0.5) 100%);\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1);\n\n display: block;\n box-sizing: border-box;\n border: none;\n border-radius: 2px;\n font-weight: bold;\n font-size: 12px;\n text-transform: uppercase;\n padding: 0;\n width: ",";\n height: ",";\n text-align: center;\n cursor: pointer;\n letter-spacing: 0.1;\n line-height: 1;\n\n background-color: #22272a;\n color: #ff1a1a;\n\n &::before,\n &::after {\n transition: all 0.1s ease-in;\n background-color: #e03a3a;\n }\n\n &:hover::before,\n &:hover::after {\n background-color: #e64545;\n }\n\n &:active::before,\n &:active::after {\n background-color: #c72121;\n }\n\n &:hover::after,\n &:active::after,\n &:focus::after {\n box-shadow: none;\n }\n"]);return Ro=function(){return e},e}function Fo(){var e=zo(["\n color: white;\n background-color: #ff5e5e;\n\n display: block;\n box-sizing: border-box;\n border: none;\n border-radius: 2px;\n font-weight: bold;\n font-size: 12px;\n text-transform: uppercase;\n padding: 0;\n width: ",";\n min-height: ",";\n text-align: center;\n cursor: pointer;\n letter-spacing: 0.1;\n line-height: 1;\n\n &:hover,\n &:focus,\n &:active {\n color: #fff;\n }\n\n &:hover {\n background-color: #ff8585;\n }\n\n &:active {\n background-color: #e64545;\n }\n"]);return Fo=function(){return e},e}function Ho(){var e=zo(["\n outline: none;\n transition: all 0.1s ease-in;\n ",";\n\n &:disabled {\n opacity: ",";\n cursor: not-allowed;\n }\n"]);return Ho=function(){return e},e}function zo(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Bo=s.c.button(Ho(),(function(e){return e.theme.dark?Vo:Uo}),(function(e){return e.theme.dark?1:.65}));Bo.defaultProps={theme:c.e};var Uo=Object(s.b)(Fo(),(function(e){var t=e.size;return"".concat(t,"px")}),(function(e){var t=e.size;return"".concat(.42*t,"px")})),Vo=Object(s.b)(Ro(),(function(e){var t=e.size;return"".concat(t,"px")}),(function(e){var t=e.size;return"".concat(.42*t,"px")})),Wo=function(e){var t=e.id,n=e.className,r=e.style,a=e.size,i=e.disabled,s=e.children,l=e.n_clicks,c=e.buttonText,u=e.theme,f=Object(q.a)("stopbutton",u),p=Object(q.b)(e);return o.a.createElement("div",{id:t,className:f+(n?" "+n:""),style:r},o.a.createElement($.a,p,o.a.createElement(Bo,{className:f+"__button",size:a,disabled:i,onClick:function(){e.setProps&&e.setProps({n_clicks:l+1})}},s||c)))};Wo.defaultProps={buttonText:"Stop",n_clicks:0,size:92,labelPosition:"top"},Wo.propTypes={id:i.a.string,size:i.a.number,buttonText:i.a.string,n_clicks:i.a.number,disabled:i.a.bool,children:i.a.node,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func};var Go=Object(s.d)(Wo),Yo=n(6),Xo=n.n(Yo),Ko=n(11),$o=n.n(Ko),qo=n(12),Zo=n.n(qo),Jo=n(9),Qo=n.n(Jo),ea=n(13),ta=n.n(ea),na=n(23),ra=n.n(na),oa=n(5),aa=n.n(oa),ia=function(e){var t,n,r=e.className,a=e.included,i=e.vertical,s=e.style,l=e.length,c=e.offset,u=e.reverse;l<0&&(u=!u,l=Math.abs(l),c=100-c);var f=i?(t={},aa()(t,u?"top":"bottom",c+"%"),aa()(t,u?"bottom":"top","auto"),aa()(t,"height",l+"%"),t):(n={},aa()(n,u?"right":"left",c+"%"),aa()(n,u?"left":"right","auto"),aa()(n,"width",l+"%"),n),p=Xo()({},s,f);return a?o.a.createElement("div",{className:r,style:p}):null},sa=n(24),la=n.n(sa),ca=n(41),ua=n.n(ca),fa=n(82),pa=n.n(fa),da=n(14),ha=n.n(da);function ma(e,t,n,r){var o=ha.a.unstable_batchedUpdates?function(e){ha.a.unstable_batchedUpdates(n,e)}:n;return pa()(e,t,o,r)}var ba=n(8),va=n.n(ba),ga=function(e){var t=e.prefixCls,n=e.vertical,r=e.reverse,a=e.marks,i=e.dots,s=e.step,l=e.included,c=e.lowerBound,u=e.upperBound,f=e.max,p=e.min,d=e.dotStyle,h=e.activeDotStyle,m=f-p,b=function(e,t,n,r,o,a){ra()(!n||r>0,"`Slider[step]` should be a positive number in order to make Slider[dots] work.");var i=Object.keys(t).map(parseFloat).sort((function(e,t){return e-t}));if(n&&r)for(var s=o;s<=a;s+=r)-1===i.indexOf(s)&&i.push(s);return i}(0,a,i,s,p,f).map((function(e){var a,i=Math.abs(e-p)/m*100+"%",s=!l&&e===u||l&&e<=u&&e>=c,f=n?Xo()({},d,aa()({},r?"top":"bottom",i)):Xo()({},d,aa()({},r?"right":"left",i));s&&(f=Xo()({},f,h));var b=va()((a={},aa()(a,t+"-dot",!0),aa()(a,t+"-dot-active",s),aa()(a,t+"-dot-reverse",r),a));return o.a.createElement("span",{className:b,style:f,key:e})}));return o.a.createElement("div",{className:t+"-step"},b)};ga.propTypes={prefixCls:i.a.string,activeDotStyle:i.a.object,dotStyle:i.a.object,min:i.a.number,max:i.a.number,upperBound:i.a.number,lowerBound:i.a.number,included:i.a.bool,dots:i.a.bool,step:i.a.number,marks:i.a.object,vertical:i.a.bool,reverse:i.a.bool};var ya=ga,xa=function(e){var t=e.className,n=e.vertical,r=e.reverse,a=e.marks,i=e.included,s=e.upperBound,l=e.lowerBound,c=e.max,u=e.min,f=e.onClickLabel,p=Object.keys(a),d=c-u,h=p.map(parseFloat).sort((function(e,t){return e-t})).map((function(e){var c,p=a[e],h="object"==typeof p&&!o.a.isValidElement(p),m=h?p.label:p;if(!m&&0!==m)return null;var b=!i&&e===s||i&&e<=s&&e>=l,v=va()((c={},aa()(c,t+"-text",!0),aa()(c,t+"-text-active",b),c)),g=aa()({marginBottom:"-50%"},r?"top":"bottom",(e-u)/d*100+"%"),y=aa()({transform:"translateX(-50%)",msTransform:"translateX(-50%)"},r?"right":"left",r?(e-u/4)/d*100+"%":(e-u)/d*100+"%"),x=n?g:y,w=h?Xo()({},x,p.style):x;return o.a.createElement("span",{className:v,style:w,key:e,onMouseDown:function(t){return f(t,e)},onTouchStart:function(t){return f(t,e)}},m)}));return o.a.createElement("div",{className:t},h)};xa.propTypes={className:i.a.string,vertical:i.a.bool,reverse:i.a.bool,marks:i.a.object,included:i.a.bool,upperBound:i.a.number,lowerBound:i.a.number,max:i.a.number,min:i.a.number,onClickLabel:i.a.func};var wa=xa,Oa=function(e){function t(){var e,n,r,o;$o()(this,t);for(var a=arguments.length,i=Array(a),s=0;s=_a.F1&&t<=_a.F12)return!1;switch(t){case _a.ALT:case _a.CAPS_LOCK:case _a.CONTEXT_MENU:case _a.CTRL:case _a.DOWN:case _a.END:case _a.ESC:case _a.HOME:case _a.INSERT:case _a.LEFT:case _a.MAC_FF_META:case _a.META:case _a.NUMLOCK:case _a.NUM_CENTER:case _a.PAGE_DOWN:case _a.PAGE_UP:case _a.PAUSE:case _a.PRINT_SCREEN:case _a.RIGHT:case _a.SHIFT:case _a.UP:case _a.WIN_KEY:case _a.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=_a.ZERO&&e<=_a.NINE)return!0;if(e>=_a.NUM_ZERO&&e<=_a.NUM_MULTIPLY)return!0;if(e>=_a.A&&e<=_a.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case _a.SPACE:case _a.QUESTION_MARK:case _a.NUM_PLUS:case _a.NUM_MINUS:case _a.NUM_PERIOD:case _a.NUM_DIVISION:case _a.SEMICOLON:case _a.DASH:case _a.EQUALS:case _a.COMMA:case _a.PERIOD:case _a.SLASH:case _a.APOSTROPHE:case _a.SINGLE_QUOTE:case _a.OPEN_SQUARE_BRACKET:case _a.BACKSLASH:case _a.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},ja=_a;function Ca(e,t){try{return Object.keys(t).some((function(n){return e.target===Object(da.findDOMNode)(t[n])}))}catch(e){return!1}}function Pa(e,t){var n=t.min,r=t.max;return er}function Ma(e){return e.touches.length>1||"touchend"===e.type.toLowerCase()&&e.touches.length>0}function Aa(e,t){var n=t.marks,r=t.step,o=t.min,a=t.max,i=Object.keys(n).map(parseFloat);if(null!==r){var s=Math.floor((a-o)/r),l=Math.min((e-o)/r,s),c=Math.round(l)*r+o;i.push(c)}var u=i.map((function(t){return Math.abs(e-t)}));return i[u.indexOf(Math.min.apply(Math,Sa()(u)))]}function Ta(e,t){return e?t.clientY:t.pageX}function Da(e,t){return e?t.touches[0].clientY:t.touches[0].pageX}function Na(e,t){var n=t.getBoundingClientRect();return e?n.top+.5*n.height:window.pageXOffset+n.left+.5*n.width}function Ia(e,t){var n=t.max,r=t.min;return e<=r?r:e>=n?n:e}function La(e,t){var n=t.step,r=isFinite(Aa(e,t))?Aa(e,t):0;return null===n?r:parseFloat(r.toFixed(function(e){var t=e.toString(),n=0;return t.indexOf(".")>=0&&(n=t.length-t.indexOf(".")-1),n}(n)))}function Ra(e){e.stopPropagation(),e.preventDefault()}function Fa(e,t,n){var r="increase";switch(e.keyCode){case ja.UP:r=t&&n?"decrease":"increase";break;case ja.RIGHT:r=!t&&n?"decrease":"increase";break;case ja.DOWN:r=t&&n?"increase":"decrease";break;case ja.LEFT:r=!t&&n?"increase":"decrease";break;case ja.END:return function(e,t){return t.max};case ja.HOME:return function(e,t){return t.min};case ja.PAGE_UP:return function(e,t){return e+2*t.step};case ja.PAGE_DOWN:return function(e,t){return e-2*t.step};default:return}return function(e,t){return function(e,t,n){var r={increase:function(e,t){return e+t},decrease:function(e,t){return e-t}},o=r[e](Object.keys(n.marks).indexOf(JSON.stringify(t)),1),a=Object.keys(n.marks)[o];return n.step?r[e](t,n.step):Object.keys(n.marks).length&&n.marks[a]?n.marks[a]:t}(r,e,t)}}function Ha(){}function za(e){var t,n;return n=t=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onMouseDown=function(e){if(0===e.button){var t=n.props.vertical,r=Ta(t,e);if(Ca(e,n.handlesRefs)){var o=Na(t,e.target);n.dragOffset=r-o,r=o}else n.dragOffset=0;n.removeDocumentEvents(),n.onStart(r),n.addDocumentMouseEvents()}},n.onTouchStart=function(e){if(!Ma(e)){var t=n.props.vertical,r=Da(t,e);if(Ca(e,n.handlesRefs)){var o=Na(t,e.target);n.dragOffset=r-o,r=o}else n.dragOffset=0;n.onStart(r),n.addDocumentTouchEvents(),Ra(e)}},n.onFocus=function(e){var t=n.props,r=t.onFocus,o=t.vertical;if(Ca(e,n.handlesRefs)){var a=Na(o,e.target);n.dragOffset=0,n.onStart(a),Ra(e),r&&r(e)}},n.onBlur=function(e){var t=n.props.onBlur;n.onEnd(),t&&t(e)},n.onMouseUp=function(){n.handlesRefs[n.prevMovedHandleIndex]&&n.handlesRefs[n.prevMovedHandleIndex].clickFocus()},n.onMouseMove=function(e){if(n.sliderRef){var t=Ta(n.props.vertical,e);n.onMove(e,t-n.dragOffset)}else n.onEnd()},n.onTouchMove=function(e){if(!Ma(e)&&n.sliderRef){var t=Da(n.props.vertical,e);n.onMove(e,t-n.dragOffset)}else n.onEnd()},n.onKeyDown=function(e){n.sliderRef&&Ca(e,n.handlesRefs)&&n.onKeyboard(e)},n.onClickMarkLabel=function(e,t){e.stopPropagation(),n.onChange({value:t}),n.setState({value:t},(function(){return n.onEnd(!0)}))},n.saveSlider=function(e){n.sliderRef=e};var r=e.step,o=e.max,a=e.min,i=!isFinite(o-a)||(o-a)%r==0;return ra()(!r||Math.floor(r)!==r||i,"Slider[max] - Slider[min] (%s) should be a multiple of Slider[step] (%s)",o-a,r),n.handlesRefs={},n}return ta()(t,e),Zo()(t,[{key:"componentDidMount",value:function(){this.document=this.sliderRef&&this.sliderRef.ownerDocument;var e=this.props,t=e.autoFocus,n=e.disabled;t&&!n&&this.focus()}},{key:"componentWillUnmount",value:function(){ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"componentWillUnmount",this)&&ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"componentWillUnmount",this).call(this),this.removeDocumentEvents()}},{key:"getSliderStart",value:function(){var e=this.sliderRef,t=this.props,n=t.vertical,r=t.reverse,o=e.getBoundingClientRect();return n?r?o.bottom:o.top:window.pageXOffset+(r?o.right:o.left)}},{key:"getSliderLength",value:function(){var e=this.sliderRef;if(!e)return 0;var t=e.getBoundingClientRect();return this.props.vertical?t.height:t.width}},{key:"addDocumentTouchEvents",value:function(){this.onTouchMoveListener=ma(this.document,"touchmove",this.onTouchMove),this.onTouchUpListener=ma(this.document,"touchend",this.onEnd)}},{key:"addDocumentMouseEvents",value:function(){this.onMouseMoveListener=ma(this.document,"mousemove",this.onMouseMove),this.onMouseUpListener=ma(this.document,"mouseup",this.onEnd)}},{key:"removeDocumentEvents",value:function(){this.onTouchMoveListener&&this.onTouchMoveListener.remove(),this.onTouchUpListener&&this.onTouchUpListener.remove(),this.onMouseMoveListener&&this.onMouseMoveListener.remove(),this.onMouseUpListener&&this.onMouseUpListener.remove()}},{key:"focus",value:function(){this.props.disabled||this.handlesRefs[0].focus()}},{key:"blur",value:function(){var e=this;this.props.disabled||Object.keys(this.handlesRefs).forEach((function(t){e.handlesRefs[t]&&e.handlesRefs[t].blur&&e.handlesRefs[t].blur()}))}},{key:"calcValue",value:function(e){var t=this.props,n=t.vertical,r=t.min,o=t.max,a=Math.abs(Math.max(e,0)/this.getSliderLength());return n?(1-a)*(o-r)+r:a*(o-r)+r}},{key:"calcValueByPos",value:function(e){var t=(this.props.reverse?-1:1)*(e-this.getSliderStart());return this.trimAlignValue(this.calcValue(t))}},{key:"calcOffset",value:function(e){var t=this.props,n=t.min;return 100*((e-n)/(t.max-n))}},{key:"saveHandle",value:function(e,t){this.handlesRefs[e]=t}},{key:"render",value:function(){var e,n=this.props,r=n.prefixCls,a=n.className,i=n.marks,s=n.dots,l=n.step,c=n.included,u=n.disabled,f=n.vertical,p=n.reverse,d=n.min,h=n.max,m=n.children,b=n.maximumTrackStyle,v=n.style,g=n.railStyle,y=n.dotStyle,x=n.activeDotStyle,w=ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"render",this).call(this),O=w.tracks,k=w.handles,E=va()(r,(e={},aa()(e,r+"-with-marks",Object.keys(i).length),aa()(e,r+"-disabled",u),aa()(e,r+"-vertical",f),aa()(e,a,a),e));return o.a.createElement("div",{ref:this.saveSlider,className:E,onTouchStart:u?Ha:this.onTouchStart,onMouseDown:u?Ha:this.onMouseDown,onMouseUp:u?Ha:this.onMouseUp,onKeyDown:u?Ha:this.onKeyDown,onFocus:u?Ha:this.onFocus,onBlur:u?Ha:this.onBlur,style:v},o.a.createElement("div",{className:r+"-rail",style:Xo()({},b,g)}),O,o.a.createElement(ya,{prefixCls:r,vertical:f,reverse:p,marks:i,dots:s,step:l,included:c,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:h,min:d,dotStyle:y,activeDotStyle:x}),k,o.a.createElement(wa,{className:r+"-mark",onClickLabel:u?Ha:this.onClickMarkLabel,vertical:f,marks:i,included:c,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:h,min:d,reverse:p}),m)}}]),t}(e),t.displayName="ComponentEnhancer("+e.displayName+")",t.propTypes=Xo()({},e.propTypes,{min:i.a.number,max:i.a.number,startPoint:i.a.number,step:i.a.number,marks:i.a.object,included:i.a.bool,className:i.a.string,prefixCls:i.a.string,disabled:i.a.bool,children:i.a.any,onBeforeChange:i.a.func,onChange:i.a.func,onAfterChange:i.a.func,handle:i.a.func,dots:i.a.bool,vertical:i.a.bool,style:i.a.object,reverse:i.a.bool,minimumTrackStyle:i.a.object,maximumTrackStyle:i.a.object,handleStyle:i.a.oneOfType([i.a.object,i.a.arrayOf(i.a.object)]),trackStyle:i.a.oneOfType([i.a.object,i.a.arrayOf(i.a.object)]),railStyle:i.a.object,dotStyle:i.a.object,activeDotStyle:i.a.object,autoFocus:i.a.bool,onFocus:i.a.func,onBlur:i.a.func}),t.defaultProps=Xo()({},e.defaultProps,{prefixCls:"rc-slider",className:"",min:0,max:100,step:1,marks:{},handle:function(e){var t=e.index,n=la()(e,["index"]);return delete n.dragging,null===n.value?null:o.a.createElement(ka,Xo()({},n,{key:t}))},onBeforeChange:Ha,onChange:Ha,onAfterChange:Ha,included:!0,disabled:!1,dots:!1,vertical:!1,reverse:!1,trackStyle:[{}],handleStyle:[{}],railStyle:{},dotStyle:{},activeDotStyle:{}}),n}var Ba=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onEnd=function(e){var t=n.state.dragging;n.removeDocumentEvents(),(t||e)&&n.props.onAfterChange(n.getValue()),n.setState({dragging:!1})};var r=void 0!==e.defaultValue?e.defaultValue:e.min,o=void 0!==e.value?e.value:r;return n.state={value:n.trimAlignValue(o),dragging:!1},ra()(!("minimumTrackStyle"in e),"minimumTrackStyle will be deprecated, please use trackStyle instead."),ra()(!("maximumTrackStyle"in e),"maximumTrackStyle will be deprecated, please use railStyle instead."),n}return ta()(t,e),Zo()(t,[{key:"componentDidUpdate",value:function(e,t){if("value"in this.props||"min"in this.props||"max"in this.props){var n=this.props,r=n.value,o=n.onChange,a=void 0!==r?r:t.value,i=this.trimAlignValue(a,this.props);i!==t.value&&(this.setState({value:i}),Pa(a,this.props)&&o(i))}}},{key:"onChange",value:function(e){var t=this.props,n=!("value"in t),r=e.value>this.props.max?Xo()({},e,{value:this.props.max}):e;n&&this.setState(r);var o=r.value;t.onChange(o)}},{key:"onStart",value:function(e){this.setState({dragging:!0});var t=this.props,n=this.getValue();t.onBeforeChange(n);var r=this.calcValueByPos(e);this.startValue=r,this.startPosition=e,r!==n&&(this.prevMovedHandleIndex=0,this.onChange({value:r}))}},{key:"onMove",value:function(e,t){Ra(e);var n=this.state.value,r=this.calcValueByPos(t);r!==n&&this.onChange({value:r})}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,r=Fa(e,t.vertical,n);if(r){Ra(e);var o=this.state.value,a=r(o,this.props),i=this.trimAlignValue(a);if(i===o)return;this.onChange({value:i}),this.props.onAfterChange(i),this.onEnd()}}},{key:"getValue",value:function(){return this.state.value}},{key:"getLowerBound",value:function(){return this.props.min}},{key:"getUpperBound",value:function(){return this.state.value}},{key:"trimAlignValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null===e)return null;var n=Xo()({},this.props,t),r=Ia(e,n);return La(r,n)}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,r=t.vertical,a=t.included,i=t.disabled,s=t.minimumTrackStyle,l=t.trackStyle,c=t.handleStyle,u=t.tabIndex,f=t.ariaLabelForHandle,p=t.ariaLabelledByForHandle,d=t.ariaValueTextFormatterForHandle,h=t.min,m=t.max,b=t.startPoint,v=t.reverse,g=t.handle,y=this.state,x=y.value,w=y.dragging,O=this.calcOffset(x),k=g({className:n+"-handle",prefixCls:n,vertical:r,offset:O,value:x,dragging:w,disabled:i,min:h,max:m,reverse:v,index:0,tabIndex:u,ariaLabel:f,ariaLabelledBy:p,ariaValueTextFormatter:d,style:c[0]||c,ref:function(t){return e.saveHandle(0,t)}}),E=void 0!==b?this.calcOffset(b):0,S=l[0]||l;return{tracks:o.a.createElement(ia,{className:n+"-track",vertical:r,included:a,offset:E,reverse:v,length:O-E,style:Xo()({},s,S)}),handles:k}}}]),t}(o.a.Component);Ba.propTypes={defaultValue:i.a.number,value:i.a.number,disabled:i.a.bool,autoFocus:i.a.bool,tabIndex:i.a.number,reverse:i.a.bool,min:i.a.number,max:i.a.number,startPoint:i.a.number,ariaLabelForHandle:i.a.string,ariaLabelledByForHandle:i.a.string,ariaValueTextFormatterForHandle:i.a.func};var Ua=za(Ba),Va=n(83),Wa=n.n(Va),Ga=function(e){var t=e.value,n=e.handle,r=e.bounds,o=e.props,a=o.allowCross,i=o.pushable,s=Number(i),l=Ia(t,o),c=l;return a||null==n||void 0===r||(n>0&&l<=r[n-1]+s&&(c=r[n-1]+s),n=r[n+1]-s&&(c=r[n+1]-s)),La(c,o)},Ya=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onEnd=function(e){var t=n.state.handle;n.removeDocumentEvents(),(null!==t||e)&&n.props.onAfterChange(n.getValue()),n.setState({handle:null})};var r=e.count,o=e.min,a=e.max,i=Array.apply(void 0,Sa()(Array(r+1))).map((function(){return o})),s="defaultValue"in e?e.defaultValue:i,l=(void 0!==e.value?e.value:s).map((function(t,n){return Ga({value:t,handle:n,props:e})})),c=l[0]===a?0:l.length-1;return n.state={handle:null,recent:c,bounds:l},n}return ta()(t,e),Zo()(t,[{key:"componentDidUpdate",value:function(e,t){var n=this;if(("value"in this.props||"min"in this.props||"max"in this.props)&&(this.props.min!==e.min||this.props.max!==e.max||!Wa()(this.props.value,e.value))){var r=this.props,o=r.onChange,a=r.value||t.bounds;if(a.some((function(e){return Pa(e,n.props)})))o(a.map((function(e){return Ia(e,n.props)})))}}},{key:"onChange",value:function(e){var t=this.props;if(!("value"in t))this.setState(e);else{var n={};["handle","recent"].forEach((function(t){void 0!==e[t]&&(n[t]=e[t])})),Object.keys(n).length&&this.setState(n)}var r=Xo()({},this.state,e).bounds;t.onChange(r)}},{key:"onStart",value:function(e){var t=this.props,n=this.state,r=this.getValue();t.onBeforeChange(r);var o=this.calcValueByPos(e);this.startValue=o,this.startPosition=e;var a=this.getClosestBound(o);if(this.prevMovedHandleIndex=this.getBoundNeedMoving(o,a),this.setState({handle:this.prevMovedHandleIndex,recent:this.prevMovedHandleIndex}),o!==r[this.prevMovedHandleIndex]){var i=[].concat(Sa()(n.bounds));i[this.prevMovedHandleIndex]=o,this.onChange({bounds:i})}}},{key:"onMove",value:function(e,t){Ra(e);var n=this.state,r=this.calcValueByPos(t);r!==n.bounds[n.handle]&&this.moveTo(r)}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,r=Fa(e,t.vertical,n);if(r){Ra(e);var o=this.state,a=this.props,i=o.bounds,s=o.handle,l=i[null===s?o.recent:s],c=r(l,a),u=Ga({value:c,handle:s,bounds:o.bounds,props:a});if(u===l)return;this.moveTo(u,!0)}}},{key:"getValue",value:function(){return this.state.bounds}},{key:"getClosestBound",value:function(e){for(var t=this.state.bounds,n=0,r=1;r=t[r]&&(n=r);return Math.abs(t[n+1]-e)=r.length||o<0)return!1;var a=t+n,i=r[o],s=this.props.pushable,l=n*(e[a]-i);return!!this.pushHandle(e,a,n,s-l)&&(e[t]=i,!0)}},{key:"trimAlignValue",value:function(e){var t=this.state,n=t.handle,r=t.bounds;return Ga({value:e,handle:n,bounds:r,props:this.props})}},{key:"render",value:function(){var e=this,t=this.state,n=t.handle,r=t.bounds,a=this.props,i=a.prefixCls,s=a.vertical,l=a.included,c=a.disabled,u=a.min,f=a.max,p=a.reverse,d=a.handle,h=a.trackStyle,m=a.handleStyle,b=a.tabIndex,v=a.ariaLabelGroupForHandles,g=a.ariaLabelledByGroupForHandles,y=a.ariaValueTextFormatterGroupForHandles,x=r.map((function(t){return e.calcOffset(t)})),w=i+"-handle",O=r.map((function(t,r){var o,a=b[r]||0;return(c||null===b[r])&&(a=null),d({className:va()((o={},aa()(o,w,!0),aa()(o,w+"-"+(r+1),!0),o)),prefixCls:i,vertical:s,offset:x[r],value:t,dragging:n===r,index:r,tabIndex:a,min:u,max:f,reverse:p,disabled:c,style:m[r],ref:function(t){return e.saveHandle(r,t)},ariaLabel:v[r],ariaLabelledBy:g[r],ariaValueTextFormatter:y[r]})}));return{tracks:r.slice(0,-1).map((function(e,t){var n,r=t+1,a=va()((n={},aa()(n,i+"-track",!0),aa()(n,i+"-track-"+r,!0),n));return o.a.createElement(ia,{className:a,vertical:s,reverse:p,included:l,offset:x[r-1],length:x[r]-x[r-1],style:h[t],key:r})})),handles:O}}}],[{key:"getDerivedStateFromProps",value:function(e,t){if("value"in e||"min"in e||"max"in e){var n=(e.value||t.bounds).map((function(n,r){return Ga({value:n,handle:r,bounds:t.bounds,props:e})}));return n.length===t.bounds.length&&n.every((function(e,n){return e===t.bounds[n]}))?null:Xo()({},t,{bounds:n})}return null}}]),t}(o.a.Component);Ya.displayName="Range",Ya.propTypes={autoFocus:i.a.bool,defaultValue:i.a.arrayOf(i.a.number),value:i.a.arrayOf(i.a.number),count:i.a.number,pushable:i.a.oneOfType([i.a.bool,i.a.number]),allowCross:i.a.bool,disabled:i.a.bool,reverse:i.a.bool,tabIndex:i.a.arrayOf(i.a.number),min:i.a.number,max:i.a.number,ariaLabelGroupForHandles:i.a.arrayOf(i.a.string),ariaLabelledByGroupForHandles:i.a.arrayOf(i.a.string),ariaValueTextFormatterGroupForHandles:i.a.arrayOf(i.a.func)},Ya.defaultProps={count:1,allowCross:!0,pushable:!1,tabIndex:[],ariaLabelGroupForHandles:[],ariaLabelledByGroupForHandles:[],ariaValueTextFormatterGroupForHandles:[]};var Xa=za(Ya);function Ka(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}function $a(e){return e instanceof HTMLElement?e:ha.a.findDOMNode(e)}function qa(e){return(qa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Za(e,t){"function"==typeof e?e(t):"object"===qa(e)&&e&&"current"in e&&(e.current=t)}function Ja(){for(var e=arguments.length,t=new Array(e),n=0;n=0&&t.left>=0&&t.bottom>t.top&&t.right>t.left?t:null}function ts(e){var t,n,r;if(qi.isWindow(e)||9===e.nodeType){var o=qi.getWindow(e);t={left:qi.getWindowScrollLeft(o),top:qi.getWindowScrollTop(o)},n=qi.viewportWidth(o),r=qi.viewportHeight(o)}else t=qi.offset(e),n=qi.outerWidth(e),r=qi.outerHeight(e);return t.width=n,t.height=r,t}function ns(e,t){var n=t.charAt(0),r=t.charAt(1),o=e.width,a=e.height,i=e.left,s=e.top;return"c"===n?s+=a/2:"b"===n&&(s+=a),"c"===r?i+=o/2:"r"===r&&(i+=o),{left:i,top:s}}function rs(e,t,n,r,o){var a=ns(t,n[1]),i=ns(e,n[0]),s=[i.left-a.left,i.top-a.top];return{left:Math.round(e.left-s[0]+r[0]-o[0]),top:Math.round(e.top-s[1]+r[1]-o[1])}}function os(e,t,n){return e.leftn.right}function as(e,t,n){return e.topn.bottom}function is(e,t,n){var r=[];return qi.each(e,(function(e){r.push(e.replace(t,(function(e){return n[e]})))})),r}function ss(e,t){return e[t]=-e[t],e}function ls(e,t){return(/%$/.test(e)?parseInt(e.substring(0,e.length-1),10)/100*t:parseInt(e,10))||0}function cs(e,t){e[0]=ls(e[0],t.width),e[1]=ls(e[1],t.height)}function us(e,t,n,r){var o=n.points,a=n.offset||[0,0],i=n.targetOffset||[0,0],s=n.overflow,l=n.source||e;a=[].concat(a),i=[].concat(i),s=s||{};var c={},u=0,f=es(l),p=ts(l);cs(a,p),cs(i,t);var d=rs(p,t,o,a,i),h=qi.merge(p,d);if(f&&(s.adjustX||s.adjustY)&&r){if(s.adjustX&&os(d,p,f)){var m=is(o,/[lr]/gi,{l:"r",r:"l"}),b=ss(a,0),v=ss(i,0);(function(e,t,n){return e.left>n.right||e.left+t.widthn.bottom||e.top+t.height=n.left&&o.left+a.width>n.right&&(a.width-=o.left+a.width-n.right),r.adjustX&&o.left+a.width>n.right&&(o.left=Math.max(n.right-a.width,n.left)),r.adjustY&&o.top=n.top&&o.top+a.height>n.bottom&&(a.height-=o.top+a.height-n.bottom),r.adjustY&&o.top+a.height>n.bottom&&(o.top=Math.max(n.bottom-a.height,n.top)),qi.mix(o,a)}(d,p,f,c))}return h.width!==p.width&&qi.css(l,"width",qi.width(l)+h.width-p.width),h.height!==p.height&&qi.css(l,"height",qi.height(l)+h.height-p.height),qi.offset(l,{left:h.left,top:h.top},{useCssRight:n.useCssRight,useCssBottom:n.useCssBottom,useCssTransform:n.useCssTransform,ignoreShake:n.ignoreShake}),{points:o,offset:a,targetOffset:i,overflow:c}}function fs(e,t,n){var r=n.target||t;return us(e,ts(r),n,!function(e){var t=es(e),n=ts(e);return!t||n.left+n.width<=t.left||n.top+n.height<=t.top||n.left>=t.right||n.top>=t.bottom}(r))}function ps(e,t,n){var r,o,a=qi.getDocument(e),i=a.defaultView||a.parentWindow,s=qi.getWindowScrollLeft(i),l=qi.getWindowScrollTop(i),c=qi.viewportWidth(i),u=qi.viewportHeight(i);r="pageX"in t?t.pageX:s+t.clientX,o="pageY"in t?t.pageY:l+t.clientY;var f=r>=0&&r<=s+c&&o>=0&&o<=l+u;return us(e,{left:r,top:o,width:0,height:0},function(e){for(var t=1;t1&&(p=o.a.createElement("div",{className:"".concat(n,"-content")},s)),o.a.createElement("div",{ref:t,className:va()(r,!a&&"".concat(e.hiddenClassName)),onMouseEnter:l,onMouseLeave:c,onMouseDown:u,onTouchStart:f,style:i},p)}));zs.displayName="PopupInner";var Bs=zs;function Us(e){var t=e.prefixCls,n=e.motion,r=e.animation,o=e.transitionName;return n||(r?{motionName:"".concat(t,"-").concat(r)}:o?{motionName:o}:null)}function Vs(e){return(Vs="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ws(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Gs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ys(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var El=Object(r.forwardRef)((function(e,t){var n=e.overlayClassName,a=e.trigger,i=void 0===a?["hover"]:a,s=e.mouseEnterDelay,l=void 0===s?0:s,c=e.mouseLeaveDelay,u=void 0===c?.1:c,f=e.overlayStyle,p=e.prefixCls,d=void 0===p?"rc-tooltip":p,h=e.children,m=e.onVisibleChange,b=e.afterVisibleChange,v=e.transitionName,g=e.animation,y=e.placement,x=void 0===y?"right":y,w=e.align,O=void 0===w?{}:w,k=e.destroyTooltipOnHide,E=void 0!==k&&k,S=e.defaultVisible,_=e.getTooltipContainer,j=kl(e,["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer"]),C=Object(r.useRef)(null);Object(r.useImperativeHandle)(t,(function(){return C.current}));var P=function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},n=t.isTarget,r=t.showLabel,a=o.a.createElement(vc,Ac({isTarget:n},e),o.a.createElement("div",{className:"label"},e.label),o.a.createElement("div",{className:"value"},e.value));return o.a.createElement(lc,Ac({isTarget:n},e),r&&a,o.a.createElement(fc,Ac({isTarget:n,showLabel:r},e)))},Dc=function(e){if(!e.color.ranges||!Re(e)){var t=Ve(e.color);return{trackStyle:{backgroundColor:t},activeDotStyle:e.theme.dark?{background:t,boxShadow:"0 0 6px 1px ".concat(t)}:{borderColor:t}}}return{railStyle:{backgroundImage:"".concat(Ue(e),", linear-gradient(0deg, #000, #000)"),backgroundBlendMode:e.theme.dark?"none":"overlay"},trackStyle:{mixBlendMode:"overlay",background:e.theme.dark?"#fff":"#000"},dotStyle:{display:"none"}}},Nc=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=function(e,t){return!t||"object"!==Oc(t)&&"function"!=typeof t?Pc(e):t}(this,Cc(t).call(this,e))).state={value:null!=e.value?e.value:e.min,trackStyle:Dc(e)},n.onChange=n.onChange.bind(Pc(n)),n.onAfterChange=n.onAfterChange.bind(Pc(n)),n.renderSliderHandle=n.renderSliderHandle.bind(Pc(n)),n.renderTargets=n.renderTargets.bind(Pc(n)),n.calcLabelOffset=n.calcLabelOffset.bind(Pc(n)),n}var n,r,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Mc(e,t)}(t,e),n=t,(r=[{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t={},n=Object(q.b)(this.props);void 0!==e.value&&e.value!==this.state.value&&(t.value=e.value),jl()(e.color,this.props.color)||(t.trackStyle=Dc(Sc({},n,{},e))),this.setState(t)}},{key:"onChange",value:function(e){var t=this.props,n=t.updatemode,r=t.setProps;this.props.value&&"drag"===n||this.setState({value:e}),"drag"===n&&r&&r({value:e})}},{key:"onAfterChange",value:function(e){var t=this.props,n=t.updatemode,r=t.setProps;"mouseup"===n&&r&&r({value:e})}},{key:"renderSliderHandle",value:function(e){var t=this.props.handleLabel,n=Sc({},Object(q.b)(this.props),{},e);return t?(n=Sc({},n,{value:t.showCurrentValue&&this.state.value,label:t.label||(t instanceof Object?" ":t),color:t.color||Ve(this.props.color),style:t.style}),Tc(n,{showLabel:!0})):Tc(n)}},{key:"renderTargets",value:function(){var e=Object(q.b)(this.props);return Object.entries(this.props.targets).reduce((function(t,n){var r=kc(n,2),o=r[0],a=r[1],i=Sc({},e,{label:a.label||a,value:a.showCurrentValue&&o,color:a.color,style:a.style}),s=Tc(i,{isTarget:!0,showLabel:!!a});return t[o]={style:bc,label:s},t}),{})}},{key:"calcLabelOffset",value:function(e){var t=e.vertical,n=e.labelPosition,r=e.marks,o=e.targets,a=e.handleLabel;if(t)return null;if("bottom"===n)return"transform: translateY(".concat(r?20:0,"px);");var i=!1;return Object.values(o).map((function(e){e.showCurrentValue&&(i=!0)})),a&&a.showCurrentValue&&(i=!0),"transform: translateY(".concat(i?-38:-16,"px);")}},{key:"render",value:function(){var e=this.state.value,t=this.props,n=t.className,r=t.id,a=t.theme,i=t.label,s=t.size,c=t.vertical,u=t.style,f=t.marks,p=Object(q.a)("slider",a.dark),d=Object(q.b)(this.props),h=this.props.vertical?Sc({},u,{marginLeft:"45px"}):Sc({},u,{marginTop:"45px"});return h=this.props.fullSize?this.props.vertical?Sc({},h,{height:"100%"}):Sc({},h,{width:"100%"}):h,o.a.createElement("div",{id:r,style:h,className:p+(n?" "+n:"")},o.a.createElement($.a,Ac({className:p+"__label",labelCSS:i?this.calcLabelOffset(this.props):null},d),o.a.createElement(sc,{fullSize:this.props.fullSize,size:s,vertical:c},o.a.createElement(Sl,Ac({className:p+"__slider",onChange:this.onChange,onAfterChange:this.onAfterChange,value:e,handle:this.renderSliderHandle,marks:Sc({},f,{},this.renderTargets())},this.state.trackStyle,Object(l.a)(["setProps","updatemode","value","marks"],d))))))}}])&&jc(n.prototype,r),a&&jc(n,a),t}(r.Component);Nc.defaultProps=Vc,Nc.propTypes=Wc;var Ic=Object(s.d)(Nc);function Lc(e){return(Lc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Rc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Fc(e,t){for(var n=0;no){b.current.innerHTML=e.exceedMessage?"string"==typeof e.exceedMessage?e.exceedMessage:e.exceedMessage(r,o)||"":""}else if(r div {\n margin-top: 56px;\n line-height: 28px;\n }\n"]);return Zc=function(){return e},e}function Jc(){var e=eu(["\n width: ","px;\n height: ","px;\n border-radius: 50%;\n background-color: ",";\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n bottom: -","px;\n z-index: -1;\n"]);return Jc=function(){return e},e}function Qc(){var e=eu(["\n display: flex;\n flex-direction: column;\n align-items: center;\n"]);return Qc=function(){return e},e}function eu(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var tu=s.c.div(Qc()),nu=s.c.div(Jc(),30,30,(function(e){return e.on?e.color||e.theme.primary:e.theme.secondary}),20);nu.defaultProps={theme:c.e};var ru=s.c.div(Zc());function ou(){return(ou=Object.assign||function(e){for(var t=1;t= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n// \nvar isPlainObject = (function (x) {\n return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x.constructor === Object;\n});\n\n// \nvar EMPTY_ARRAY = Object.freeze([]);\nvar EMPTY_OBJECT = Object.freeze({});\n\n// \nfunction isFunction(test) {\n return typeof test === 'function';\n}\n\n// \n\nfunction getComponentName(target) {\n return (process.env.NODE_ENV !== 'production' ? typeof target === 'string' && target : false) || target.displayName || target.name || 'Component';\n}\n\n// \nfunction isStatelessFunction(test) {\n return typeof test === 'function' && !(test.prototype && test.prototype.isReactComponent);\n}\n\n// \nfunction isStyledComponent(target) {\n return target && typeof target.styledComponentId === 'string';\n}\n\n// \n\nvar SC_ATTR = typeof process !== 'undefined' && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || 'data-styled';\n\nvar SC_VERSION_ATTR = 'data-styled-version';\n\nvar SC_STREAM_ATTR = 'data-styled-streamed';\n\nvar IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\n\nvar DISABLE_SPEEDY = typeof SC_DISABLE_SPEEDY === 'boolean' && SC_DISABLE_SPEEDY || typeof process !== 'undefined' && (process.env.REACT_APP_SC_DISABLE_SPEEDY || process.env.SC_DISABLE_SPEEDY) || process.env.NODE_ENV !== 'production';\n\n// Shared empty execution context when generating static styles\nvar STATIC_EXECUTION_CONTEXT = {};\n\n// \n\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n */\nvar ERRORS = process.env.NODE_ENV !== 'production' ? {\n \"1\": \"Cannot create styled-component for component: %s.\\n\\n\",\n \"2\": \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n \"3\": \"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",\n \"4\": \"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",\n \"5\": \"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",\n \"6\": \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n \"7\": \"ThemeProvider: Please return an object from your \\\"theme\\\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n\",\n \"8\": \"ThemeProvider: Please make your \\\"theme\\\" prop an object.\\n\\n\",\n \"9\": \"Missing document ``\\n\\n\",\n \"10\": \"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",\n \"11\": \"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",\n \"12\": \"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",\n \"13\": \"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\"\n} : {};\n\n/**\n * super basic version of sprintf\n */\nfunction format() {\n var a = arguments.length <= 0 ? undefined : arguments[0];\n var b = [];\n\n for (var c = 1, len = arguments.length; c < len; c += 1) {\n b.push(arguments.length <= c ? undefined : arguments[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n\n return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n */\n\nvar StyledComponentsError = function (_Error) {\n inherits(StyledComponentsError, _Error);\n\n function StyledComponentsError(code) {\n classCallCheck(this, StyledComponentsError);\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV === 'production') {\n var _this = possibleConstructorReturn(this, _Error.call(this, 'An error occurred. See https://github.com/styled-components/styled-components/blob/master/packages/styled-components/src/utils/errors.md#' + code + ' for more information.' + (interpolations.length > 0 ? ' Additional arguments: ' + interpolations.join(', ') : '')));\n } else {\n var _this = possibleConstructorReturn(this, _Error.call(this, format.apply(undefined, [ERRORS[code]].concat(interpolations)).trim()));\n }\n return possibleConstructorReturn(_this);\n }\n\n return StyledComponentsError;\n}(Error);\n\n// \nvar SC_COMPONENT_ID = /^[^\\S\\n]*?\\/\\* sc-component-id:\\s*(\\S+)\\s+\\*\\//gm;\n\nvar extractComps = (function (maybeCSS) {\n var css = '' + (maybeCSS || ''); // Definitely a string, and a clone\n var existingComponents = [];\n css.replace(SC_COMPONENT_ID, function (match, componentId, matchIndex) {\n existingComponents.push({ componentId: componentId, matchIndex: matchIndex });\n return match;\n });\n return existingComponents.map(function (_ref, i) {\n var componentId = _ref.componentId,\n matchIndex = _ref.matchIndex;\n\n var nextComp = existingComponents[i + 1];\n var cssFromDOM = nextComp ? css.slice(matchIndex, nextComp.matchIndex) : css.slice(matchIndex);\n return { componentId: componentId, cssFromDOM: cssFromDOM };\n });\n});\n\n// \n\nvar COMMENT_REGEX = /^\\s*\\/\\/.*$/gm;\n\n// NOTE: This stylis instance is only used to split rules from SSR'd style tags\nvar stylisSplitter = new Stylis({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: false,\n compress: false,\n semicolon: true\n});\n\nvar stylis = new Stylis({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: true,\n compress: false,\n semicolon: false // NOTE: This means \"autocomplete missing semicolons\"\n});\n\n// Wrap `insertRulePlugin to build a list of rules,\n// and then make our own plugin to return the rules. This\n// makes it easier to hook into the existing SSR architecture\n\nvar parsingRules = [];\n\n// eslint-disable-next-line consistent-return\nvar returnRulesPlugin = function returnRulesPlugin(context) {\n if (context === -2) {\n var parsedRules = parsingRules;\n parsingRules = [];\n return parsedRules;\n }\n};\n\nvar parseRulesPlugin = _insertRulePlugin(function (rule) {\n parsingRules.push(rule);\n});\n\nvar _componentId = void 0;\nvar _selector = void 0;\nvar _selectorRegexp = void 0;\n\nvar selfReferenceReplacer = function selfReferenceReplacer(match, offset, string) {\n if (\n // the first self-ref is always untouched\n offset > 0 &&\n // there should be at least two self-refs to do a replacement (.b > .b)\n string.slice(0, offset).indexOf(_selector) !== -1 &&\n // no consecutive self refs (.b.b); that is a precedence boost and treated differently\n string.slice(offset - _selector.length, offset) !== _selector) {\n return '.' + _componentId;\n }\n\n return match;\n};\n\n/**\n * When writing a style like\n *\n * & + & {\n * color: red;\n * }\n *\n * The second ampersand should be a reference to the static component class. stylis\n * has no knowledge of static class so we have to intelligently replace the base selector.\n */\nvar selfReferenceReplacementPlugin = function selfReferenceReplacementPlugin(context, _, selectors) {\n if (context === 2 && selectors.length && selectors[0].lastIndexOf(_selector) > 0) {\n // eslint-disable-next-line no-param-reassign\n selectors[0] = selectors[0].replace(_selectorRegexp, selfReferenceReplacer);\n }\n};\n\nstylis.use([selfReferenceReplacementPlugin, parseRulesPlugin, returnRulesPlugin]);\nstylisSplitter.use([parseRulesPlugin, returnRulesPlugin]);\n\nvar splitByRules = function splitByRules(css) {\n return stylisSplitter('', css);\n};\n\nfunction stringifyRules(rules, selector, prefix) {\n var componentId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '&';\n\n var flatCSS = rules.join('').replace(COMMENT_REGEX, ''); // replace JS comments\n\n var cssStr = selector && prefix ? prefix + ' ' + selector + ' { ' + flatCSS + ' }' : flatCSS;\n\n // stylis has no concept of state to be passed to plugins\n // but since JS is single=threaded, we can rely on that to ensure\n // these properties stay in sync with the current stylis run\n _componentId = componentId;\n _selector = selector;\n _selectorRegexp = new RegExp('\\\\' + _selector + '\\\\b', 'g');\n\n return stylis(prefix || !selector ? '' : selector, cssStr);\n}\n\n// \n/* eslint-disable camelcase, no-undef */\n\nvar getNonce = (function () {\n return typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n});\n\n// \n/* These are helpers for the StyleTags to keep track of the injected\n * rule names for each (component) ID that they're keeping track of.\n * They're crucial for detecting whether a name has already been\n * injected.\n * (This excludes rehydrated names) */\n\n/* adds a new ID:name pairing to a names dictionary */\nvar addNameForId = function addNameForId(names, id, name) {\n if (name) {\n // eslint-disable-next-line no-param-reassign\n var namesForId = names[id] || (names[id] = Object.create(null));\n namesForId[name] = true;\n }\n};\n\n/* resets an ID entirely by overwriting it in the dictionary */\nvar resetIdNames = function resetIdNames(names, id) {\n // eslint-disable-next-line no-param-reassign\n names[id] = Object.create(null);\n};\n\n/* factory for a names dictionary checking the existance of an ID:name pairing */\nvar hasNameForId = function hasNameForId(names) {\n return function (id, name) {\n return names[id] !== undefined && names[id][name];\n };\n};\n\n/* stringifies names for the html/element output */\nvar stringifyNames = function stringifyNames(names) {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in names) {\n str += Object.keys(names[id]).join(' ') + ' ';\n }\n return str.trim();\n};\n\n/* clones the nested names dictionary */\nvar cloneNames = function cloneNames(names) {\n var clone = Object.create(null);\n // eslint-disable-next-line guard-for-in\n for (var id in names) {\n clone[id] = _extends({}, names[id]);\n }\n return clone;\n};\n\n// \n\n/* These are helpers that deal with the insertRule (aka speedy) API\n * They are used in the StyleTags and specifically the speedy tag\n */\n\n/* retrieve a sheet for a given style tag */\nvar sheetForTag = function sheetForTag(tag) {\n // $FlowFixMe\n if (tag.sheet) return tag.sheet;\n\n /* Firefox quirk requires us to step through all stylesheets to find one owned by the given tag */\n var size = tag.ownerDocument.styleSheets.length;\n for (var i = 0; i < size; i += 1) {\n var sheet = tag.ownerDocument.styleSheets[i];\n // $FlowFixMe\n if (sheet.ownerNode === tag) return sheet;\n }\n\n /* we should always be able to find a tag */\n throw new StyledComponentsError(10);\n};\n\n/* insert a rule safely and return whether it was actually injected */\nvar safeInsertRule = function safeInsertRule(sheet, cssRule, index) {\n /* abort early if cssRule string is falsy */\n if (!cssRule) return false;\n\n var maxIndex = sheet.cssRules.length;\n\n try {\n /* use insertRule and cap passed index with maxIndex (no of cssRules) */\n sheet.insertRule(cssRule, index <= maxIndex ? index : maxIndex);\n } catch (err) {\n /* any error indicates an invalid rule */\n return false;\n }\n\n return true;\n};\n\n/* deletes `size` rules starting from `removalIndex` */\nvar deleteRules = function deleteRules(sheet, removalIndex, size) {\n var lowerBound = removalIndex - size;\n for (var i = removalIndex; i > lowerBound; i -= 1) {\n sheet.deleteRule(i);\n }\n};\n\n// \n\n/* this marker separates component styles and is important for rehydration */\nvar makeTextMarker = function makeTextMarker(id) {\n return '\\n/* sc-component-id: ' + id + ' */\\n';\n};\n\n/* add up all numbers in array up until and including the index */\nvar addUpUntilIndex = function addUpUntilIndex(sizes, index) {\n var totalUpToIndex = 0;\n for (var i = 0; i <= index; i += 1) {\n totalUpToIndex += sizes[i];\n }\n\n return totalUpToIndex;\n};\n\n/* create a new style tag after lastEl */\nvar makeStyleTag = function makeStyleTag(target, tagEl, insertBefore) {\n var targetDocument = document;\n if (target) targetDocument = target.ownerDocument;else if (tagEl) targetDocument = tagEl.ownerDocument;\n\n var el = targetDocument.createElement('style');\n el.setAttribute(SC_ATTR, '');\n el.setAttribute(SC_VERSION_ATTR, \"4.4.0\");\n\n var nonce = getNonce();\n if (nonce) {\n el.setAttribute('nonce', nonce);\n }\n\n /* Work around insertRule quirk in EdgeHTML */\n el.appendChild(targetDocument.createTextNode(''));\n\n if (target && !tagEl) {\n /* Append to target when no previous element was passed */\n target.appendChild(el);\n } else {\n if (!tagEl || !target || !tagEl.parentNode) {\n throw new StyledComponentsError(6);\n }\n\n /* Insert new style tag after the previous one */\n tagEl.parentNode.insertBefore(el, insertBefore ? tagEl : tagEl.nextSibling);\n }\n\n return el;\n};\n\n/* takes a css factory function and outputs an html styled tag factory */\nvar wrapAsHtmlTag = function wrapAsHtmlTag(css, names) {\n return function (additionalAttrs) {\n var nonce = getNonce();\n var attrs = [nonce && 'nonce=\"' + nonce + '\"', SC_ATTR + '=\"' + stringifyNames(names) + '\"', SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"', additionalAttrs];\n\n var htmlAttr = attrs.filter(Boolean).join(' ');\n return '';\n };\n};\n\n/* takes a css factory function and outputs an element factory */\nvar wrapAsElement = function wrapAsElement(css, names) {\n return function () {\n var _props;\n\n var props = (_props = {}, _props[SC_ATTR] = stringifyNames(names), _props[SC_VERSION_ATTR] = \"4.4.0\", _props);\n\n var nonce = getNonce();\n if (nonce) {\n // $FlowFixMe\n props.nonce = nonce;\n }\n\n // eslint-disable-next-line react/no-danger\n return React.createElement('style', _extends({}, props, { dangerouslySetInnerHTML: { __html: css() } }));\n };\n};\n\nvar getIdsFromMarkersFactory = function getIdsFromMarkersFactory(markers) {\n return function () {\n return Object.keys(markers);\n };\n};\n\n/* speedy tags utilise insertRule */\nvar makeSpeedyTag = function makeSpeedyTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var sizes = [];\n\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = sizes.length;\n sizes.push(0);\n resetIdNames(names, id);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var sheet = sheetForTag(el);\n var insertIndex = addUpUntilIndex(sizes, marker);\n\n var injectedRules = 0;\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = cssRules[i];\n var mayHaveImport = extractImport; /* @import rules are reordered to appear first */\n if (mayHaveImport && cssRule.indexOf('@import') !== -1) {\n importRules.push(cssRule);\n } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n mayHaveImport = false;\n injectedRules += 1;\n }\n }\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n\n sizes[marker] += injectedRules; /* add up no of injected rules */\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n // $FlowFixMe\n if (el.isConnected === false) return;\n\n var size = sizes[marker];\n var sheet = sheetForTag(el);\n var removalIndex = addUpUntilIndex(sizes, marker) - 1;\n deleteRules(sheet, removalIndex, size);\n sizes[marker] = 0;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var _sheetForTag = sheetForTag(el),\n cssRules = _sheetForTag.cssRules;\n\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += makeTextMarker(id);\n var marker = markers[id];\n var end = addUpUntilIndex(sizes, marker);\n var size = sizes[marker];\n for (var i = end - size; i < end; i += 1) {\n var rule = cssRules[i];\n if (rule !== undefined) {\n str += rule.cssText;\n }\n }\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeTextNode = function makeTextNode(targetDocument, id) {\n return targetDocument.createTextNode(makeTextMarker(id));\n};\n\nvar makeBrowserTag = function makeBrowserTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n\n var extractImport = getImportRuleTag !== undefined;\n\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = makeTextNode(el.ownerDocument, id);\n el.appendChild(markers[id]);\n names[id] = Object.create(null);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var rule = cssRules[i];\n var mayHaveImport = extractImport;\n if (mayHaveImport && rule.indexOf('@import') !== -1) {\n importRules.push(rule);\n } else {\n mayHaveImport = false;\n var separator = i === cssRulesSize - 1 ? '' : ' ';\n marker.appendData('' + rule + separator);\n }\n }\n\n addNameForId(names, id, name);\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n\n /* create new empty text node and replace the current one */\n var newMarker = makeTextNode(el.ownerDocument, id);\n el.replaceChild(newMarker, marker);\n markers[id] = newMarker;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += markers[id].data;\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeServerTag = function makeServerTag(namesArg, markersArg) {\n var names = namesArg === undefined ? Object.create(null) : namesArg;\n var markers = markersArg === undefined ? Object.create(null) : markersArg;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n return markers[id] = [''];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n marker[0] += cssRules.join(' ');\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n marker[0] = '';\n resetIdNames(names, id);\n };\n\n var css = function css() {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n var cssForId = markers[id][0];\n if (cssForId) {\n str += makeTextMarker(id) + cssForId;\n }\n }\n return str;\n };\n\n var clone = function clone() {\n var namesClone = cloneNames(names);\n var markersClone = Object.create(null);\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n markersClone[id] = [markers[id][0]];\n }\n\n return makeServerTag(namesClone, markersClone);\n };\n\n var tag = {\n clone: clone,\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: null,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n\n return tag;\n};\n\nvar makeTag = function makeTag(target, tagEl, forceServer, insertBefore, getImportRuleTag) {\n if (IS_BROWSER && !forceServer) {\n var el = makeStyleTag(target, tagEl, insertBefore);\n\n if (DISABLE_SPEEDY) {\n return makeBrowserTag(el, getImportRuleTag);\n } else {\n return makeSpeedyTag(el, getImportRuleTag);\n }\n }\n\n return makeServerTag();\n};\n\nvar rehydrate = function rehydrate(tag, els, extracted) {\n /* add all extracted components to the new tag */\n for (var i = 0, len = extracted.length; i < len; i += 1) {\n var _extracted$i = extracted[i],\n componentId = _extracted$i.componentId,\n cssFromDOM = _extracted$i.cssFromDOM;\n\n var cssRules = splitByRules(cssFromDOM);\n tag.insertRules(componentId, cssRules);\n }\n\n /* remove old HTMLStyleElements, since they have been rehydrated */\n for (var _i = 0, _len = els.length; _i < _len; _i += 1) {\n var el = els[_i];\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n};\n\n// \n\nvar SPLIT_REGEX = /\\s+/;\n\n/* determine the maximum number of components before tags are sharded */\nvar MAX_SIZE = void 0;\nif (IS_BROWSER) {\n /* in speedy mode we can keep a lot more rules in a sheet before a slowdown can be expected */\n MAX_SIZE = DISABLE_SPEEDY ? 40 : 1000;\n} else {\n /* for servers we do not need to shard at all */\n MAX_SIZE = -1;\n}\n\nvar sheetRunningId = 0;\nvar master = void 0;\n\nvar StyleSheet = function () {\n\n /* a map from ids to tags */\n\n /* deferred rules for a given id */\n\n /* this is used for not reinjecting rules via hasNameForId() */\n\n /* when rules for an id are removed using remove() we have to ignore rehydratedNames for it */\n\n /* a list of tags belonging to this StyleSheet */\n\n /* a tag for import rules */\n\n /* current capacity until a new tag must be created */\n\n /* children (aka clones) of this StyleSheet inheriting all and future injections */\n\n function StyleSheet() {\n var _this = this;\n\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : IS_BROWSER ? document.head : null;\n var forceServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n classCallCheck(this, StyleSheet);\n\n this.getImportRuleTag = function () {\n var importRuleTag = _this.importRuleTag;\n\n if (importRuleTag !== undefined) {\n return importRuleTag;\n }\n\n var firstTag = _this.tags[0];\n var insertBefore = true;\n\n return _this.importRuleTag = makeTag(_this.target, firstTag ? firstTag.styleTag : null, _this.forceServer, insertBefore);\n };\n\n sheetRunningId += 1;\n this.id = sheetRunningId;\n this.forceServer = forceServer;\n this.target = forceServer ? null : target;\n this.tagMap = {};\n this.deferred = {};\n this.rehydratedNames = {};\n this.ignoreRehydratedNames = {};\n this.tags = [];\n this.capacity = 1;\n this.clones = [];\n }\n\n /* rehydrate all SSR'd style tags */\n\n\n StyleSheet.prototype.rehydrate = function rehydrate$$1() {\n if (!IS_BROWSER || this.forceServer) return this;\n\n var els = [];\n var extracted = [];\n var isStreamed = false;\n\n /* retrieve all of our SSR style elements from the DOM */\n var nodes = document.querySelectorAll('style[' + SC_ATTR + '][' + SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"]');\n\n var nodesSize = nodes.length;\n\n /* abort rehydration if no previous style tags were found */\n if (!nodesSize) return this;\n\n for (var i = 0; i < nodesSize; i += 1) {\n var el = nodes[i];\n\n /* check if style tag is a streamed tag */\n if (!isStreamed) isStreamed = !!el.getAttribute(SC_STREAM_ATTR);\n\n /* retrieve all component names */\n var elNames = (el.getAttribute(SC_ATTR) || '').trim().split(SPLIT_REGEX);\n var elNamesSize = elNames.length;\n for (var j = 0, name; j < elNamesSize; j += 1) {\n name = elNames[j];\n /* add rehydrated name to sheet to avoid re-adding styles */\n this.rehydratedNames[name] = true;\n }\n\n /* extract all components and their CSS */\n extracted.push.apply(extracted, extractComps(el.textContent));\n\n /* store original HTMLStyleElement */\n els.push(el);\n }\n\n /* abort rehydration if nothing was extracted */\n var extractedSize = extracted.length;\n if (!extractedSize) return this;\n\n /* create a tag to be used for rehydration */\n var tag = this.makeTag(null);\n\n rehydrate(tag, els, extracted);\n\n /* reset capacity and adjust MAX_SIZE by the initial size of the rehydration */\n this.capacity = Math.max(1, MAX_SIZE - extractedSize);\n this.tags.push(tag);\n\n /* retrieve all component ids */\n for (var _j = 0; _j < extractedSize; _j += 1) {\n this.tagMap[extracted[_j].componentId] = tag;\n }\n\n return this;\n };\n\n /* retrieve a \"master\" instance of StyleSheet which is typically used when no other is available\n * The master StyleSheet is targeted by createGlobalStyle, keyframes, and components outside of any\n * StyleSheetManager's context */\n\n\n /* reset the internal \"master\" instance */\n StyleSheet.reset = function reset() {\n var forceServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n master = new StyleSheet(undefined, forceServer).rehydrate();\n };\n\n /* adds \"children\" to the StyleSheet that inherit all of the parents' rules\n * while their own rules do not affect the parent */\n\n\n StyleSheet.prototype.clone = function clone() {\n var sheet = new StyleSheet(this.target, this.forceServer);\n\n /* add to clone array */\n this.clones.push(sheet);\n\n /* clone all tags */\n sheet.tags = this.tags.map(function (tag) {\n var ids = tag.getIds();\n var newTag = tag.clone();\n\n /* reconstruct tagMap */\n for (var i = 0; i < ids.length; i += 1) {\n sheet.tagMap[ids[i]] = newTag;\n }\n\n return newTag;\n });\n\n /* clone other maps */\n sheet.rehydratedNames = _extends({}, this.rehydratedNames);\n sheet.deferred = _extends({}, this.deferred);\n\n return sheet;\n };\n\n /* force StyleSheet to create a new tag on the next injection */\n\n\n StyleSheet.prototype.sealAllTags = function sealAllTags() {\n this.capacity = 1;\n\n this.tags.forEach(function (tag) {\n // eslint-disable-next-line no-param-reassign\n tag.sealed = true;\n });\n };\n\n StyleSheet.prototype.makeTag = function makeTag$$1(tag) {\n var lastEl = tag ? tag.styleTag : null;\n var insertBefore = false;\n\n return makeTag(this.target, lastEl, this.forceServer, insertBefore, this.getImportRuleTag);\n };\n\n /* get a tag for a given componentId, assign the componentId to one, or shard */\n StyleSheet.prototype.getTagForId = function getTagForId(id) {\n /* simply return a tag, when the componentId was already assigned one */\n var prev = this.tagMap[id];\n if (prev !== undefined && !prev.sealed) {\n return prev;\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n /* shard (create a new tag) if the tag is exhausted (See MAX_SIZE) */\n this.capacity -= 1;\n\n if (this.capacity === 0) {\n this.capacity = MAX_SIZE;\n tag = this.makeTag(tag);\n this.tags.push(tag);\n }\n\n return this.tagMap[id] = tag;\n };\n\n /* mainly for createGlobalStyle to check for its id */\n\n\n StyleSheet.prototype.hasId = function hasId(id) {\n return this.tagMap[id] !== undefined;\n };\n\n /* caching layer checking id+name to already have a corresponding tag and injected rules */\n\n\n StyleSheet.prototype.hasNameForId = function hasNameForId(id, name) {\n /* exception for rehydrated names which are checked separately */\n if (this.ignoreRehydratedNames[id] === undefined && this.rehydratedNames[name]) {\n return true;\n }\n\n var tag = this.tagMap[id];\n return tag !== undefined && tag.hasNameForId(id, name);\n };\n\n /* registers a componentId and registers it on its tag */\n\n\n StyleSheet.prototype.deferredInject = function deferredInject(id, cssRules) {\n /* don't inject when the id is already registered */\n if (this.tagMap[id] !== undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].deferredInject(id, cssRules);\n }\n\n this.getTagForId(id).insertMarker(id);\n this.deferred[id] = cssRules;\n };\n\n /* injects rules for a given id with a name that will need to be cached */\n\n\n StyleSheet.prototype.inject = function inject(id, cssRules, name) {\n var clones = this.clones;\n\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].inject(id, cssRules, name);\n }\n\n var tag = this.getTagForId(id);\n\n /* add deferred rules for component */\n if (this.deferred[id] !== undefined) {\n // Combine passed cssRules with previously deferred CSS rules\n // NOTE: We cannot mutate the deferred array itself as all clones\n // do the same (see clones[i].inject)\n var rules = this.deferred[id].concat(cssRules);\n tag.insertRules(id, rules, name);\n\n this.deferred[id] = undefined;\n } else {\n tag.insertRules(id, cssRules, name);\n }\n };\n\n /* removes all rules for a given id, which doesn't remove its marker but resets it */\n\n\n StyleSheet.prototype.remove = function remove(id) {\n var tag = this.tagMap[id];\n if (tag === undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].remove(id);\n }\n\n /* remove all rules from the tag */\n tag.removeRules(id);\n\n /* ignore possible rehydrated names */\n this.ignoreRehydratedNames[id] = true;\n\n /* delete possible deferred rules */\n this.deferred[id] = undefined;\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n var id = this.id;\n\n\n return this.tags.map(function (tag, i) {\n var key = 'sc-' + id + '-' + i;\n return cloneElement(tag.toElement(), { key: key });\n });\n };\n\n createClass(StyleSheet, null, [{\n key: 'master',\n get: function get$$1() {\n return master || (master = new StyleSheet().rehydrate());\n }\n\n /* NOTE: This is just for backwards-compatibility with jest-styled-components */\n\n }, {\n key: 'instance',\n get: function get$$1() {\n return StyleSheet.master;\n }\n }]);\n return StyleSheet;\n}();\n\n// \n\nvar Keyframes = function () {\n function Keyframes(name, rules) {\n var _this = this;\n\n classCallCheck(this, Keyframes);\n\n this.inject = function (styleSheet) {\n if (!styleSheet.hasNameForId(_this.id, _this.name)) {\n styleSheet.inject(_this.id, _this.rules, _this.name);\n }\n };\n\n this.toString = function () {\n throw new StyledComponentsError(12, String(_this.name));\n };\n\n this.name = name;\n this.rules = rules;\n\n this.id = 'sc-keyframes-' + name;\n }\n\n Keyframes.prototype.getName = function getName() {\n return this.name;\n };\n\n return Keyframes;\n}();\n\n// \n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\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 * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return string.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\n// \n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nfunction addUnitIfNeeded(name, value) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n}\n\n// \n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nvar isFalsish = function isFalsish(chunk) {\n return chunk === undefined || chunk === null || chunk === false || chunk === '';\n};\n\nvar objToCssArray = function objToCssArray(obj, prevKey) {\n var rules = [];\n var keys = Object.keys(obj);\n\n keys.forEach(function (key) {\n if (!isFalsish(obj[key])) {\n if (isPlainObject(obj[key])) {\n rules.push.apply(rules, objToCssArray(obj[key], key));\n\n return rules;\n } else if (isFunction(obj[key])) {\n rules.push(hyphenateStyleName(key) + ':', obj[key], ';');\n\n return rules;\n }\n rules.push(hyphenateStyleName(key) + ': ' + addUnitIfNeeded(key, obj[key]) + ';');\n }\n return rules;\n });\n\n return prevKey ? [prevKey + ' {'].concat(rules, ['}']) : rules;\n};\n\nfunction flatten(chunk, executionContext, styleSheet) {\n if (Array.isArray(chunk)) {\n var ruleSet = [];\n\n for (var i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet);\n\n if (result === null) continue;else if (Array.isArray(result)) ruleSet.push.apply(ruleSet, result);else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return null;\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return '.' + chunk.styledComponentId;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n var _result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(_result)) {\n // eslint-disable-next-line no-console\n console.warn(getComponentName(chunk) + ' is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.');\n }\n\n return flatten(_result, executionContext, styleSheet);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet);\n return chunk.getName();\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n}\n\n// \n\nfunction css(styles) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return flatten(interleave(EMPTY_ARRAY, [styles].concat(interpolations)));\n }\n\n // $FlowFixMe\n return flatten(interleave(styles, interpolations));\n}\n\n// \n\nfunction constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n if (!isValidElementType(tag)) {\n throw new StyledComponentsError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n var templateFunction = function templateFunction() {\n return componentConstructor(tag, options, css.apply(undefined, arguments));\n };\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean)\n }));\n };\n\n return templateFunction;\n}\n\n// \n// Source: https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash(c) {\n for (var e = c.length | 0, a = e | 0, d = 0, b; e >= 4;) {\n b = c.charCodeAt(d) & 255 | (c.charCodeAt(++d) & 255) << 8 | (c.charCodeAt(++d) & 255) << 16 | (c.charCodeAt(++d) & 255) << 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), b ^= b >>> 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16) ^ b, e -= 4, ++d;\n }\n switch (e) {\n case 3:\n a ^= (c.charCodeAt(d + 2) & 255) << 16;\n case 2:\n a ^= (c.charCodeAt(d + 1) & 255) << 8;\n case 1:\n a ^= c.charCodeAt(d) & 255, a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n }\n a ^= a >>> 13;\n a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n return (a ^ a >>> 15) >>> 0;\n}\n\n// \n/* eslint-disable no-bitwise */\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nvar charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nvar getAlphabeticChar = function getAlphabeticChar(code) {\n return String.fromCharCode(code + (code > 25 ? 39 : 97));\n};\n\n/* input a number, usually a hash and convert it to base-52 */\nfunction generateAlphabeticName(code) {\n var name = '';\n var x = void 0;\n\n /* get a char and divide by alphabet-length */\n for (x = code; x > charsLength; x = Math.floor(x / charsLength)) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return getAlphabeticChar(x % charsLength) + name;\n}\n\n// \n\nfunction hasFunctionObjectKey(obj) {\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in obj) {\n if (isFunction(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isStaticRules(rules, attrs) {\n for (var i = 0; i < rules.length; i += 1) {\n var rule = rules[i];\n\n // recursive case\n if (Array.isArray(rule) && !isStaticRules(rule, attrs)) {\n return false;\n } else if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n if (attrs.some(function (x) {\n return isFunction(x) || hasFunctionObjectKey(x);\n })) return false;\n\n return true;\n}\n\n// \n\n/* combines hashStr (murmurhash) and nameGenerator for convenience */\nvar hasher = function hasher(str) {\n return generateAlphabeticName(murmurhash(str));\n};\n\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\n\nvar ComponentStyle = function () {\n function ComponentStyle(rules, attrs, componentId) {\n classCallCheck(this, ComponentStyle);\n\n this.rules = rules;\n this.isStatic = process.env.NODE_ENV === 'production' && isStaticRules(rules, attrs);\n this.componentId = componentId;\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n\n\n ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) {\n var isStatic = this.isStatic,\n componentId = this.componentId,\n lastClassName = this.lastClassName;\n\n if (IS_BROWSER && isStatic && typeof lastClassName === 'string' && styleSheet.hasNameForId(componentId, lastClassName)) {\n return lastClassName;\n }\n\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var name = hasher(this.componentId + flatCSS.join(''));\n if (!styleSheet.hasNameForId(componentId, name)) {\n styleSheet.inject(this.componentId, stringifyRules(flatCSS, '.' + name, undefined, componentId), name);\n }\n\n this.lastClassName = name;\n return name;\n };\n\n ComponentStyle.generateName = function generateName(str) {\n return hasher(str);\n };\n\n return ComponentStyle;\n}();\n\n// \n\nvar LIMIT = 200;\n\nvar createWarnTooManyClasses = (function (displayName) {\n var generatedClasses = {};\n var warningSeen = false;\n\n return function (className) {\n if (!warningSeen) {\n generatedClasses[className] = true;\n if (Object.keys(generatedClasses).length >= LIMIT) {\n // Unable to find latestRule in test environment.\n /* eslint-disable no-console, prefer-template */\n console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \\n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\\n' + 'Example:\\n' + ' const Component = styled.div.attrs(props => ({\\n' + ' style: {\\n' + ' background: props.background,\\n' + ' },\\n' + ' }))`width: 100%;`\\n\\n' + ' ');\n warningSeen = true;\n generatedClasses = {};\n }\n }\n };\n});\n\n// \n\nvar determineTheme = (function (props, fallbackTheme) {\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types, flowtype-errors/show-errors */\n var isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;\n /* eslint-enable */\n\n return theme;\n});\n\n// \nvar escapeRegex = /[[\\].#*$><+~=|^:(),\"'`-]+/g;\nvar dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nfunction escape(str) {\n return str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n\n// \n\nfunction isTag(target) {\n return typeof target === 'string' && (process.env.NODE_ENV !== 'production' ? target.charAt(0) === target.charAt(0).toLowerCase() : true);\n}\n\n// \n\nfunction generateDisplayName(target) {\n // $FlowFixMe\n return isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')';\n}\n\nvar _TYPE_STATICS;\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDerivedStateFromProps: true,\n propTypes: true,\n type: true\n};\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};\n\nvar TYPE_STATICS = (_TYPE_STATICS = {}, _TYPE_STATICS[ForwardRef] = {\n $$typeof: true,\n render: true\n}, _TYPE_STATICS);\n\nvar defineProperty$1 = Object.defineProperty,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n _Object$getOwnPropert = Object.getOwnPropertySymbols,\n getOwnPropertySymbols = _Object$getOwnPropert === undefined ? function () {\n return [];\n} : _Object$getOwnPropert,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getPrototypeOf = Object.getPrototypeOf,\n objectPrototype = Object.prototype;\nvar arrayPrototype = Array.prototype;\n\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n\n var keys = arrayPrototype.concat(getOwnPropertyNames(sourceComponent),\n // $FlowFixMe\n getOwnPropertySymbols(sourceComponent));\n\n var targetStatics = TYPE_STATICS[targetComponent.$$typeof] || REACT_STATICS;\n\n var sourceStatics = TYPE_STATICS[sourceComponent.$$typeof] || REACT_STATICS;\n\n var i = keys.length;\n var descriptor = void 0;\n var key = void 0;\n\n // eslint-disable-next-line no-plusplus\n while (i--) {\n key = keys[i];\n\n if (\n // $FlowFixMe\n !KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) &&\n // $FlowFixMe\n !(targetStatics && targetStatics[key])) {\n descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n if (descriptor) {\n try {\n // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {\n /* fail silently */\n }\n }\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\n// \nfunction isDerivedReactComponent(fn) {\n return !!(fn && fn.prototype && fn.prototype.isReactComponent);\n}\n\n// \n// Helper to call a given function, only once\nvar once = (function (cb) {\n var called = false;\n\n return function () {\n if (!called) {\n called = true;\n cb.apply(undefined, arguments);\n }\n };\n});\n\n// \n\nvar ThemeContext = createContext();\n\nvar ThemeConsumer = ThemeContext.Consumer;\n\n/**\n * Provide a theme to an entire react component tree via context\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider(props) {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext.bind(_this));\n _this.renderInner = _this.renderInner.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) return null;\n\n return React.createElement(\n ThemeContext.Consumer,\n null,\n this.renderInner\n );\n };\n\n ThemeProvider.prototype.renderInner = function renderInner(outerTheme) {\n var context = this.getContext(this.props.theme, outerTheme);\n\n return React.createElement(\n ThemeContext.Provider,\n { value: context },\n this.props.children\n );\n };\n\n /**\n * Get the theme from the props, supporting both (outerTheme) => {}\n * as well as object notation\n */\n\n\n ThemeProvider.prototype.getTheme = function getTheme(theme, outerTheme) {\n if (isFunction(theme)) {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme === null || Array.isArray(mergedTheme) || (typeof mergedTheme === 'undefined' ? 'undefined' : _typeof(mergedTheme)) !== 'object')) {\n throw new StyledComponentsError(7);\n }\n\n return mergedTheme;\n }\n\n if (theme === null || Array.isArray(theme) || (typeof theme === 'undefined' ? 'undefined' : _typeof(theme)) !== 'object') {\n throw new StyledComponentsError(8);\n }\n\n return _extends({}, outerTheme, theme);\n };\n\n ThemeProvider.prototype.getContext = function getContext(theme, outerTheme) {\n return this.getTheme(theme, outerTheme);\n };\n\n return ThemeProvider;\n}(Component);\n\n// \n\nvar CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nvar ServerStyleSheet = function () {\n function ServerStyleSheet() {\n classCallCheck(this, ServerStyleSheet);\n\n /* The master sheet might be reset, so keep a reference here */\n this.masterSheet = StyleSheet.master;\n this.instance = this.masterSheet.clone();\n this.sealed = false;\n }\n\n /**\n * Mark the ServerStyleSheet as being fully emitted and manually GC it from the\n * StyleSheet singleton.\n */\n\n\n ServerStyleSheet.prototype.seal = function seal() {\n if (!this.sealed) {\n /* Remove sealed StyleSheets from the master sheet */\n var index = this.masterSheet.clones.indexOf(this.instance);\n this.masterSheet.clones.splice(index, 1);\n this.sealed = true;\n }\n };\n\n ServerStyleSheet.prototype.collectStyles = function collectStyles(children) {\n if (this.sealed) {\n throw new StyledComponentsError(2);\n }\n\n return React.createElement(\n StyleSheetManager,\n { sheet: this.instance },\n children\n );\n };\n\n ServerStyleSheet.prototype.getStyleTags = function getStyleTags() {\n this.seal();\n return this.instance.toHTML();\n };\n\n ServerStyleSheet.prototype.getStyleElement = function getStyleElement() {\n this.seal();\n return this.instance.toReactElements();\n };\n\n ServerStyleSheet.prototype.interleaveWithNodeStream = function interleaveWithNodeStream(readableStream) {\n var _this = this;\n\n {\n throw new StyledComponentsError(3);\n }\n\n /* the tag index keeps track of which tags have already been emitted */\n var instance = this.instance;\n\n var instanceTagIndex = 0;\n\n var streamAttr = SC_STREAM_ATTR + '=\"true\"';\n\n var transformer = new stream.Transform({\n transform: function appendStyleChunks(chunk, /* encoding */_, callback) {\n var tags = instance.tags;\n\n var html = '';\n\n /* retrieve html for each new style tag */\n for (; instanceTagIndex < tags.length; instanceTagIndex += 1) {\n var tag = tags[instanceTagIndex];\n html += tag.toHTML(streamAttr);\n }\n\n /* force our StyleSheets to emit entirely new tags */\n instance.sealAllTags();\n\n var renderedHtml = chunk.toString();\n\n /* prepend style html to chunk, unless the start of the chunk is a closing tag in which case append right after that */\n if (CLOSING_TAG_R.test(renderedHtml)) {\n var endOfClosingTag = renderedHtml.indexOf('>');\n\n this.push(renderedHtml.slice(0, endOfClosingTag + 1) + html + renderedHtml.slice(endOfClosingTag + 1));\n } else this.push(html + renderedHtml);\n\n callback();\n }\n });\n\n readableStream.on('end', function () {\n return _this.seal();\n });\n\n readableStream.on('error', function (err) {\n _this.seal();\n\n // forward the error to the transform stream\n transformer.emit('error', err);\n });\n\n return readableStream.pipe(transformer);\n };\n\n return ServerStyleSheet;\n}();\n\n// \n\nvar StyleSheetContext = createContext();\nvar StyleSheetConsumer = StyleSheetContext.Consumer;\n\nvar StyleSheetManager = function (_Component) {\n inherits(StyleSheetManager, _Component);\n\n function StyleSheetManager(props) {\n classCallCheck(this, StyleSheetManager);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext);\n return _this;\n }\n\n StyleSheetManager.prototype.getContext = function getContext(sheet, target) {\n if (sheet) {\n return sheet;\n } else if (target) {\n return new StyleSheet(target);\n } else {\n throw new StyledComponentsError(4);\n }\n };\n\n StyleSheetManager.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n sheet = _props.sheet,\n target = _props.target;\n\n\n return React.createElement(\n StyleSheetContext.Provider,\n { value: this.getContext(sheet, target) },\n process.env.NODE_ENV !== 'production' ? React.Children.only(children) : children\n );\n };\n\n return StyleSheetManager;\n}(Component);\nprocess.env.NODE_ENV !== \"production\" ? StyleSheetManager.propTypes = {\n sheet: PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]),\n\n target: PropTypes.shape({\n appendChild: PropTypes.func.isRequired\n })\n} : void 0;\n\n// \n\nvar THEME_PROP_REGEX = /\\.theme[.[]/;\nvar identifiers = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(_ComponentStyle, _displayName, parentComponentId) {\n var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName);\n\n /**\n * This ensures uniqueness if two components happen to share\n * the same displayName.\n */\n var nr = (identifiers[displayName] || 0) + 1;\n identifiers[displayName] = nr;\n\n var componentId = displayName + '-' + _ComponentStyle.generateName(displayName + nr);\n\n return parentComponentId ? parentComponentId + '-' + componentId : componentId;\n}\n\n// $FlowFixMe\n\nvar StyledComponent = function (_Component) {\n inherits(StyledComponent, _Component);\n\n function StyledComponent() {\n classCallCheck(this, StyledComponent);\n\n var _this = possibleConstructorReturn(this, _Component.call(this));\n\n _this.attrs = {};\n\n _this.renderOuter = _this.renderOuter.bind(_this);\n _this.renderInner = _this.renderInner.bind(_this);\n\n if (process.env.NODE_ENV !== 'production') {\n _this.warnInnerRef = once(function (displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('The \"innerRef\" API has been removed in styled-components v4 in favor of React 16 ref forwarding, use \"ref\" instead like a typical component. \"innerRef\" was detected on component \"' + displayName + '\".')\n );\n });\n\n _this.warnAttrsFnObjectKeyDeprecated = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('Functions as object-form attrs({}) keys are now deprecated and will be removed in a future version of styled-components. Switch to the new attrs(props => ({})) syntax instead for easier and more powerful composition. The attrs key in question is \"' + key + '\" on component \"' + displayName + '\".', '\\n ' + new Error().stack)\n );\n });\n\n _this.warnNonStyledComponentAttrsObjectKey = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('It looks like you\\'ve used a non styled-component as the value for the \"' + key + '\" prop in an object-form attrs constructor of \"' + displayName + '\".\\n' + 'You should use the new function-form attrs constructor which avoids this issue: attrs(props => ({ yourStuff }))\\n' + \"To continue using the deprecated object syntax, you'll need to wrap your component prop in a function to make it available inside the styled component (you'll still get the deprecation warning though.)\\n\" + ('For example, { ' + key + ': () => InnerComponent } instead of { ' + key + ': InnerComponent }'))\n );\n });\n }\n return _this;\n }\n\n StyledComponent.prototype.render = function render() {\n return React.createElement(\n StyleSheetConsumer,\n null,\n this.renderOuter\n );\n };\n\n StyledComponent.prototype.renderOuter = function renderOuter() {\n var styleSheet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : StyleSheet.master;\n\n this.styleSheet = styleSheet;\n\n // No need to subscribe a static component to theme changes, it won't change anything\n if (this.props.forwardedComponent.componentStyle.isStatic) return this.renderInner();\n\n return React.createElement(\n ThemeConsumer,\n null,\n this.renderInner\n );\n };\n\n StyledComponent.prototype.renderInner = function renderInner(theme) {\n var _props$forwardedCompo = this.props.forwardedComponent,\n componentStyle = _props$forwardedCompo.componentStyle,\n defaultProps = _props$forwardedCompo.defaultProps,\n displayName = _props$forwardedCompo.displayName,\n foldedComponentIds = _props$forwardedCompo.foldedComponentIds,\n styledComponentId = _props$forwardedCompo.styledComponentId,\n target = _props$forwardedCompo.target,\n usesTheme = _props$forwardedCompo.usesTheme;\n\n\n var generatedClassName = void 0;\n var rawTheme = void 0;\n\n if (componentStyle.isStatic) {\n generatedClassName = this.generateAndInjectStyles(EMPTY_OBJECT, this.props);\n } else {\n rawTheme = determineTheme(this.props, theme, defaultProps);\n generatedClassName = this.generateAndInjectStyles(rawTheme || EMPTY_OBJECT, this.props);\n\n if (process.env.NODE_ENV !== 'production' && usesTheme && !rawTheme) {\n console.error('Component \\'' +\n // $FlowFixMe\n displayName + '\\' (.' + styledComponentId + ') references the \\'theme\\' prop in its styles but no theme was provided via prop or .');\n }\n }\n\n var elementToBeCreated = this.props.as || this.attrs.as || target;\n var isTargetTag = isTag(elementToBeCreated);\n\n var propsForElement = {};\n var computedProps = _extends({}, this.props, this.attrs);\n\n var key = void 0;\n // eslint-disable-next-line guard-for-in\n for (key in computedProps) {\n if (process.env.NODE_ENV !== 'production' && key === 'innerRef' && isTargetTag) {\n this.warnInnerRef(displayName);\n }\n\n if (key === 'forwardedComponent' || key === 'as') {\n continue;\n } else if (key === 'forwardedRef') propsForElement.ref = computedProps[key];else if (key === 'forwardedAs') propsForElement.as = computedProps[key];else if (!isTargetTag || validAttr(key)) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (this.props.style && this.attrs.style) {\n propsForElement.style = _extends({}, this.attrs.style, this.props.style);\n }\n\n propsForElement.className = Array.prototype.concat(foldedComponentIds, styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : null, this.props.className, this.attrs.className).filter(Boolean).join(' ');\n\n return createElement(elementToBeCreated, propsForElement);\n };\n\n StyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props, attrs) {\n var _this2 = this;\n\n var context = _extends({}, props, { theme: theme });\n\n if (!attrs.length) return context;\n\n this.attrs = {};\n\n attrs.forEach(function (attrDef) {\n var resolvedAttrDef = attrDef;\n var attrDefWasFn = false;\n var attr = void 0;\n var key = void 0;\n\n if (isFunction(resolvedAttrDef)) {\n // $FlowFixMe\n resolvedAttrDef = resolvedAttrDef(context);\n attrDefWasFn = true;\n }\n\n /* eslint-disable guard-for-in */\n // $FlowFixMe\n for (key in resolvedAttrDef) {\n attr = resolvedAttrDef[key];\n\n if (!attrDefWasFn) {\n if (isFunction(attr) && !isDerivedReactComponent(attr) && !isStyledComponent(attr)) {\n if (process.env.NODE_ENV !== 'production') {\n _this2.warnAttrsFnObjectKeyDeprecated(key, props.forwardedComponent.displayName);\n }\n\n attr = attr(context);\n\n if (process.env.NODE_ENV !== 'production' && React.isValidElement(attr)) {\n _this2.warnNonStyledComponentAttrsObjectKey(key, props.forwardedComponent.displayName);\n }\n }\n }\n\n _this2.attrs[key] = attr;\n context[key] = attr;\n }\n /* eslint-enable */\n });\n\n return context;\n };\n\n StyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var _props$forwardedCompo2 = props.forwardedComponent,\n attrs = _props$forwardedCompo2.attrs,\n componentStyle = _props$forwardedCompo2.componentStyle,\n warnTooManyClasses = _props$forwardedCompo2.warnTooManyClasses;\n\n // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n\n if (componentStyle.isStatic && !attrs.length) {\n return componentStyle.generateAndInjectStyles(EMPTY_OBJECT, this.styleSheet);\n }\n\n var className = componentStyle.generateAndInjectStyles(this.buildExecutionContext(theme, props, attrs), this.styleSheet);\n\n if (process.env.NODE_ENV !== 'production' && warnTooManyClasses) warnTooManyClasses(className);\n\n return className;\n };\n\n return StyledComponent;\n}(Component);\n\nfunction createStyledComponent(target, options, rules) {\n var isTargetStyledComp = isStyledComponent(target);\n var isClass = !isTag(target);\n\n var _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? generateDisplayName(target) : _options$displayName,\n _options$componentId = options.componentId,\n componentId = _options$componentId === undefined ? generateId(ComponentStyle, options.displayName, options.parentComponentId) : _options$componentId,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? StyledComponent : _options$ParentCompon,\n _options$attrs = options.attrs,\n attrs = _options$attrs === undefined ? EMPTY_ARRAY : _options$attrs;\n\n\n var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n var finalAttrs =\n // $FlowFixMe\n isTargetStyledComp && target.attrs ? Array.prototype.concat(target.attrs, attrs).filter(Boolean) : attrs;\n\n var componentStyle = new ComponentStyle(isTargetStyledComp ? // fold the underlying StyledComponent rules up (implicit extend)\n // $FlowFixMe\n target.componentStyle.rules.concat(rules) : rules, finalAttrs, styledComponentId);\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n var WrappedStyledComponent = void 0;\n var forwardRef = function forwardRef(props, ref) {\n return React.createElement(ParentComponent, _extends({}, props, { forwardedComponent: WrappedStyledComponent, forwardedRef: ref }));\n };\n forwardRef.displayName = displayName;\n WrappedStyledComponent = React.forwardRef(forwardRef);\n WrappedStyledComponent.displayName = displayName;\n\n // $FlowFixMe\n WrappedStyledComponent.attrs = finalAttrs;\n // $FlowFixMe\n WrappedStyledComponent.componentStyle = componentStyle;\n\n // $FlowFixMe\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp ? // $FlowFixMe\n Array.prototype.concat(target.foldedComponentIds, target.styledComponentId) : EMPTY_ARRAY;\n\n // $FlowFixMe\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n // $FlowFixMe\n WrappedStyledComponent.target = isTargetStyledComp ? target.target : target;\n\n // $FlowFixMe\n WrappedStyledComponent.withComponent = function withComponent(tag) {\n var previousComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['componentId']);\n\n\n var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag)));\n\n var newOptions = _extends({}, optionsToCopy, {\n attrs: finalAttrs,\n componentId: newComponentId,\n ParentComponent: ParentComponent\n });\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n // $FlowFixMe\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get: function get$$1() {\n return this._foldedDefaultProps;\n },\n set: function set$$1(obj) {\n // $FlowFixMe\n this._foldedDefaultProps = isTargetStyledComp ? merge(target.defaultProps, obj) : obj;\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n WrappedStyledComponent.usesTheme = componentStyle.rules.some(function (x) {\n return isFunction(x) && THEME_PROP_REGEX.test(x.toString());\n });\n\n // $FlowFixMe\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName);\n }\n\n // $FlowFixMe\n WrappedStyledComponent.toString = function () {\n return '.' + WrappedStyledComponent.styledComponentId;\n };\n\n if (isClass) {\n hoistNonReactStatics(WrappedStyledComponent, target, {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n styledComponentId: true,\n target: true,\n withComponent: true\n });\n }\n\n return WrappedStyledComponent;\n}\n\n// \n// Thanks to ReactDOMFactories for this handy list!\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr',\n\n// SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'marker', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// \n\nvar styled = function styled(tag) {\n return constructWithOptions(createStyledComponent, tag);\n};\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(function (domElement) {\n styled[domElement] = styled(domElement);\n});\n\n// \n\nvar GlobalStyle = function () {\n function GlobalStyle(rules, componentId) {\n classCallCheck(this, GlobalStyle);\n\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules, EMPTY_ARRAY);\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n GlobalStyle.prototype.createStyles = function createStyles(executionContext, styleSheet) {\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var css = stringifyRules(flatCSS, '');\n\n styleSheet.inject(this.componentId, css);\n };\n\n GlobalStyle.prototype.removeStyles = function removeStyles(styleSheet) {\n var componentId = this.componentId;\n\n if (styleSheet.hasId(componentId)) {\n styleSheet.remove(componentId);\n }\n };\n\n // TODO: overwrite in-place instead of remove+create?\n\n\n GlobalStyle.prototype.renderStyles = function renderStyles(executionContext, styleSheet) {\n this.removeStyles(styleSheet);\n this.createStyles(executionContext, styleSheet);\n };\n\n return GlobalStyle;\n}();\n\n// \n\n// place our cache into shared context so it'll persist between HMRs\nif (IS_BROWSER) {\n window.scCGSHMRCache = {};\n}\n\nfunction createGlobalStyle(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var id = 'sc-global-' + murmurhash(JSON.stringify(rules));\n var style = new GlobalStyle(rules, id);\n\n var GlobalStyleComponent = function (_React$Component) {\n inherits(GlobalStyleComponent, _React$Component);\n\n function GlobalStyleComponent(props) {\n classCallCheck(this, GlobalStyleComponent);\n\n var _this = possibleConstructorReturn(this, _React$Component.call(this, props));\n\n var _this$constructor = _this.constructor,\n globalStyle = _this$constructor.globalStyle,\n styledComponentId = _this$constructor.styledComponentId;\n\n\n if (IS_BROWSER) {\n window.scCGSHMRCache[styledComponentId] = (window.scCGSHMRCache[styledComponentId] || 0) + 1;\n }\n\n /**\n * This fixes HMR compatibility. Don't ask me why, but this combination of\n * caching the closure variables via statics and then persisting the statics in\n * state works across HMR where no other combination did. ¯\\_(ツ)_/¯\n */\n _this.state = {\n globalStyle: globalStyle,\n styledComponentId: styledComponentId\n };\n return _this;\n }\n\n GlobalStyleComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n if (window.scCGSHMRCache[this.state.styledComponentId]) {\n window.scCGSHMRCache[this.state.styledComponentId] -= 1;\n }\n /**\n * Depending on the order \"render\" is called this can cause the styles to be lost\n * until the next render pass of the remaining instance, which may\n * not be immediate.\n */\n if (window.scCGSHMRCache[this.state.styledComponentId] === 0) {\n this.state.globalStyle.removeStyles(this.styleSheet);\n }\n };\n\n GlobalStyleComponent.prototype.render = function render() {\n var _this2 = this;\n\n if (process.env.NODE_ENV !== 'production' && React.Children.count(this.props.children)) {\n // eslint-disable-next-line no-console\n console.warn('The global style component ' + this.state.styledComponentId + ' was given child JSX. createGlobalStyle does not render children.');\n }\n\n return React.createElement(\n StyleSheetConsumer,\n null,\n function (styleSheet) {\n _this2.styleSheet = styleSheet || StyleSheet.master;\n\n var globalStyle = _this2.state.globalStyle;\n\n\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(STATIC_EXECUTION_CONTEXT, _this2.styleSheet);\n\n return null;\n } else {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = _this2.constructor.defaultProps;\n\n\n var context = _extends({}, _this2.props);\n\n if (typeof theme !== 'undefined') {\n context.theme = determineTheme(_this2.props, theme, defaultProps);\n }\n\n globalStyle.renderStyles(context, _this2.styleSheet);\n\n return null;\n }\n );\n }\n }\n );\n };\n\n return GlobalStyleComponent;\n }(React.Component);\n\n GlobalStyleComponent.globalStyle = style;\n GlobalStyleComponent.styledComponentId = id;\n\n\n return GlobalStyleComponent;\n}\n\n// \n\nvar replaceWhitespace = function replaceWhitespace(str) {\n return str.replace(/\\s|\\\\n/g, '');\n};\n\nfunction keyframes(strings) {\n /* Warning if you've used keyframes on React Native */\n if (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn('`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.');\n }\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n\n var name = generateAlphabeticName(murmurhash(replaceWhitespace(JSON.stringify(rules))));\n\n return new Keyframes(name, stringifyRules(rules, name, '@keyframes'));\n}\n\n// \n\nvar withTheme = (function (Component$$1) {\n var WithTheme = React.forwardRef(function (props, ref) {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = Component$$1.defaultProps;\n\n var themeProp = determineTheme(props, theme, defaultProps);\n\n if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + getComponentName(Component$$1) + '\"');\n }\n\n return React.createElement(Component$$1, _extends({}, props, { theme: themeProp, ref: ref }));\n }\n );\n });\n\n hoistNonReactStatics(WithTheme, Component$$1);\n\n WithTheme.displayName = 'WithTheme(' + getComponentName(Component$$1) + ')';\n\n return WithTheme;\n});\n\n// \n\n/* eslint-disable */\nvar __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS = {\n StyleSheet: StyleSheet\n};\n\n// \n\n/* Warning if you've imported this file on React Native */\nif (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like you've imported 'styled-components' on React Native.\\n\" + \"Perhaps you're looking to import 'styled-components/native'?\\n\" + 'Read more about this at https://www.styled-components.com/docs/basics#react-native');\n}\n\n/* Warning if there are several instances of styled-components */\nif (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test' && typeof window !== 'undefined' && typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Node.js') === -1 && navigator.userAgent.indexOf('jsdom') === -1) {\n window['__styled-components-init__'] = window['__styled-components-init__'] || 0;\n\n if (window['__styled-components-init__'] === 1) {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. \" + 'This may cause dynamic styles not rendering properly, errors happening during rehydration process ' + 'and makes your application bigger without a good reason.\\n\\n' + 'See https://s-c.sh/2BAXzed for more info.');\n }\n\n window['__styled-components-init__'] += 1;\n}\n\n//\n\nexport default styled;\nexport { createGlobalStyle, css, isStyledComponent, keyframes, ServerStyleSheet, StyleSheetConsumer, StyleSheetContext, StyleSheetManager, ThemeConsumer, ThemeContext, ThemeProvider, withTheme, __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS };\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","export const colors = {\n PRIMARY: '#ABE2FB',\n SECONDARY: '#E6E6E6',\n DARKER_PRIMARY: '#87ceeb',\n OFF_WHITE: '#15181A',\n GREY: '#D3D3D3',\n RED: '#FF5E5E',\n DARK_GREY: '#535D63'\n};\n\nexport const TRACK_TOTAL_DEG = 270.0;\n\nexport const RADIAN = Math.PI / 180.0;\n\nexport const light = {\n primary: colors.PRIMARY,\n secondary: colors.SECONDARY,\n detail: colors.GREY,\n dark: false\n};\n\nexport const dark = {\n primary: colors.PRIMARY,\n secondary: colors.DARK_GREY,\n detail: colors.DARK_GREY,\n dark: true\n};\n\nexport default {\n dark,\n light,\n colors\n};\n","import { omit } from 'ramda';\n\nexport const getClassName = (componentName, theme) => {\n return 'daq-' + componentName + (theme && theme.dark ? '--dark' : '--light');\n};\n\nexport const getFilteredProps = props => omit(['className', 'id', 'setProps', 'style'], props);\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(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};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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};","import React from 'react';\nimport styled from 'styled-components';\n\nimport Label from './Label.styled';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-around;\n flex-direction: column;\n ${({ fullSize }) => {\n if (fullSize) return 'width: 100%;';\n return '';\n }}\n`;\n\nfunction LabelContainer(props) {\n let labelText = props.label;\n let customLabelStyle = {};\n if (typeof props.label === 'object') {\n labelText = props.label.label;\n customLabelStyle = props.label.style;\n }\n const labelElement = \n // if (labelText && labelText.length) {\n return (\n \n {props.labelPosition == 'top' && labelElement}\n {props.children}\n {props.labelPosition != 'top' && labelElement}\n \n );\n // }\n // return
{props.children}
;\n}\n\nLabelContainer.defaultProps = {\n labelPosition: 'bottom'\n};\n\nexport default LabelContainer;\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = 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 (0, _defineProperty2.default)(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}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","(function() { module.exports = window[\"ReactDOM\"]; }());","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n\tvar _react = __webpack_require__(1);\n\n\tvar _react2 = _interopRequireDefault(_react);\n\n\tvar _propTypes = __webpack_require__(2);\n\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\tvar KEYCODE_UP = 38;\n\tvar KEYCODE_DOWN = 40;\n\tvar IS_BROWSER = typeof document != 'undefined';\n\tvar RE_NUMBER = /^[+-]?((\\.\\d+)|(\\d+(\\.\\d+)?))$/;\n\tvar RE_INCOMPLETE_NUMBER = /^([+-]|\\.0*|[+-]\\.0*|[+-]?\\d+\\.)?$/;\n\n\tfunction addClass(element, className) {\n\t if (element.classList) {\n\t return element.classList.add(className);\n\t }\n\t if (!element.className.search(new RegExp(\"\\\\b\" + className + \"\\\\b\"))) {\n\t element.className = \" \" + className;\n\t }\n\t}\n\n\tfunction removeClass(element, className) {\n\t if (element.className) {\n\t if (element.classList) {\n\t return element.classList.remove(className);\n\t }\n\n\t element.className = element.className.replace(new RegExp(\"\\\\b\" + className + \"\\\\b\", \"g\"), \"\");\n\t }\n\t}\n\n\tfunction access(object, prop, defaultValue) {\n\t var result = object[prop];\n\t if (typeof result == \"function\") {\n\t for (var _len = arguments.length, args = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n\t args[_key - 3] = arguments[_key];\n\t }\n\n\t result = result.apply(undefined, args);\n\t }\n\t return result === undefined ? defaultValue : result;\n\t}\n\n\tvar NumericInput = function (_Component) {\n\t _inherits(NumericInput, _Component);\n\n\t function NumericInput() {\n\t var _ref;\n\n\t _classCallCheck(this, NumericInput);\n\n\t for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t args[_key2] = arguments[_key2];\n\t }\n\n\t var _this = _possibleConstructorReturn(this, (_ref = NumericInput.__proto__ || Object.getPrototypeOf(NumericInput)).call.apply(_ref, [this].concat(args)));\n\n\t _this._isStrict = !!_this.props.strict;\n\n\t _this.state = _extends({\n\t btnDownHover: false,\n\t btnDownActive: false,\n\t btnUpHover: false,\n\t btnUpActive: false,\n\t stringValue: \"\"\n\t }, _this._propsToState(_this.props));\n\t _this.stop = _this.stop.bind(_this);\n\t _this.onTouchEnd = _this.onTouchEnd.bind(_this);\n\t _this.refsInput = {};\n\t _this.refsWrapper = {};\n\t return _this;\n\t }\n\n\t _createClass(NumericInput, [{\n\t key: '_propsToState',\n\t value: function _propsToState(props) {\n\t var out = {};\n\n\t if (props.hasOwnProperty(\"value\")) {\n\t out.stringValue = String(props.value || props.value === 0 ? props.value : '').trim();\n\n\t out.value = out.stringValue !== '' ? this._parse(props.value) : null;\n\t } else if (!this._isMounted && props.hasOwnProperty(\"defaultValue\")) {\n\t out.stringValue = String(props.defaultValue || props.defaultValue === 0 ? props.defaultValue : '').trim();\n\n\t out.value = props.defaultValue !== '' ? this._parse(props.defaultValue) : null;\n\t }\n\n\t return out;\n\t }\n\t }, {\n\t key: 'componentWillReceiveProps',\n\t value: function componentWillReceiveProps(props) {\n\t var _this2 = this;\n\n\t this._isStrict = !!props.strict;\n\t var nextState = this._propsToState(props);\n\t if (Object.keys(nextState).length) {\n\t this._ignoreValueChange = true;\n\t this.setState(nextState, function () {\n\t _this2._ignoreValueChange = false;\n\t });\n\t }\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate() {\n\t this.saveSelection();\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate(prevProps, prevState) {\n\t if (!this._ignoreValueChange && prevState.value !== this.state.value && (!isNaN(this.state.value) || this.state.value === null)) {\n\t this._invokeEventCallback(\"onChange\", this.state.value, this.refsInput.value, this.refsInput);\n\t }\n\n\t if (this._inputFocus) {\n\t this.refsInput.focus();\n\n\t if (this.state.selectionStart || this.state.selectionStart === 0) {\n\t this.refsInput.selectionStart = this.state.selectionStart;\n\t }\n\n\t if (this.state.selectionEnd || this.state.selectionEnd === 0) {\n\t this.refsInput.selectionEnd = this.state.selectionEnd;\n\t }\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t this._isMounted = false;\n\t this.stop();\n\t }\n\t }, {\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var _this3 = this;\n\n\t this._isMounted = true;\n\t this.refsInput.getValueAsNumber = function () {\n\t return _this3.state.value || 0;\n\t };\n\n\t this.refsInput.setValue = function (value) {\n\t _this3.setState({\n\t value: _this3._parse(value),\n\t stringValue: value\n\t });\n\t };\n\n\t if (!this._inputFocus && IS_BROWSER && document.activeElement === this.refsInput) {\n\t this._inputFocus = true;\n\t this.refsInput.focus();\n\t this._invokeEventCallback(\"onFocus\", {\n\t target: this.refsInput,\n\t type: \"focus\"\n\t });\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'saveSelection',\n\t value: function saveSelection() {\n\t this.state.selectionStart = this.refsInput.selectionStart;\n\t this.state.selectionEnd = this.refsInput.selectionEnd;\n\t }\n\t }, {\n\t key: 'checkValidity',\n\t value: function checkValidity() {\n\t var valid = void 0,\n\t validationError = \"\";\n\n\t var supportsValidation = !!this.refsInput.checkValidity;\n\n\t var noValidate = !!(this.props.noValidate && this.props.noValidate != \"false\");\n\n\t this.refsInput.noValidate = noValidate;\n\n\t valid = noValidate || !supportsValidation;\n\n\t if (valid) {\n\t validationError = \"\";\n\t } else {\n\t if (this.refsInput.pattern === \"\") {\n\t this.refsInput.pattern = this.props.required ? \".+\" : \".*\";\n\t }\n\n\t if (supportsValidation) {\n\t this.refsInput.checkValidity();\n\t valid = this.refsInput.validity.valid;\n\n\t if (!valid) {\n\t validationError = this.refsInput.validationMessage;\n\t }\n\t }\n\n\t if (valid && supportsValidation && this.props.maxLength) {\n\t if (this.refsInput.value.length > this.props.maxLength) {\n\t validationError = \"This value is too long\";\n\t }\n\t }\n\t }\n\n\t validationError = validationError || (valid ? \"\" : this.refsInput.validationMessage || \"Unknown Error\");\n\n\t var validStateChanged = this._valid !== validationError;\n\t this._valid = validationError;\n\t if (validationError) {\n\t addClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onInvalid\", validationError, this.state.value, this.refsInput.value);\n\t }\n\t } else {\n\t removeClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onValid\", this.state.value, this.refsInput.value);\n\t }\n\t }\n\t }\n\t }, {\n\t key: '_toNumber',\n\t value: function _toNumber(x) {\n\t var n = parseFloat(x);\n\t if (isNaN(n) || !isFinite(n)) {\n\t n = 0;\n\t }\n\n\t if (this._isStrict) {\n\t var precision = access(this.props, \"precision\", null, this);\n\t var q = Math.pow(10, precision === null ? 10 : precision);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t n = Math.min(Math.max(n, _min), _max);\n\t n = Math.round(n * q) / q;\n\t }\n\n\t return n;\n\t }\n\t }, {\n\t key: '_parse',\n\t value: function _parse(x) {\n\t x = String(x);\n\t if (typeof this.props.parse == 'function') {\n\t return parseFloat(this.props.parse(x));\n\t }\n\t return parseFloat(x);\n\t }\n\t }, {\n\t key: '_format',\n\t value: function _format(n) {\n\t var _n = this._toNumber(n);\n\t var precision = access(this.props, \"precision\", null, this);\n\t if (precision !== null) {\n\t _n = n.toFixed(precision);\n\t }\n\n\t _n += \"\";\n\n\t if (this.props.format) {\n\t return this.props.format(_n);\n\t }\n\n\t return _n;\n\t }\n\t }, {\n\t key: '_step',\n\t value: function _step(n, callback) {\n\t var _isStrict = this._isStrict;\n\t this._isStrict = true;\n\n\t var _step = +access(this.props, \"step\", NumericInput.defaultProps.step, this, n > 0 ? NumericInput.DIRECTION_UP : NumericInput.DIRECTION_DOWN);\n\n\t var _n = this._toNumber((this.state.value || 0) + _step * n);\n\n\t if (this.props.snap) {\n\t _n = Math.round(_n / _step) * _step;\n\t }\n\n\t this._isStrict = _isStrict;\n\n\t if (_n !== this.state.value) {\n\t this.setState({ value: _n, stringValue: _n + \"\" }, callback);\n\t return true;\n\t }\n\n\t return false;\n\t }\n\t }, {\n\t key: '_onKeyDown',\n\t value: function _onKeyDown() {\n\t for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n\t args[_key3] = arguments[_key3];\n\t }\n\n\t args[0].persist();\n\t this._invokeEventCallback.apply(this, [\"onKeyDown\"].concat(args));\n\t var e = args[0];\n\t if (!e.isDefaultPrevented()) {\n\t if (e.keyCode === KEYCODE_UP) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? 0.1 : e.shiftKey ? 10 : 1);\n\t } else if (e.keyCode === KEYCODE_DOWN) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? -0.1 : e.shiftKey ? -10 : -1);\n\t } else {\n\t var _value = this.refsInput.value,\n\t length = _value.length;\n\t if (e.keyCode === 8) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd > 0 && _value.length && _value.charAt(this.refsInput.selectionEnd - 1) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd - 1;\n\t }\n\t } else if (e.keyCode === 46) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd < length + 1 && _value.length && _value.charAt(this.refsInput.selectionEnd) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd + 1;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'stop',\n\t value: function stop() {\n\t if (this._timer) {\n\t clearTimeout(this._timer);\n\t }\n\t }\n\t }, {\n\t key: 'increase',\n\t value: function increase() {\n\t var _this4 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(1, callback);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t if (isNaN(this.state.value) || +this.state.value < _max) {\n\t this._timer = setTimeout(function () {\n\t _this4.increase(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'decrease',\n\t value: function decrease() {\n\t var _this5 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(-1, callback);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t if (isNaN(this.state.value) || +this.state.value > _min) {\n\t this._timer = setTimeout(function () {\n\t _this5.decrease(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'onMouseDown',\n\t value: function onMouseDown(dir, callback) {\n\t if (dir == 'down') {\n\t this.decrease(false, callback);\n\t } else if (dir == 'up') {\n\t this.increase(false, callback);\n\t }\n\t }\n\t }, {\n\t key: 'onTouchStart',\n\t value: function onTouchStart(dir, e) {\n\t e.preventDefault();\n\t if (dir == 'down') {\n\t this.decrease();\n\t } else if (dir == 'up') {\n\t this.increase();\n\t }\n\t }\n\t }, {\n\t key: 'onTouchEnd',\n\t value: function onTouchEnd(e) {\n\t e.preventDefault();\n\t this.stop();\n\t }\n\t }, {\n\t key: '_invokeEventCallback',\n\t value: function _invokeEventCallback(callbackName) {\n\t if (typeof this.props[callbackName] == \"function\") {\n\t var _props$callbackName;\n\n\t for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n\t args[_key4 - 1] = arguments[_key4];\n\t }\n\n\t (_props$callbackName = this.props[callbackName]).call.apply(_props$callbackName, [null].concat(args));\n\t }\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _this6 = this;\n\n\t var props = this.props;\n\t var state = this.state;\n\t var css = {};\n\n\t var _props = this.props,\n\t step = _props.step,\n\t min = _props.min,\n\t max = _props.max,\n\t precision = _props.precision,\n\t parse = _props.parse,\n\t format = _props.format,\n\t mobile = _props.mobile,\n\t snap = _props.snap,\n\t componentClass = _props.componentClass,\n\t value = _props.value,\n\t type = _props.type,\n\t style = _props.style,\n\t defaultValue = _props.defaultValue,\n\t onInvalid = _props.onInvalid,\n\t onValid = _props.onValid,\n\t strict = _props.strict,\n\t noStyle = _props.noStyle,\n\t rest = _objectWithoutProperties(_props, ['step', 'min', 'max', 'precision', 'parse', 'format', 'mobile', 'snap', 'componentClass', 'value', 'type', 'style', 'defaultValue', 'onInvalid', 'onValid', 'strict', 'noStyle']);\n\n\t noStyle = noStyle || style === false;\n\n\t for (var x in NumericInput.style) {\n\t css[x] = _extends({}, NumericInput.style[x], style ? style[x] || {} : {});\n\t }\n\n\t var hasFormControl = props.className && /\\bform-control\\b/.test(props.className);\n\n\t if (mobile == 'auto') {\n\t mobile = IS_BROWSER && 'ontouchstart' in document;\n\t }\n\n\t if (typeof mobile == \"function\") {\n\t mobile = mobile.call(this);\n\t }\n\t mobile = !!mobile;\n\n\t var attrs = {\n\t wrap: {\n\t style: noStyle ? null : css.wrap,\n\t className: 'react-numeric-input',\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsWrapper = e;\n\t }\n\t },\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined\n\t },\n\t input: _extends({\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsInput = e;\n\t }\n\t },\n\t type: 'text',\n\t style: noStyle ? null : _extends({}, css.input, !hasFormControl ? css['input:not(.form-control)'] : {}, this._inputFocus ? css['input:focus'] : {})\n\t }, rest),\n\t btnUp: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnUp, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnUpActive ? css['btn:active'] : state.btnUpHover ? css['btn:hover'] : {})\n\t },\n\t btnDown: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnDown, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnDownActive ? css['btn:active'] : state.btnDownHover ? css['btn:hover'] : {})\n\t }\n\t };\n\n\t var stringValue = String(state.stringValue || (state.value || state.value === 0 ? state.value : \"\") || \"\");\n\n\t var loose = !this._isStrict && (this._inputFocus || !this._isMounted);\n\n\t if (loose && RE_INCOMPLETE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (loose && stringValue && !RE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (state.value || state.value === 0) {\n\t attrs.input.value = this._format(state.value);\n\t } else {\n\t attrs.input.value = \"\";\n\t }\n\n\t if (hasFormControl && !noStyle) {\n\t _extends(attrs.wrap.style, css['wrap.hasFormControl']);\n\t }\n\n\t if (mobile && !noStyle) {\n\t _extends(attrs.input.style, css['input.mobile']);\n\t _extends(attrs.btnUp.style, css['btnUp.mobile']);\n\t _extends(attrs.btnDown.style, css['btnDown.mobile']);\n\t }\n\n\t if (!props.disabled && !props.readOnly) {\n\t _extends(attrs.wrap, {\n\t onMouseUp: this.stop,\n\t onMouseLeave: this.stop\n\t });\n\n\t _extends(attrs.btnUp, {\n\t onTouchStart: this.onTouchStart.bind(this, 'up'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnUpHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnUpHover: false,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n\t args[_key5] = arguments[_key5];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('up');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.btnDown, {\n\t onTouchStart: this.onTouchStart.bind(this, 'down'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnDownHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnDownHover: false,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n\t args[_key6] = arguments[_key6];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('down');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.input, {\n\t onChange: function onChange(e) {\n\t var original = e.target.value;\n\t var val = _this6._parse(original);\n\t if (isNaN(val)) {\n\t val = null;\n\t }\n\t _this6.setState({\n\t value: _this6._isStrict ? _this6._toNumber(val) : val,\n\t stringValue: original\n\t });\n\t },\n\t onKeyDown: this._onKeyDown.bind(this),\n\t onInput: function onInput() {\n\t for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n\t args[_key7] = arguments[_key7];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onInput\"].concat(args));\n\t },\n\t onSelect: function onSelect() {\n\t for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n\t args[_key8] = arguments[_key8];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onSelect\"].concat(args));\n\t },\n\t onFocus: function onFocus() {\n\t for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n\t args[_key9] = arguments[_key9];\n\t }\n\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val,\n\t stringValue: val || val === 0 ? val + \"\" : \"\"\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t });\n\t },\n\t onBlur: function onBlur() {\n\t for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n\t args[_key10] = arguments[_key10];\n\t }\n\n\t var _isStrict = _this6._isStrict;\n\t _this6._isStrict = true;\n\t args[0].persist();\n\t _this6._inputFocus = false;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onBlur\"].concat(args));\n\t _this6._isStrict = _isStrict;\n\t });\n\t }\n\t });\n\t } else {\n\t if (!noStyle && props.disabled) {\n\t _extends(attrs.input.style, css['input:disabled']);\n\t }\n\t }\n\n\t var InputTag = componentClass || 'input';\n\n\t if (mobile) {\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus }),\n\t _react2.default.createElement('i', { style: noStyle ? null : css.plus })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus })\n\t )\n\t );\n\t }\n\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowUp })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowDown })\n\t )\n\t );\n\t }\n\t }]);\n\n\t return NumericInput;\n\t}(_react.Component);\n\n\tNumericInput.propTypes = {\n\t step: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t min: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t max: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t precision: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t maxLength: _propTypes2.default.number,\n\t parse: _propTypes2.default.func,\n\t format: _propTypes2.default.func,\n\t className: _propTypes2.default.string,\n\t disabled: _propTypes2.default.bool,\n\t readOnly: _propTypes2.default.bool,\n\t required: _propTypes2.default.bool,\n\t snap: _propTypes2.default.bool,\n\t noValidate: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n\t style: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),\n\t noStyle: _propTypes2.default.bool,\n\t type: _propTypes2.default.string,\n\t pattern: _propTypes2.default.string,\n\t onFocus: _propTypes2.default.func,\n\t onBlur: _propTypes2.default.func,\n\t onKeyDown: _propTypes2.default.func,\n\t onChange: _propTypes2.default.func,\n\t onInvalid: _propTypes2.default.func,\n\t onValid: _propTypes2.default.func,\n\t onInput: _propTypes2.default.func,\n\t onSelect: _propTypes2.default.func,\n\t size: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t strict: _propTypes2.default.bool,\n\t componentClass: _propTypes2.default.string,\n\t mobile: function mobile(props, propName) {\n\t var prop = props[propName];\n\t if (prop !== true && prop !== false && prop !== 'auto' && typeof prop != 'function') {\n\t return new Error('The \"mobile\" prop must be true, false, \"auto\" or a function');\n\t }\n\t }\n\t};\n\tNumericInput.defaultProps = {\n\t step: 1,\n\t min: Number.MIN_SAFE_INTEGER || -9007199254740991,\n\t max: Number.MAX_SAFE_INTEGER || 9007199254740991,\n\t precision: null,\n\t parse: null,\n\t format: null,\n\t mobile: 'auto',\n\t strict: false,\n\t componentClass: \"input\",\n\t style: {}\n\t};\n\tNumericInput.style = {\n\t wrap: {\n\t position: 'relative',\n\t display: 'inline-block'\n\t },\n\n\t 'wrap.hasFormControl': {\n\t display: 'block'\n\t },\n\n\t arrowUp: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0 0.6ex 0.6ex 0.6ex',\n\t borderColor: 'transparent transparent rgba(0, 0, 0, 0.7)',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t arrowDown: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0.6ex 0.6ex 0 0.6ex',\n\t borderColor: 'rgba(0, 0, 0, 0.7) transparent transparent',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t plus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 2,\n\t height: 10,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-5px 0 0 -1px'\n\t },\n\n\t minus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 10,\n\t height: 2,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-1px 0 0 -5px'\n\t },\n\n\t btn: {\n\t position: 'absolute',\n\t right: 2,\n\t width: '2.26ex',\n\t borderColor: 'rgba(0,0,0,.1)',\n\t borderStyle: 'solid',\n\t textAlign: 'center',\n\t cursor: 'default',\n\t transition: 'all 0.1s',\n\t background: 'rgba(0,0,0,.1)',\n\t boxShadow: '-1px -1px 3px rgba(0,0,0,.1) inset,' + '1px 1px 3px rgba(255,255,255,.7) inset'\n\t },\n\n\t btnUp: {\n\t top: 2,\n\t bottom: '50%',\n\t borderRadius: '2px 2px 0 0',\n\t borderWidth: '1px 1px 0 1px'\n\t },\n\n\t 'btnUp.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t btnDown: {\n\t top: '50%',\n\t bottom: 2,\n\t borderRadius: '0 0 2px 2px',\n\t borderWidth: '0 1px 1px 1px'\n\t },\n\n\t 'btnDown.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t left: 2,\n\t top: 2,\n\t right: 'auto',\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t 'btn:hover': {\n\t background: 'rgba(0,0,0,.2)'\n\t },\n\n\t 'btn:active': {\n\t background: 'rgba(0,0,0,.3)',\n\t boxShadow: '0 1px 3px rgba(0,0,0,.2) inset,' + '-1px -1px 4px rgba(255,255,255,.5) inset'\n\t },\n\n\t 'btn:disabled': {\n\t opacity: 0.5,\n\t boxShadow: 'none',\n\t cursor: 'not-allowed'\n\t },\n\n\t input: {\n\t paddingRight: '3ex',\n\t boxSizing: 'border-box',\n\t fontSize: 'inherit'\n\t },\n\n\t 'input:not(.form-control)': {\n\t border: '1px solid #ccc',\n\t borderRadius: 2,\n\t paddingLeft: 4,\n\t display: 'block',\n\t WebkitAppearance: 'none',\n\t lineHeight: 'normal'\n\t },\n\n\t 'input.mobile': {\n\t paddingLeft: ' 3.4ex',\n\t paddingRight: '3.4ex',\n\t textAlign: 'center'\n\t },\n\n\t 'input:focus': {},\n\n\t 'input:disabled': {\n\t color: 'rgba(0, 0, 0, 0.3)',\n\t textShadow: '0 1px 0 rgba(255, 255, 255, 0.8)'\n\t }\n\t};\n\tNumericInput.SPEED = 50;\n\tNumericInput.DELAY = 500;\n\tNumericInput.DIRECTION_UP = \"up\";\n\tNumericInput.DIRECTION_DOWN = \"down\";\n\n\n\tmodule.exports = NumericInput;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"react\");\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"prop-types\");\n\n/***/ })\n/******/ ]);","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","/**\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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (typeof obj === 'undefined') {\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from './_curry1';\nimport _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _isArrayLike from './_isArrayLike';\nimport _xwrap from './_xwrap';\nimport bind from '../bind';\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from './_has';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n};\n\nexport default _isArguments;","import _curry1 from './internal/_curry1';\nimport _has from './internal/_has';\nimport _isArguments from './internal/_isArguments';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar _keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n} : function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n};\nvar keys = /*#__PURE__*/_curry1(_keys);\nexport default keys;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","import _objectAssign from './_objectAssign';\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _curry1 from './internal/_curry1';\nimport _of from './internal/_of';\n\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\nvar of = /*#__PURE__*/_curry1(_of);\nexport default of;","import _curry2 from './internal/_curry2';\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\nvar omit = /*#__PURE__*/_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nexport default omit;","import _cloneRegExp from './internal/_cloneRegExp';\nimport _curry2 from './internal/_curry2';\nimport _isRegExp from './internal/_isRegExp';\nimport toString from './toString';\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\nvar test = /*#__PURE__*/_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n return _cloneRegExp(pattern).test(str);\n});\nexport default test;","import _curry1 from './internal/_curry1';\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\nvar _trim = !hasProtoTrim || /*#__PURE__*/ws.trim() || ! /*#__PURE__*/zeroWidth.trim() ? function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n} : function trim(str) {\n return str.trim();\n};\nvar trim = /*#__PURE__*/_curry1(_trim);\nexport default trim;","export { default as F } from './F';\nexport { default as T } from './T';\nexport { default as __ } from './__';\nexport { default as add } from './add';\nexport { default as addIndex } from './addIndex';\nexport { default as adjust } from './adjust';\nexport { default as all } from './all';\nexport { default as allPass } from './allPass';\nexport { default as always } from './always';\nexport { default as and } from './and';\nexport { default as any } from './any';\nexport { default as anyPass } from './anyPass';\nexport { default as ap } from './ap';\nexport { default as aperture } from './aperture';\nexport { default as append } from './append';\nexport { default as apply } from './apply';\nexport { default as applySpec } from './applySpec';\nexport { default as applyTo } from './applyTo';\nexport { default as ascend } from './ascend';\nexport { default as assoc } from './assoc';\nexport { default as assocPath } from './assocPath';\nexport { default as binary } from './binary';\nexport { default as bind } from './bind';\nexport { default as both } from './both';\nexport { default as call } from './call';\nexport { default as chain } from './chain';\nexport { default as clamp } from './clamp';\nexport { default as clone } from './clone';\nexport { default as comparator } from './comparator';\nexport { default as complement } from './complement';\nexport { default as compose } from './compose';\nexport { default as composeK } from './composeK';\nexport { default as composeP } from './composeP';\nexport { default as concat } from './concat';\nexport { default as cond } from './cond';\nexport { default as construct } from './construct';\nexport { default as constructN } from './constructN';\nexport { default as contains } from './contains';\nexport { default as converge } from './converge';\nexport { default as countBy } from './countBy';\nexport { default as curry } from './curry';\nexport { default as curryN } from './curryN';\nexport { default as dec } from './dec';\nexport { default as defaultTo } from './defaultTo';\nexport { default as descend } from './descend';\nexport { default as difference } from './difference';\nexport { default as differenceWith } from './differenceWith';\nexport { default as dissoc } from './dissoc';\nexport { default as dissocPath } from './dissocPath';\nexport { default as divide } from './divide';\nexport { default as drop } from './drop';\nexport { default as dropLast } from './dropLast';\nexport { default as dropLastWhile } from './dropLastWhile';\nexport { default as dropRepeats } from './dropRepeats';\nexport { default as dropRepeatsWith } from './dropRepeatsWith';\nexport { default as dropWhile } from './dropWhile';\nexport { default as either } from './either';\nexport { default as empty } from './empty';\nexport { default as endsWith } from './endsWith';\nexport { default as eqBy } from './eqBy';\nexport { default as eqProps } from './eqProps';\nexport { default as equals } from './equals';\nexport { default as evolve } from './evolve';\nexport { default as filter } from './filter';\nexport { default as find } from './find';\nexport { default as findIndex } from './findIndex';\nexport { default as findLast } from './findLast';\nexport { default as findLastIndex } from './findLastIndex';\nexport { default as flatten } from './flatten';\nexport { default as flip } from './flip';\nexport { default as forEach } from './forEach';\nexport { default as forEachObjIndexed } from './forEachObjIndexed';\nexport { default as fromPairs } from './fromPairs';\nexport { default as groupBy } from './groupBy';\nexport { default as groupWith } from './groupWith';\nexport { default as gt } from './gt';\nexport { default as gte } from './gte';\nexport { default as has } from './has';\nexport { default as hasIn } from './hasIn';\nexport { default as head } from './head';\nexport { default as identical } from './identical';\nexport { default as identity } from './identity';\nexport { default as ifElse } from './ifElse';\nexport { default as inc } from './inc';\nexport { default as indexBy } from './indexBy';\nexport { default as indexOf } from './indexOf';\nexport { default as init } from './init';\nexport { default as innerJoin } from './innerJoin';\nexport { default as insert } from './insert';\nexport { default as insertAll } from './insertAll';\nexport { default as intersection } from './intersection';\nexport { default as intersperse } from './intersperse';\nexport { default as into } from './into';\nexport { default as invert } from './invert';\nexport { default as invertObj } from './invertObj';\nexport { default as invoker } from './invoker';\nexport { default as is } from './is';\nexport { default as isEmpty } from './isEmpty';\nexport { default as isNil } from './isNil';\nexport { default as join } from './join';\nexport { default as juxt } from './juxt';\nexport { default as keys } from './keys';\nexport { default as keysIn } from './keysIn';\nexport { default as last } from './last';\nexport { default as lastIndexOf } from './lastIndexOf';\nexport { default as length } from './length';\nexport { default as lens } from './lens';\nexport { default as lensIndex } from './lensIndex';\nexport { default as lensPath } from './lensPath';\nexport { default as lensProp } from './lensProp';\nexport { default as lift } from './lift';\nexport { default as liftN } from './liftN';\nexport { default as lt } from './lt';\nexport { default as lte } from './lte';\nexport { default as map } from './map';\nexport { default as mapAccum } from './mapAccum';\nexport { default as mapAccumRight } from './mapAccumRight';\nexport { default as mapObjIndexed } from './mapObjIndexed';\nexport { default as match } from './match';\nexport { default as mathMod } from './mathMod';\nexport { default as max } from './max';\nexport { default as maxBy } from './maxBy';\nexport { default as mean } from './mean';\nexport { default as median } from './median';\nexport { default as memoize } from './memoize';\nexport { default as memoizeWith } from './memoizeWith';\nexport { default as merge } from './merge';\nexport { default as mergeAll } from './mergeAll';\nexport { default as mergeDeepLeft } from './mergeDeepLeft';\nexport { default as mergeDeepRight } from './mergeDeepRight';\nexport { default as mergeDeepWith } from './mergeDeepWith';\nexport { default as mergeDeepWithKey } from './mergeDeepWithKey';\nexport { default as mergeWith } from './mergeWith';\nexport { default as mergeWithKey } from './mergeWithKey';\nexport { default as min } from './min';\nexport { default as minBy } from './minBy';\nexport { default as modulo } from './modulo';\nexport { default as multiply } from './multiply';\nexport { default as nAry } from './nAry';\nexport { default as negate } from './negate';\nexport { default as none } from './none';\nexport { default as not } from './not';\nexport { default as nth } from './nth';\nexport { default as nthArg } from './nthArg';\nexport { default as o } from './o';\nexport { default as objOf } from './objOf';\nexport { default as of } from './of';\nexport { default as omit } from './omit';\nexport { default as once } from './once';\nexport { default as or } from './or';\nexport { default as over } from './over';\nexport { default as pair } from './pair';\nexport { default as partial } from './partial';\nexport { default as partialRight } from './partialRight';\nexport { default as partition } from './partition';\nexport { default as path } from './path';\nexport { default as pathEq } from './pathEq';\nexport { default as pathOr } from './pathOr';\nexport { default as pathSatisfies } from './pathSatisfies';\nexport { default as pick } from './pick';\nexport { default as pickAll } from './pickAll';\nexport { default as pickBy } from './pickBy';\nexport { default as pipe } from './pipe';\nexport { default as pipeK } from './pipeK';\nexport { default as pipeP } from './pipeP';\nexport { default as pluck } from './pluck';\nexport { default as prepend } from './prepend';\nexport { default as product } from './product';\nexport { default as project } from './project';\nexport { default as prop } from './prop';\nexport { default as propEq } from './propEq';\nexport { default as propIs } from './propIs';\nexport { default as propOr } from './propOr';\nexport { default as propSatisfies } from './propSatisfies';\nexport { default as props } from './props';\nexport { default as range } from './range';\nexport { default as reduce } from './reduce';\nexport { default as reduceBy } from './reduceBy';\nexport { default as reduceRight } from './reduceRight';\nexport { default as reduceWhile } from './reduceWhile';\nexport { default as reduced } from './reduced';\nexport { default as reject } from './reject';\nexport { default as remove } from './remove';\nexport { default as repeat } from './repeat';\nexport { default as replace } from './replace';\nexport { default as reverse } from './reverse';\nexport { default as scan } from './scan';\nexport { default as sequence } from './sequence';\nexport { default as set } from './set';\nexport { default as slice } from './slice';\nexport { default as sort } from './sort';\nexport { default as sortBy } from './sortBy';\nexport { default as sortWith } from './sortWith';\nexport { default as split } from './split';\nexport { default as splitAt } from './splitAt';\nexport { default as splitEvery } from './splitEvery';\nexport { default as splitWhen } from './splitWhen';\nexport { default as startsWith } from './startsWith';\nexport { default as subtract } from './subtract';\nexport { default as sum } from './sum';\nexport { default as symmetricDifference } from './symmetricDifference';\nexport { default as symmetricDifferenceWith } from './symmetricDifferenceWith';\nexport { default as tail } from './tail';\nexport { default as take } from './take';\nexport { default as takeLast } from './takeLast';\nexport { default as takeLastWhile } from './takeLastWhile';\nexport { default as takeWhile } from './takeWhile';\nexport { default as tap } from './tap';\nexport { default as test } from './test';\nexport { default as times } from './times';\nexport { default as toLower } from './toLower';\nexport { default as toPairs } from './toPairs';\nexport { default as toPairsIn } from './toPairsIn';\nexport { default as toString } from './toString';\nexport { default as toUpper } from './toUpper';\nexport { default as transduce } from './transduce';\nexport { default as transpose } from './transpose';\nexport { default as traverse } from './traverse';\nexport { default as trim } from './trim';\nexport { default as tryCatch } from './tryCatch';\nexport { default as type } from './type';\nexport { default as unapply } from './unapply';\nexport { default as unary } from './unary';\nexport { default as uncurryN } from './uncurryN';\nexport { default as unfold } from './unfold';\nexport { default as union } from './union';\nexport { default as unionWith } from './unionWith';\nexport { default as uniq } from './uniq';\nexport { default as uniqBy } from './uniqBy';\nexport { default as uniqWith } from './uniqWith';\nexport { default as unless } from './unless';\nexport { default as unnest } from './unnest';\nexport { default as until } from './until';\nexport { default as update } from './update';\nexport { default as useWith } from './useWith';\nexport { default as values } from './values';\nexport { default as valuesIn } from './valuesIn';\nexport { default as view } from './view';\nexport { default as when } from './when';\nexport { default as where } from './where';\nexport { default as whereEq } from './whereEq';\nexport { default as without } from './without';\nexport { default as xprod } from './xprod';\nexport { default as zip } from './zip';\nexport { default as zipObj } from './zipObj';\nexport { default as zipWith } from './zipWith';","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","module.exports = {};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","module.exports = true;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","exports.f = {}.propertyIsEnumerable;\n","import styled, { css } from 'styled-components';\n\nexport default styled.label`\n display: block;\n font-size: 14px;\n ${({ position }) =>\n position === 'top'\n ? css`\n margin-bottom: 8px;\n `\n : css`\n margin-top: 8px;\n `}\n ${props =>\n css`\n ${props.css}\n `}\n`;\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _getPrototypeOf = require(\"../core-js/object/get-prototype-of\");\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _getOwnPropertyDescriptor = require(\"../core-js/object/get-own-property-descriptor\");\n\nvar _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = (0, _getOwnPropertyDescriptor2.default)(object, property);\n\n if (desc === undefined) {\n var parent = (0, _getPrototypeOf2.default)(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};","/**\n * CSS conic-gradient() polyfill\n * By Lea Verou — http://lea.verou.me\n * MIT license\n */\n\n(function(){\n\nvar π = Math.PI;\nvar τ = 2 * π;\nvar ε = .00001;\nvar deg = π/180;\n\nvar dummy = document.createElement(\"div\");\ndocument.head.appendChild(dummy);\n\nvar _ = self.ConicGradient = function(o) {\n\tvar me = this;\n\t_.all.push(this);\n\n\to = o || {};\n\n\tthis.canvas = document.createElement(\"canvas\");\n\tthis.context = this.canvas.getContext(\"2d\");\n\n\tthis.repeating = !!o.repeating;\n\n\tthis.size = o.size || Math.max(innerWidth, innerHeight);\n\n\tthis.canvas.width = this.canvas.height = this.size;\n\n\tvar stops = o.stops;\n\n\tthis.stops = (stops || \"\").split(/\\s*,(?![^(]*\\))\\s*/); // commas that are not followed by a ) without a ( first\n\n\tthis.from = 0;\n\n\tfor (var i=0; i 0) {\n\t\tvar first = this.stops[0].clone();\n\t\tfirst.pos = 0;\n\t\tthis.stops.unshift(first);\n\t}\n\n\t// Add dummy last stop or set first stop’s position to 100% if it doesn’t have one\n\tif (this.stops[this.stops.length - 1].pos === undefined) {\n\t\tthis.stops[this.stops.length - 1].pos = 1;\n\t}\n\telse if (!this.repeating && this.stops[this.stops.length - 1].pos < 1) {\n\t\tvar last = this.stops[this.stops.length - 1].clone();\n\t\tlast.pos = 1;\n\t\tthis.stops.push(last);\n\t}\n\n\tthis.stops.forEach(function(stop, i){\n\t\tif (stop.pos === undefined) {\n\t\t\t// Evenly space color stops with no position\n\t\t\tfor (var j=i+1; this[j]; j++) {\n\t\t\t\tif (this[j].pos !== undefined) {\n\t\t\t\t\tstop.pos = this[i-1].pos + (this[j].pos - this[i-1].pos)/(j-i+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (i > 0) {\n\t\t\t// Normalize color stops whose position is smaller than the position of the stop before them\n\t\t\tstop.pos = Math.max(stop.pos, this[i-1].pos);\n\t\t}\n\t}, this.stops);\n\n\tif (this.repeating) {\n\t\t// Repeat color stops until >= 1\n\t\tvar stops = this.stops.slice();\n\t\tvar lastStop = stops[stops.length-1];\n\t\tvar difference = lastStop.pos - stops[0].pos;\n\n\t\tfor (var i=0; this.stops[this.stops.length-1].pos < 1 && i<10000; i++) {\n\t\t\tfor (var j=0; j' +\n\t\t\t'' +\n\t\t\t'';\n\t},\n\n\tget png() {\n\t\treturn this.canvas.toDataURL();\n\t},\n\n\tget r() {\n\t\treturn Math.sqrt(2) * this.size / 2;\n\t},\n\n\t// Paint the conical gradient on the canvas\n\t// Algorithm inspired from http://jsdo.it/akm2/yr9B\n\tpaint: function() {\n\t\tvar c = this.context;\n\n\t\tvar radius = this.r;\n\t\tvar x = this.size / 2;\n\n\t\tvar stopIndex = 0; // The index of the current color\n\t\tvar stop = this.stops[stopIndex], prevStop;\n\n\t\tvar diff, t;\n\n\t\t// Transform coordinate system so that angles start from the top left, like in CSS\n\t\tc.translate(this.size/2, this.size/2);\n\t\tc.rotate(-90*deg);\n\t\tc.rotate(this.from*deg);\n\t\tc.translate(-this.size/2, -this.size/2);\n\n\t\tfor (var i = 0; i < 360;) {\n\t\t\tif (i/360 + ε >= stop.pos) {\n\t\t\t\t// Switch color stop\n\t\t\t\tdo {\n\t\t\t\t\tprevStop = stop;\n\n\t\t\t\t\tstopIndex++;\n\t\t\t\t\tstop = this.stops[stopIndex];\n\t\t\t\t} while(stop && stop != prevStop && stop.pos === prevStop.pos);\n\n\t\t\t\tif (!stop) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tvar sameColor = prevStop.color + \"\" === stop.color + \"\" && prevStop != stop;\n\n\t\t\t\tdiff = prevStop.color.map(function(c, i){\n\t\t\t\t\treturn stop.color[i] - c;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tt = (i/360 - prevStop.pos) / (stop.pos - prevStop.pos);\n\n\t\t\tvar interpolated = sameColor? stop.color : diff.map(function(d,i){\n\t\t\t\tvar ret = d * t + prevStop.color[i];\n\n\t\t\t\treturn i < 3? ret & 255 : ret;\n\t\t\t});\n\n\t\t\t// Draw a series of arcs, 1deg each\n\t\t\tc.fillStyle = 'rgba(' + interpolated.join(\",\") + ')';\n\t\t\tc.beginPath();\n\t\t\tc.moveTo(x, x);\n\n\t\t\tif (sameColor) {\n\t\t\t\tvar θ = 360 * (stop.pos - prevStop.pos);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar θ = .5;\n\t\t\t}\n\n\t\t\tvar beginArg = i*deg;\n\t\t\tbeginArg = Math.min(360*deg, beginArg);\n\n\t\t\t// .02: To prevent empty blank line and corresponding moire\n\t\t\t// only non-alpha colors are cared now\n\t\t\tvar endArg = beginArg + θ*deg;\n\t\t\tendArg = Math.min(360*deg, endArg + .02);\n\n\t\t\tc.arc(x, x, radius, beginArg, endArg);\n\n\t\t\tc.closePath();\n\t\t\tc.fill();\n\n\t\t\ti += θ;\n\t\t}\n\t}\n};\n\n_.ColorStop = function(gradient, stop) {\n\tthis.gradient = gradient;\n\n\tif (stop) {\n\t\tvar parts = stop.match(/^(.+?)(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?\\s*$/);\n\n\t\tthis.color = _.ColorStop.colorToRGBA(parts[1]);\n\n\t\tif (parts[2]) {\n\t\t\tvar unit = parts[3];\n\n\t\t\tif (unit == \"%\" || parts[2] === \"0\" && !unit) {\n\t\t\t\tthis.pos = parts[2]/100;\n\t\t\t}\n\t\t\telse if (unit == \"turn\") {\n\t\t\t\tthis.pos = +parts[2];\n\t\t\t}\n\t\t\telse if (unit == \"deg\") {\n\t\t\t\tthis.pos = parts[2] / 360;\n\t\t\t}\n\t\t\telse if (unit == \"grad\") {\n\t\t\t\tthis.pos = parts[2] / 400;\n\t\t\t}\n\t\t\telse if (unit == \"rad\") {\n\t\t\t\tthis.pos = parts[2] / τ;\n\t\t\t}\n\t\t}\n\n\t\tif (parts[4]) {\n\t\t\tthis.next = new _.ColorStop(gradient, parts[1] + \" \" + parts[4] + parts[5]);\n\t\t}\n\t}\n}\n\n_.ColorStop.prototype = {\n\tclone: function() {\n\t\tvar ret = new _.ColorStop(this.gradient);\n\t\tret.color = this.color;\n\t\tret.pos = this.pos;\n\n\t\treturn ret;\n\t},\n\n\ttoString: function() {\n\t\treturn \"rgba(\" + this.color.join(\", \") + \") \" + this.pos * 100 + \"%\";\n\t}\n};\n\n_.ColorStop.colorToRGBA = function(color) {\n\tif (!Array.isArray(color) && color.indexOf(\"from\") == -1) {\n\t\tdummy.style.color = color;\n\n\t\tvar rgba = getComputedStyle(dummy).color.match(/rgba?\\(([\\d.]+), ([\\d.]+), ([\\d.]+)(?:, ([\\d.]+))?\\)/);\n\n\t\tif (rgba) {\n\t\t\trgba.shift();\n\t\t\trgba = rgba.map(function(a) { return +a });\n\t\t\trgba[3] = isNaN(rgba[3])? 1 : rgba[3];\n\t\t}\n\n\t\treturn rgba || [0,0,0,0];\n\t}\n\n\treturn color;\n};\n\n})();\n\nif (self.StyleFix) {\n\t// Test if conic gradients are supported first:\n\t(function(){\n\t\tvar dummy = document.createElement(\"p\");\n\t\tdummy.style.backgroundImage = \"conic-gradient(white, black)\";\n\t\tdummy.style.backgroundImage = PrefixFree.prefix + \"conic-gradient(white, black)\";\n\n\t\tif (!dummy.style.backgroundImage) {\n\t\t\t// Not supported, use polyfill\n\t\t\tStyleFix.register(function(css, raw) {\n\t\t\t\tif (css.indexOf(\"conic-gradient\") > -1) {\n\t\t\t\t\tcss = css.replace(/(?:repeating-)?conic-gradient\\(\\s*((?:\\([^()]+\\)|[^;()}])+?)\\)/g, function(gradient, stops) {\n\t\t\t\t\t\treturn new ConicGradient({\n\t\t\t\t\t\t\tstops: stops,\n\t\t\t\t\t\t\trepeating: gradient.indexOf(\"repeating-\") > -1\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn css;\n\t\t\t});\n\t\t}\n\t})();\n}\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","!function(e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(null):\"function\"==typeof define&&define.amd?define(e(null)):window.stylis=e(null)}(function e(a){\"use strict\";var r=/^\\0+/g,c=/[\\0\\r\\f]/g,s=/: */g,t=/zoo|gra/,i=/([,: ])(transform)/g,f=/,+\\s*(?![^(]*[)])/g,n=/ +\\s*(?![^(]*[)])/g,l=/ *[\\0] */g,o=/,\\r+?/g,h=/([\\t\\r\\n ])*\\f?&/g,u=/:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g,d=/\\W+/g,b=/@(k\\w+)\\s*(\\S*)\\s*/,p=/::(place)/g,k=/:(read-only)/g,g=/\\s+(?=[{\\];=:>])/g,A=/([[}=:>])\\s+/g,C=/(\\{[^{]+?);(?=\\})/g,w=/\\s{2,}/g,v=/([^\\(])(:+) */g,m=/[svh]\\w+-[tblr]{2}/,x=/\\(\\s*(.*)\\s*\\)/g,$=/([\\s\\S]*?);/g,y=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\\w-]+)[^]*/,j=/stretch|:\\s*\\w+\\-(?:conte|avail)/,z=/([^-])(image-set\\()/,N=\"-webkit-\",S=\"-moz-\",F=\"-ms-\",W=59,q=125,B=123,D=40,E=41,G=91,H=93,I=10,J=13,K=9,L=64,M=32,P=38,Q=45,R=95,T=42,U=44,V=58,X=39,Y=34,Z=47,_=62,ee=43,ae=126,re=0,ce=12,se=11,te=107,ie=109,fe=115,ne=112,le=111,oe=105,he=99,ue=100,de=112,be=1,pe=1,ke=0,ge=1,Ae=1,Ce=1,we=0,ve=0,me=0,xe=[],$e=[],ye=0,Oe=null,je=-2,ze=-1,Ne=0,Se=1,Fe=2,We=3,qe=0,Be=1,De=\"\",Ee=\"\",Ge=\"\";function He(e,a,s,t,i){for(var f,n,o=0,h=0,u=0,d=0,g=0,A=0,C=0,w=0,m=0,$=0,y=0,O=0,j=0,z=0,R=0,we=0,$e=0,Oe=0,je=0,ze=s.length,Je=ze-1,Re=\"\",Te=\"\",Ue=\"\",Ve=\"\",Xe=\"\",Ye=\"\";R0)Te=Te.replace(c,\"\");if(Te.trim().length>0){switch(C){case M:case K:case W:case J:case I:break;default:Te+=s.charAt(R)}C=W}}if(1===$e)switch(C){case B:case q:case W:case Y:case X:case D:case E:case U:$e=0;case K:case J:case I:case M:break;default:for($e=0,je=R,g=C,R--,C=W;je0)++R,C=g;case B:je=ze}}switch(C){case B:for(g=(Te=Te.trim()).charCodeAt(0),y=1,je=++R;R0)Te=Te.replace(c,\"\");switch(A=Te.charCodeAt(1)){case ue:case ie:case fe:case Q:f=a;break;default:f=xe}if(je=(Ue=He(a,f,Ue,A,i+1)).length,me>0&&0===je)je=Te.length;if(ye>0)if(f=Ie(xe,Te,Oe),n=Pe(We,Ue,f,a,pe,be,je,A,i,t),Te=f.join(\"\"),void 0!==n)if(0===(je=(Ue=n.trim()).length))A=0,Ue=\"\";if(je>0)switch(A){case fe:Te=Te.replace(x,Me);case ue:case ie:case Q:Ue=Te+\"{\"+Ue+\"}\";break;case te:if(Ue=(Te=Te.replace(b,\"$1 $2\"+(Be>0?De:\"\")))+\"{\"+Ue+\"}\",1===Ae||2===Ae&&Le(\"@\"+Ue,3))Ue=\"@\"+N+Ue+\"@\"+Ue;else Ue=\"@\"+Ue;break;default:if(Ue=Te+Ue,t===de)Ve+=Ue,Ue=\"\"}else Ue=\"\";break;default:Ue=He(a,Ie(a,Te,Oe),Ue,t,i+1)}Xe+=Ue,O=0,$e=0,z=0,we=0,Oe=0,j=0,Te=\"\",Ue=\"\",C=s.charCodeAt(++R);break;case q:case W:if((je=(Te=(we>0?Te.replace(c,\"\"):Te).trim()).length)>1){if(0===z)if((g=Te.charCodeAt(0))===Q||g>96&&g<123)je=(Te=Te.replace(\" \",\":\")).length;if(ye>0)if(void 0!==(n=Pe(Se,Te,a,e,pe,be,Ve.length,t,i,t)))if(0===(je=(Te=n.trim()).length))Te=\"\\0\\0\";switch(g=Te.charCodeAt(0),A=Te.charCodeAt(1),g){case re:break;case L:if(A===oe||A===he){Ye+=Te+s.charAt(R);break}default:if(Te.charCodeAt(je-1)===V)break;Ve+=Ke(Te,g,A,Te.charCodeAt(2))}}O=0,$e=0,z=0,we=0,Oe=0,Te=\"\",C=s.charCodeAt(++R)}}switch(C){case J:case I:if(h+d+u+o+ve===0)switch($){case E:case X:case Y:case L:case ae:case _:case T:case ee:case Z:case Q:case V:case U:case W:case B:case q:break;default:if(z>0)$e=1}if(h===Z)h=0;else if(ge+O===0&&t!==te&&Te.length>0)we=1,Te+=\"\\0\";if(ye*qe>0)Pe(Ne,Te,a,e,pe,be,Ve.length,t,i,t);be=1,pe++;break;case W:case q:if(h+d+u+o===0){be++;break}default:switch(be++,Re=s.charAt(R),C){case K:case M:if(d+o+h===0)switch(w){case U:case V:case K:case M:Re=\"\";break;default:if(C!==M)Re=\" \"}break;case re:Re=\"\\\\0\";break;case ce:Re=\"\\\\f\";break;case se:Re=\"\\\\v\";break;case P:if(d+h+o===0&&ge>0)Oe=1,we=1,Re=\"\\f\"+Re;break;case 108:if(d+h+o+ke===0&&z>0)switch(R-z){case 2:if(w===ne&&s.charCodeAt(R-3)===V)ke=w;case 8:if(m===le)ke=m}break;case V:if(d+h+o===0)z=R;break;case U:if(h+u+d+o===0)we=1,Re+=\"\\r\";break;case Y:case X:if(0===h)d=d===C?0:0===d?C:d;break;case G:if(d+h+u===0)o++;break;case H:if(d+h+u===0)o--;break;case E:if(d+h+o===0)u--;break;case D:if(d+h+o===0){if(0===O)switch(2*w+3*m){case 533:break;default:y=0,O=1}u++}break;case L:if(h+u+d+o+z+j===0)j=1;break;case T:case Z:if(d+o+u>0)break;switch(h){case 0:switch(2*C+3*s.charCodeAt(R+1)){case 235:h=Z;break;case 220:je=R,h=T}break;case T:if(C===Z&&w===T&&je+2!==R){if(33===s.charCodeAt(je+2))Ve+=s.substring(je,R+1);Re=\"\",h=0}}}if(0===h){if(ge+d+o+j===0&&t!==te&&C!==W)switch(C){case U:case ae:case _:case ee:case E:case D:if(0===O){switch(w){case K:case M:case I:case J:Re+=\"\\0\";break;default:Re=\"\\0\"+Re+(C===U?\"\":\"\\0\")}we=1}else switch(C){case D:if(z+7===R&&108===w)z=0;O=++y;break;case E:if(0==(O=--y))we=1,Re+=\"\\0\"}break;case K:case M:switch(w){case re:case B:case q:case W:case U:case ce:case K:case M:case I:case J:break;default:if(0===O)we=1,Re+=\"\\0\"}}if(Te+=Re,C!==M&&C!==K)$=C}}m=w,w=C,R++}if(je=Ve.length,me>0)if(0===je&&0===Xe.length&&0===a[0].length==false)if(t!==ie||1===a.length&&(ge>0?Ee:Ge)===a[0])je=a.join(\",\").length+2;if(je>0){if(f=0===ge&&t!==te?function(e){for(var a,r,s=0,t=e.length,i=Array(t);s1)continue;if(u=n.charCodeAt(n.length-1),d=r.charCodeAt(0),a=\"\",0!==o)switch(u){case T:case ae:case _:case ee:case M:case D:break;default:a=\" \"}switch(d){case P:r=a+Ee;case ae:case _:case ee:case M:case E:case D:break;case G:r=a+r+Ee;break;case V:switch(2*r.charCodeAt(1)+3*r.charCodeAt(2)){case 530:if(Ce>0){r=a+r.substring(8,h-1);break}default:if(o<1||f[o-1].length<1)r=a+Ee+r}break;case U:a=\"\";default:if(h>1&&r.indexOf(\":\")>0)r=a+r.replace(v,\"$1\"+Ee+\"$2\");else r=a+r+Ee}n+=r}i[s]=n.replace(c,\"\").trim()}return i}(a):a,ye>0)if(void 0!==(n=Pe(Fe,Ve,f,e,pe,be,je,t,i,t))&&0===(Ve=n).length)return Ye+Ve+Xe;if(Ve=f.join(\",\")+\"{\"+Ve+\"}\",Ae*ke!=0){if(2===Ae&&!Le(Ve,2))ke=0;switch(ke){case le:Ve=Ve.replace(k,\":\"+S+\"$1\")+Ve;break;case ne:Ve=Ve.replace(p,\"::\"+N+\"input-$1\")+Ve.replace(p,\"::\"+S+\"$1\")+Ve.replace(p,\":\"+F+\"input-$1\")+Ve}ke=0}}return Ye+Ve+Xe}function Ie(e,a,r){var c=a.trim().split(o),s=c,t=c.length,i=e.length;switch(i){case 0:case 1:for(var f=0,n=0===i?\"\":e[0]+\" \";f0&&ge>0)return s.replace(u,\"$1\").replace(h,\"$1\"+Ge);break;default:return e.trim()+s.replace(h,\"$1\"+e.trim())}default:if(r*ge>0&&s.indexOf(\"\\f\")>0)return s.replace(h,(e.charCodeAt(0)===V?\"\":\"$1\")+e.trim())}return e+s}function Ke(e,a,r,c){var l,o=0,h=e+\";\",u=2*a+3*r+4*c;if(944===u)return function(e){var a=e.length,r=e.indexOf(\":\",9)+1,c=e.substring(0,r).trim(),s=e.substring(r,a-1).trim();switch(e.charCodeAt(9)*Be){case 0:break;case Q:if(110!==e.charCodeAt(10))break;default:for(var t=s.split((s=\"\",f)),i=0,r=0,a=t.length;iL&&h<90||h>96&&h<123||h===R||h===Q&&l.charCodeAt(1)!==Q))switch(isNaN(parseFloat(l))+(-1!==l.indexOf(\"(\"))){case 1:switch(l){case\"infinite\":case\"alternate\":case\"backwards\":case\"running\":case\"normal\":case\"forwards\":case\"both\":case\"none\":case\"linear\":case\"ease\":case\"ease-in\":case\"ease-out\":case\"ease-in-out\":case\"paused\":case\"reverse\":case\"alternate-reverse\":case\"inherit\":case\"initial\":case\"unset\":case\"step-start\":case\"step-end\":break;default:l+=De}}o[r++]=l}s+=(0===i?\"\":\",\")+o.join(\" \")}}if(s=c+s+\";\",1===Ae||2===Ae&&Le(s,1))return N+s+s;return s}(h);else if(0===Ae||2===Ae&&!Le(h,1))return h;switch(u){case 1015:return 97===h.charCodeAt(10)?N+h+h:h;case 951:return 116===h.charCodeAt(3)?N+h+h:h;case 963:return 110===h.charCodeAt(5)?N+h+h:h;case 1009:if(100!==h.charCodeAt(4))break;case 969:case 942:return N+h+h;case 978:return N+h+S+h+h;case 1019:case 983:return N+h+S+h+F+h+h;case 883:if(h.charCodeAt(8)===Q)return N+h+h;if(h.indexOf(\"image-set(\",11)>0)return h.replace(z,\"$1\"+N+\"$2\")+h;return h;case 932:if(h.charCodeAt(4)===Q)switch(h.charCodeAt(5)){case 103:return N+\"box-\"+h.replace(\"-grow\",\"\")+N+h+F+h.replace(\"grow\",\"positive\")+h;case 115:return N+h+F+h.replace(\"shrink\",\"negative\")+h;case 98:return N+h+F+h.replace(\"basis\",\"preferred-size\")+h}return N+h+F+h+h;case 964:return N+h+F+\"flex-\"+h+h;case 1023:if(99!==h.charCodeAt(8))break;return l=h.substring(h.indexOf(\":\",15)).replace(\"flex-\",\"\").replace(\"space-between\",\"justify\"),N+\"box-pack\"+l+N+h+F+\"flex-pack\"+l+h;case 1005:return t.test(h)?h.replace(s,\":\"+N)+h.replace(s,\":\"+S)+h:h;case 1e3:switch(o=(l=h.substring(13).trim()).indexOf(\"-\")+1,l.charCodeAt(0)+l.charCodeAt(o)){case 226:l=h.replace(m,\"tb\");break;case 232:l=h.replace(m,\"tb-rl\");break;case 220:l=h.replace(m,\"lr\");break;default:return h}return N+h+F+l+h;case 1017:if(-1===h.indexOf(\"sticky\",9))return h;case 975:switch(o=(h=e).length-10,u=(l=(33===h.charCodeAt(o)?h.substring(0,o):h).substring(e.indexOf(\":\",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(l.charCodeAt(8)<111)break;case 115:h=h.replace(l,N+l)+\";\"+h;break;case 207:case 102:h=h.replace(l,N+(u>102?\"inline-\":\"\")+\"box\")+\";\"+h.replace(l,N+l)+\";\"+h.replace(l,F+l+\"box\")+\";\"+h}return h+\";\";case 938:if(h.charCodeAt(5)===Q)switch(h.charCodeAt(6)){case 105:return l=h.replace(\"-items\",\"\"),N+h+N+\"box-\"+l+F+\"flex-\"+l+h;case 115:return N+h+F+\"flex-item-\"+h.replace(y,\"\")+h;default:return N+h+F+\"flex-line-pack\"+h.replace(\"align-content\",\"\").replace(y,\"\")+h}break;case 973:case 989:if(h.charCodeAt(3)!==Q||122===h.charCodeAt(4))break;case 931:case 953:if(true===j.test(e))if(115===(l=e.substring(e.indexOf(\":\")+1)).charCodeAt(0))return Ke(e.replace(\"stretch\",\"fill-available\"),a,r,c).replace(\":fill-available\",\":stretch\");else return h.replace(l,N+l)+h.replace(l,S+l.replace(\"fill-\",\"\"))+h;break;case 962:if(h=N+h+(102===h.charCodeAt(5)?F+h:\"\")+h,r+c===211&&105===h.charCodeAt(13)&&h.indexOf(\"transform\",10)>0)return h.substring(0,h.indexOf(\";\",27)+1).replace(i,\"$1\"+N+\"$2\")+h}return h}function Le(e,a){var r=e.indexOf(1===a?\":\":\"{\"),c=e.substring(0,3!==a?r:10),s=e.substring(r+1,e.length-1);return Oe(2!==a?c:c.replace(O,\"$1\"),s,a)}function Me(e,a){var r=Ke(a,a.charCodeAt(0),a.charCodeAt(1),a.charCodeAt(2));return r!==a+\";\"?r.replace($,\" or ($1)\").substring(4):\"(\"+a+\")\"}function Pe(e,a,r,c,s,t,i,f,n,l){for(var o,h=0,u=a;h0)De=s.replace(d,t===G?\"\":\"-\");if(t=1,1===ge)Ge=s;else Ee=s;var i,f=[Ge];if(ye>0)if(void 0!==(i=Pe(ze,r,f,f,pe,be,0,0,0,0))&&\"string\"==typeof i)r=i;var n=He(xe,f,r,0,0);if(ye>0)if(void 0!==(i=Pe(je,n,f,f,pe,be,n.length,0,0,0))&&\"string\"!=typeof(n=i))t=0;return De=\"\",Ge=\"\",Ee=\"\",ke=0,pe=1,be=1,we*t==0?n:n.replace(c,\"\").replace(g,\"\").replace(A,\"$1\").replace(C,\"$1\").replace(w,\" \")}if(Te.use=function e(a){switch(a){case void 0:case null:ye=$e.length=0;break;default:if(\"function\"==typeof a)$e[ye++]=a;else if(\"object\"==typeof a)for(var r=0,c=a.length;r\n import(/* webpackChunkName: \"colorpicker\" */ '../fragments/ColorPicker.react')\n);\n/**\n * A color picker.\n */\nexport default class ColorPicker extends Component {\n render() {\n return (\n \n \n \n );\n }\n}\n\nColorPicker.defaultProps = {\n size: 225,\n theme: light,\n labelPosition: 'top',\n persisted_props: ['value'],\n persistence_type: 'local'\n};\n\nColorPicker.propTypes = {\n /**\n * The ID used to identify the color picker in Dash callbacks\n */\n id: PropTypes.string,\n\n /**\n * Color value of the picker\n */\n value: PropTypes.shape({\n /**\n * Hex string\n */\n hex: PropTypes.string,\n\n /**\n * RGB/RGBA object\n */\n rbg: PropTypes.shape({\n r: PropTypes.number,\n g: PropTypes.number,\n b: PropTypes.number,\n a: PropTypes.number\n })\n }),\n\n /**\n * If true, color cannot be picked.\n */\n disabled: PropTypes.bool,\n\n /**\n * Size (width) of the component in pixels\n */\n size: PropTypes.number,\n\n /**\n * Theme configuration to be set by a ThemeProvider\n */\n theme: PropTypes.object,\n\n /**\n * Description to be displayed alongside the control. To control styling,\n * pass an object with label and style properties\n */\n label: PropTypes.oneOfType([\n /**\n * Label to be displayed\n */\n PropTypes.string,\n\n /**\n * The style and label\n */\n PropTypes.shape({\n style: PropTypes.object,\n label: PropTypes.string\n })\n ]),\n\n /**\n * Where the indicator label is positioned\n */\n labelPosition: PropTypes.oneOf(['top', 'bottom']),\n\n /**\n * Class to apply to the root component element\n */\n className: PropTypes.string,\n\n /**\n * Dash-assigned callback that gets fired when\n * the color picker's value changes\n */\n setProps: PropTypes.func,\n\n /**\n * Style to apply to the root component element\n */\n style: PropTypes.object,\n\n /**\n * Used to allow user interactions in this component to be persisted when\n * the component - or the page - is refreshed. If `persisted` is truthy and\n * hasn't changed from its previous value, a `value` that the user has\n * changed while using the app will keep that change, as long as\n * the new `value` also matches what was given originally.\n * Used in conjunction with `persistence_type`.\n */\n persistence: PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.number]),\n\n /**\n * Properties whose user interactions will persist after refreshing the\n * component or the page. Since only `value` is allowed this prop can\n * normally be ignored.\n */\n persisted_props: PropTypes.arrayOf(PropTypes.oneOf(['value'])),\n\n /**\n * Where persisted user changes will be stored:\n * memory: only kept in memory, reset on page refresh.\n * local: window.localStorage, data is kept after the browser quit.\n * session: window.sessionStorage, data is cleared once the browser quit.\n */\n persistence_type: PropTypes.oneOf(['local', 'session', 'memory'])\n};\n\nexport const defaultProps = ColorPicker.defaultProps;\nexport const propTypes = ColorPicker.propTypes;\n","// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","// 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","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = require('./_hide');\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","(function (factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory()) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory()) :\n\t\t\t(window['stylisRuleSheet'] = factory())\n}(function () {\n\n\t'use strict'\n\n\treturn function (insertRule) {\n\t\tvar delimiter = '/*|*/'\n\t\tvar needle = delimiter+'}'\n\n\t\tfunction toSheet (block) {\n\t\t\tif (block)\n\t\t\t\ttry {\n\t\t\t\t\tinsertRule(block + '}')\n\t\t\t\t} catch (e) {}\n\t\t}\n\n\t\treturn function ruleSheet (context, content, selectors, parents, line, column, length, ns, depth, at) {\n\t\t\tswitch (context) {\n\t\t\t\t// property\n\t\t\t\tcase 1:\n\t\t\t\t\t// @import\n\t\t\t\t\tif (depth === 0 && content.charCodeAt(0) === 64)\n\t\t\t\t\t\treturn insertRule(content+';'), ''\n\t\t\t\t\tbreak\n\t\t\t\t// selector\n\t\t\t\tcase 2:\n\t\t\t\t\tif (ns === 0)\n\t\t\t\t\t\treturn content + delimiter\n\t\t\t\t\tbreak\n\t\t\t\t// at-rule\n\t\t\t\tcase 3:\n\t\t\t\t\tswitch (ns) {\n\t\t\t\t\t\t// @font-face, @page\n\t\t\t\t\t\tcase 102:\n\t\t\t\t\t\tcase 112:\n\t\t\t\t\t\t\treturn insertRule(selectors[0]+content), ''\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn content + (at === 0 ? delimiter : '')\n\t\t\t\t\t}\n\t\t\t\tcase -2:\n\t\t\t\t\tcontent.split(needle).forEach(toSheet)\n\t\t\t}\n\t\t}\n\t}\n}))\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","/*!\n * TinyGradient 0.4.3\n * Copyright 2014-2018 Damien \"Mistic\" Sorel (http://www.strangeplanet.fr)\n * Licensed under MIT (http://opensource.org/licenses/MIT)\n */\n\n(function (root, factory) {\n if (typeof module !== \"undefined\" && module.exports) {\n module.exports = factory(require('tinycolor2'));\n }\n else if (typeof define === 'function' && define.amd) {\n define(['tinycolor2'], factory);\n }\n else {\n root.tinygradient = factory(root.tinycolor);\n }\n}(this, function (tinycolor) {\n \"use strict\";\n\n var RGBA_MAX = {r: 256, g: 256, b: 256, a: 1};\n var HSVA_MAX = {h: 360, s: 1, v: 1, a: 1};\n\n /**\n * Linearly compute the step size between start and end (not normalized)\n * @param {Object} start - rgba or hsva\n * @param {Object} end - rgba or hsva\n * @param {int} steps - number of desired steps\n * @return {Object} rgba or hsva\n */\n function stepize(start, end, steps) {\n var step = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n step[k] = steps === 0 ? 0 : (end[k] - start[k]) / steps;\n }\n }\n\n return step;\n }\n\n /**\n * Compute the final step color\n * @param {Object} step - rgba or hsva from `stepize`\n * @param {Object} start - rgba or hsva\n * @param {int} i - color index\n * @param {Object} max - rgba or hsva of maximum values for each channel\n * @return {Object} rgba or hsva\n */\n function interpolate(step, start, i, max) {\n var color = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n color[k] = step[k] * i + start[k];\n color[k] = color[k] < 0 ? color[k] + max[k] : ( max[k] !== 1 ? color[k] % max[k] : color[k] );\n }\n }\n\n return color;\n }\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateRgb(stop1, stop2, steps) {\n var start = stop1.color.toRgb(),\n end = stop2.color.toRgb(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n color;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, RGBA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @param {Boolean} trigonometric - true to step in trigonometric order\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateHsv(stop1, stop2, steps, trigonometric) {\n var start = stop1.color.toHsv(),\n end = stop2.color.toHsv(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n diff, color;\n\n // recompute hue\n if ((start.h <= end.h && !trigonometric) || (start.h >= end.h && trigonometric)) {\n diff = end.h - start.h;\n }\n else if (trigonometric) {\n diff = 360 - end.h + start.h;\n }\n else {\n diff = 360 - start.h + end.h;\n }\n step.h = Math.pow(-1, trigonometric ? 1 : 0) * Math.abs(diff) / steps;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, HSVA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Compute substeps between each stops\n * @param {Object[]} stops\n * @param {int} steps\n * @return {int[]}\n */\n function computeSubsteps(stops, steps) {\n var l = stops.length;\n\n // validation\n steps = parseInt(steps);\n\n if (isNaN(steps) || steps < 2) {\n throw new Error('Invalid number of steps (< 2)');\n }\n if (steps < l) {\n throw new Error('Number of steps cannot be inferior to number of stops');\n }\n\n // compute substeps from stop positions\n var substeps = [];\n\n for (var i = 1; i < l; i++) {\n var step = (steps - 1) * (stops[i].pos - stops[i - 1].pos);\n substeps.push(Math.max(1, Math.round(step)));\n }\n\n // adjust number of steps\n var totalSubsteps = 1;\n for (var n = l - 1; n--;) totalSubsteps += substeps[n];\n\n while (totalSubsteps !== steps) {\n if (totalSubsteps < steps) {\n var min = Math.min.apply(null, substeps);\n substeps[substeps.indexOf(min)]++;\n totalSubsteps++;\n }\n else {\n var max = Math.max.apply(null, substeps);\n substeps[substeps.indexOf(max)]--;\n totalSubsteps--;\n }\n }\n\n return substeps;\n }\n\n /**\n * Compute the color at a specific position\n * @param {Object[]} stops\n * @param {float} pos\n * @param {string} method\n * @param {Object} max\n * @returns {tinycolor}\n */\n function computeAt(stops, pos, method, max) {\n if (pos < 0 || pos > 1) {\n throw new Error('Position must be between 0 and 1');\n }\n\n var start, end;\n for (var i = 0, l = stops.length; i < l - 1; i++) {\n if (pos >= stops[i].pos && pos < stops[i + 1].pos) {\n start = stops[i];\n end = stops[i + 1];\n break;\n }\n }\n\n if (!start) {\n start = end = stops[stops.length - 1];\n }\n\n var step = stepize(start.color[method](), end.color[method](), (end.pos - start.pos) * 100);\n var color = interpolate(step, start.color[method](), Math.round((pos - start.pos) * 100), max);\n return tinycolor(color);\n }\n\n /**\n * @class tinygradient\n * @param {*} stops\n */\n var TinyGradient = function (stops) {\n // varargs\n if (arguments.length === 1) {\n if (!(arguments[0] instanceof Array)) {\n throw new Error('\"stops\" is not an array');\n }\n stops = arguments[0];\n }\n else {\n stops = Array.prototype.slice.call(arguments);\n }\n\n // if we are called as a function, call using new instead\n if (!(this instanceof TinyGradient)) {\n return new TinyGradient(stops);\n }\n\n // validation\n if (stops.length < 2) {\n throw new Error('Invalid number of stops (< 2)');\n }\n\n var havingPositions = stops[0].pos !== undefined,\n l = stops.length,\n p = -1;\n // create tinycolor objects and clean positions\n this.stops = stops.map(function (stop, i) {\n var hasPosition = stop.pos !== undefined;\n if (havingPositions ^ hasPosition) {\n throw new Error('Cannot mix positionned and not posionned color stops');\n }\n\n if (hasPosition) {\n stop = {\n color: tinycolor(stop.color),\n pos : stop.pos\n };\n\n if (stop.pos < 0 || stop.pos > 1) {\n throw new Error('Color stops positions must be between 0 and 1');\n }\n else if (stop.pos <= p) {\n throw new Error('Color stops positions are not ordered');\n }\n p = stop.pos;\n }\n else {\n stop = {\n color: tinycolor(stop),\n pos : i / (l - 1)\n };\n }\n\n return stop;\n });\n\n if (this.stops[0].pos !== 0) {\n this.stops.unshift({\n color: this.stops[0].color,\n pos : 0\n });\n }\n if (this.stops[this.stops.length - 1].pos !== 1) {\n this.stops.push({\n color: this.stops[this.stops.length - 1].color,\n pos : 1\n });\n }\n };\n\n /**\n * Return new instance with reversed stops\n * @return {tinygradient}\n */\n TinyGradient.prototype.reverse = function () {\n var stops = [];\n\n this.stops.forEach(function (stop) {\n stops.push({\n color: stop.color,\n pos : 1 - stop.pos\n });\n });\n\n return new TinyGradient(stops.reverse());\n };\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {int} steps\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.rgb = function (steps) {\n var substeps = computeSubsteps(this.stops, steps),\n gradient = [];\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {int} steps\n * @param {Boolean|String} [mode=false]\n * - false to step in clockwise\n * - true to step in trigonometric order\n * - 'short' to use the shortest way\n * - 'long' to use the longest way\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.hsv = function (steps, mode) {\n var substeps = computeSubsteps(this.stops, steps),\n trigonometric = mode === true,\n parametrized = typeof mode === 'string',\n gradient = [],\n start, end, trig;\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n start = this.stops[i].color.toHsv();\n end = this.stops[i + 1].color.toHsv();\n\n if (parametrized) {\n trig = (start.h < end.h && end.h - start.h < 180) || (start.h > end.h && start.h - end.h > 180);\n }\n\n // rgb interpolation if one of the steps in grayscale\n if (start.s === 0 || end.s === 0) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n else {\n gradient = gradient.concat(interpolateHsv(this.stops[i], this.stops[i + 1], substeps[i],\n (mode === 'long' && trig) || (mode === 'short' && !trig) || (!parametrized && trigonometric)\n ));\n }\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate CSS3 command (no prefix) for this gradient\n * @param {String} [mode=linear] - 'linear' or 'radial'\n * @param {String} [direction] - default is 'to right' or 'ellipse at center'\n * @return {String}\n */\n TinyGradient.prototype.css = function (mode, direction) {\n mode = mode || 'linear';\n direction = direction || (mode === 'linear' ? 'to right' : 'ellipse at center');\n\n var css = mode + '-gradient(' + direction;\n this.stops.forEach(function (stop) {\n css += ', ' + stop.color.toRgbString() + ' ' + (stop.pos * 100) + '%';\n });\n css += ')';\n return css;\n };\n\n /**\n * Returns the color at specific position with RGBa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.rgbAt = function (pos) {\n return computeAt(this.stops, pos, 'toRgb', RGBA_MAX);\n };\n\n /**\n * Returns the color at specific position with HSVa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.hsvAt = function (pos) {\n return computeAt(this.stops, pos, 'toHsv', HSVA_MAX);\n };\n\n var STATIC_FNS = {\n 'rgb' : 1,\n 'hsv' : 2,\n 'css' : 2,\n 'rgbAt': 1,\n 'hsvAt': 1\n };\n\n Object.keys(STATIC_FNS).forEach(function (fn) {\n TinyGradient[fn] = function () {\n var colors = Array.prototype.slice.call(arguments);\n var args = colors.splice(-STATIC_FNS[fn]);\n var gradient = new TinyGradient(colors);\n return gradient[fn].apply(gradient, args);\n };\n });\n\n // export\n return TinyGradient;\n}));","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = addEventListener;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventObject = require('./EventObject');\n\nvar _EventObject2 = _interopRequireDefault(_EventObject);\n\nfunction addEventListener(target, eventType, callback, option) {\n function wrapCallback(e) {\n var ne = new _EventObject2['default'](e);\n callback.call(target, ne);\n }\n\n if (target.addEventListener) {\n var _ret = (function () {\n var useCapture = false;\n if (typeof option === 'object') {\n useCapture = option.capture || false;\n } else if (typeof option === 'boolean') {\n useCapture = option;\n }\n\n target.addEventListener(eventType, wrapCallback, option || false);\n\n return {\n v: {\n remove: function remove() {\n target.removeEventListener(eventType, wrapCallback, useCapture);\n }\n }\n };\n })();\n\n if (typeof _ret === 'object') return _ret.v;\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, wrapCallback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, wrapCallback);\n }\n };\n }\n}\n\nmodule.exports = exports['default'];","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\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 }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.nipplejs = f()}})(function(){var define,module,exports;\n'use strict';\n\n// Constants\nvar isTouch = !!('ontouchstart' in window);\nvar isPointer = window.PointerEvent ? true : false;\nvar isMSPointer = window.MSPointerEvent ? true : false;\nvar events = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend, touchcancel'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n },\n pointer: {\n start: 'pointerdown',\n move: 'pointermove',\n end: 'pointerup, pointercancel'\n },\n MSPointer: {\n start: 'MSPointerDown',\n move: 'MSPointerMove',\n end: 'MSPointerUp'\n }\n};\nvar toBind;\nvar secondBind = {};\nif (isPointer) {\n toBind = events.pointer;\n} else if (isMSPointer) {\n toBind = events.MSPointer;\n} else if (isTouch) {\n toBind = events.touch;\n secondBind = events.mouse;\n} else {\n toBind = events.mouse;\n}\n\n///////////////////////\n/// UTILS ///\n///////////////////////\n\nvar u = {};\nu.distance = function (p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return Math.sqrt((dx * dx) + (dy * dy));\n};\n\nu.angle = function(p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return u.degrees(Math.atan2(dy, dx));\n};\n\nu.findCoord = function(p, d, a) {\n var b = {x: 0, y: 0};\n a = u.radians(a);\n b.x = p.x - d * Math.cos(a);\n b.y = p.y - d * Math.sin(a);\n return b;\n};\n\nu.radians = function(a) {\n return a * (Math.PI / 180);\n};\n\nu.degrees = function(a) {\n return a * (180 / Math.PI);\n};\n\nu.bindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.addEventListener) {\n el.addEventListener(type, handler, false);\n } else if (el.attachEvent) {\n el.attachEvent(type, handler);\n }\n }\n};\n\nu.unbindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.removeEventListener) {\n el.removeEventListener(type, handler);\n } else if (el.detachEvent) {\n el.detachEvent(type, handler);\n }\n }\n};\n\nu.trigger = function (el, type, data) {\n var evt = new CustomEvent(type, data);\n el.dispatchEvent(evt);\n};\n\nu.prepareEvent = function (evt) {\n evt.preventDefault();\n return evt.type.match(/^touch/) ? evt.changedTouches : evt;\n};\n\nu.getScroll = function () {\n var x = (window.pageXOffset !== undefined) ?\n window.pageXOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollLeft;\n\n var y = (window.pageYOffset !== undefined) ?\n window.pageYOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollTop;\n return {\n x: x,\n y: y\n };\n};\n\nu.applyPosition = function (el, pos) {\n if (pos.top || pos.right || pos.bottom || pos.left) {\n el.style.top = pos.top;\n el.style.right = pos.right;\n el.style.bottom = pos.bottom;\n el.style.left = pos.left;\n } else {\n el.style.left = pos.x + 'px';\n el.style.top = pos.y + 'px';\n }\n};\n\nu.getTransitionStyle = function (property, values, time) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (typeof values === 'string') {\n obj[i] = values + ' ' + time;\n } else {\n var st = '';\n for (var j = 0, max = values.length; j < max; j += 1) {\n st += values[j] + ' ' + time + ', ';\n }\n obj[i] = st.slice(0, -2);\n }\n }\n }\n return obj;\n};\n\nu.getVendorStyle = function (property, value) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n obj[i] = value;\n }\n }\n return obj;\n};\n\nu.configStylePropertyObject = function (prop) {\n var obj = {};\n obj[prop] = '';\n var vendors = ['webkit', 'Moz', 'o'];\n vendors.forEach(function (vendor) {\n obj[vendor + prop.charAt(0).toUpperCase() + prop.slice(1)] = '';\n });\n return obj;\n};\n\nu.extend = function (objA, objB) {\n for (var i in objB) {\n if (objB.hasOwnProperty(i)) {\n objA[i] = objB[i];\n }\n }\n return objA;\n};\n\n// Overwrite only what's already present\nu.safeExtend = function (objA, objB) {\n var obj = {};\n for (var i in objA) {\n if (objA.hasOwnProperty(i) && objB.hasOwnProperty(i)) {\n obj[i] = objB[i];\n } else if (objA.hasOwnProperty(i)) {\n obj[i] = objA[i];\n }\n }\n return obj;\n};\n\n// Map for array or unique item.\nu.map = function (ar, fn) {\n if (ar.length) {\n for (var i = 0, max = ar.length; i < max; i += 1) {\n fn(ar[i]);\n }\n } else {\n fn(ar);\n }\n};\n\n///////////////////////\n/// SUPER CLASS ///\n///////////////////////\n\nfunction Super () {};\n\n// Basic event system.\nSuper.prototype.on = function (arg, cb) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n self._handlers_[type] = self._handlers_[type] || [];\n self._handlers_[type].push(cb);\n }\n return self;\n};\n\nSuper.prototype.off = function (type, cb) {\n var self = this;\n self._handlers_ = self._handlers_ || {};\n\n if (type === undefined) {\n self._handlers_ = {};\n } else if (cb === undefined) {\n self._handlers_[type] = null;\n } else if (self._handlers_[type] &&\n self._handlers_[type].indexOf(cb) >= 0) {\n self._handlers_[type].splice(self._handlers_[type].indexOf(cb), 1);\n }\n\n return self;\n};\n\nSuper.prototype.trigger = function (arg, data) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (self._handlers_[type] && self._handlers_[type].length) {\n self._handlers_[type].forEach(function (handler) {\n handler.call(self, {\n type: type,\n target: self\n }, data);\n });\n }\n }\n};\n\n// Configuration\nSuper.prototype.config = function (options) {\n var self = this;\n self.options = self.defaults || {};\n if (options) {\n self.options = u.safeExtend(self.options, options);\n }\n};\n\n// Bind internal events.\nSuper.prototype.bindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n self._domHandlers_[type] = function () {\n if (typeof self['on' + type] === 'function') {\n self['on' + type].apply(self, arguments);\n } else {\n console.warn('[WARNING] : Missing \"on' + type + '\" handler.');\n }\n };\n\n u.bindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.bindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n return self;\n};\n\n// Unbind dom events.\nSuper.prototype.unbindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n u.unbindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.unbindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n delete self._domHandlers_[type];\n\n return this;\n};\n\n///////////////////////\n/// THE NIPPLE ///\n///////////////////////\n\nfunction Nipple (collection, options) {\n this.identifier = options.identifier;\n this.position = options.position;\n this.frontPosition = options.frontPosition;\n this.collection = collection;\n\n // Defaults\n this.defaults = {\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n mode: 'dynamic',\n zone: document.body,\n lockX: false,\n lockY: false\n };\n\n this.config(options);\n\n // Overwrites\n if (this.options.mode === 'dynamic') {\n this.options.restOpacity = 0;\n }\n\n this.id = Nipple.id;\n Nipple.id += 1;\n this.buildEl()\n .stylize();\n\n // Nipple's API.\n this.instance = {\n el: this.ui.el,\n on: this.on.bind(this),\n off: this.off.bind(this),\n show: this.show.bind(this),\n hide: this.hide.bind(this),\n add: this.addToDom.bind(this),\n remove: this.removeFromDom.bind(this),\n destroy: this.destroy.bind(this),\n resetDirection: this.resetDirection.bind(this),\n computeDirection: this.computeDirection.bind(this),\n trigger: this.trigger.bind(this),\n position: this.position,\n frontPosition: this.frontPosition,\n ui: this.ui,\n identifier: this.identifier,\n id: this.id,\n options: this.options\n };\n\n return this.instance;\n};\n\nNipple.prototype = new Super();\nNipple.constructor = Nipple;\nNipple.id = 0;\n\n// Build the dom element of the Nipple instance.\nNipple.prototype.buildEl = function (options) {\n this.ui = {};\n\n if (this.options.dataOnly) {\n return this;\n }\n\n this.ui.el = document.createElement('div');\n this.ui.back = document.createElement('div');\n this.ui.front = document.createElement('div');\n\n this.ui.el.className = 'nipple collection_' + this.collection.id;\n this.ui.back.className = 'back';\n this.ui.front.className = 'front';\n\n this.ui.el.setAttribute('id', 'nipple_' + this.collection.id +\n '_' + this.id);\n\n this.ui.el.appendChild(this.ui.back);\n this.ui.el.appendChild(this.ui.front);\n\n return this;\n};\n\n// Apply CSS to the Nipple instance.\nNipple.prototype.stylize = function () {\n if (this.options.dataOnly) {\n return this;\n }\n var animTime = this.options.fadeTime + 'ms';\n var borderStyle = u.getVendorStyle('borderRadius', '50%');\n var transitStyle = u.getTransitionStyle('transition', 'opacity', animTime);\n var styles = {};\n styles.el = {\n position: 'absolute',\n opacity: this.options.restOpacity,\n display: 'block',\n 'zIndex': 999\n };\n\n styles.back = {\n position: 'absolute',\n display: 'block',\n width: this.options.size + 'px',\n height: this.options.size + 'px',\n marginLeft: -this.options.size / 2 + 'px',\n marginTop: -this.options.size / 2 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n styles.front = {\n width: this.options.size / 2 + 'px',\n height: this.options.size / 2 + 'px',\n position: 'absolute',\n display: 'block',\n marginLeft: -this.options.size / 4 + 'px',\n marginTop: -this.options.size / 4 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n u.extend(styles.el, transitStyle);\n u.extend(styles.back, borderStyle);\n u.extend(styles.front, borderStyle);\n\n this.applyStyles(styles);\n\n return this;\n};\n\nNipple.prototype.applyStyles = function (styles) {\n // Apply styles\n for (var i in this.ui) {\n if (this.ui.hasOwnProperty(i)) {\n for (var j in styles[i]) {\n this.ui[i].style[j] = styles[i][j];\n }\n }\n }\n\n return this;\n};\n\n// Inject the Nipple instance into DOM.\nNipple.prototype.addToDom = function () {\n // We're not adding it if we're dataOnly or already in dom.\n if (this.options.dataOnly || document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.appendChild(this.ui.el);\n return this;\n};\n\n// Remove the Nipple instance from DOM.\nNipple.prototype.removeFromDom = function () {\n if (this.options.dataOnly || !document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.removeChild(this.ui.el);\n return this;\n};\n\n// Entirely destroy this nipple\nNipple.prototype.destroy = function () {\n clearTimeout(this.removeTimeout);\n clearTimeout(this.showTimeout);\n clearTimeout(this.restTimeout);\n this.trigger('destroyed', this.instance);\n this.removeFromDom();\n this.off();\n};\n\n// Fade in the Nipple instance.\nNipple.prototype.show = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.addToDom();\n\n self.restCallback();\n\n setTimeout(function () {\n self.ui.el.style.opacity = 1;\n }, 0);\n\n self.showTimeout = setTimeout(function () {\n self.trigger('shown', self.instance);\n if (typeof cb === 'function') {\n cb.call(this);\n }\n }, self.options.fadeTime);\n\n return self;\n};\n\n// Fade out the Nipple instance.\nNipple.prototype.hide = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n self.ui.el.style.opacity = self.options.restOpacity;\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.removeTimeout = setTimeout(\n function () {\n var display = self.options.mode === 'dynamic' ? 'none' : 'block';\n self.ui.el.style.display = display;\n if (typeof cb === 'function') {\n cb.call(self);\n }\n\n self.trigger('hidden', self.instance);\n },\n self.options.fadeTime\n );\n if (self.options.restJoystick) {\n self.restPosition();\n }\n\n return self;\n};\n\nNipple.prototype.restPosition = function (cb) {\n var self = this;\n self.frontPosition = {\n x: 0,\n y: 0\n };\n var animTime = self.options.fadeTime + 'ms';\n\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition',\n ['top', 'left'], animTime);\n\n var styles = {front: {}};\n styles.front = {\n left: self.frontPosition.x + 'px',\n top: self.frontPosition.y + 'px'\n };\n\n self.applyStyles(transitStyle);\n self.applyStyles(styles);\n\n self.restTimeout = setTimeout(\n function () {\n if (typeof cb === 'function') {\n cb.call(self);\n }\n self.restCallback();\n },\n self.options.fadeTime\n );\n};\n\nNipple.prototype.restCallback = function () {\n var self = this;\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition', 'none', '');\n self.applyStyles(transitStyle);\n self.trigger('rested', self.instance);\n};\n\nNipple.prototype.resetDirection = function () {\n // Fully rebuild the object to let the iteration possible.\n this.direction = {\n x: false,\n y: false,\n angle: false\n };\n};\n\nNipple.prototype.computeDirection = function (obj) {\n var rAngle = obj.angle.radian;\n var angle45 = Math.PI / 4;\n var angle90 = Math.PI / 2;\n var direction, directionX, directionY;\n\n // Angular direction\n // \\ UP /\n // \\ /\n // LEFT RIGHT\n // / \\\n // /DOWN \\\n //\n if (\n rAngle > angle45 &&\n rAngle < (angle45 * 3) &&\n !obj.lockX\n ) {\n direction = 'up';\n } else if (\n rAngle > -angle45 &&\n rAngle <= angle45 &&\n !obj.lockY\n ) {\n direction = 'left';\n } else if (\n rAngle > (-angle45 * 3) &&\n rAngle <= -angle45 &&\n !obj.lockX\n ) {\n direction = 'down';\n } else if (!obj.lockY) {\n direction = 'right';\n }\n\n // Plain direction\n // UP |\n // _______ | RIGHT\n // LEFT |\n // DOWN |\n if (!obj.lockY) {\n if (rAngle > -angle90 && rAngle < angle90) {\n directionX = 'left';\n } else {\n directionX = 'right';\n }\n }\n\n if (!obj.lockX) {\n if (rAngle > 0) {\n directionY = 'up';\n } else {\n directionY = 'down';\n }\n }\n\n if (obj.force > this.options.threshold) {\n var oldDirection = {};\n for (var i in this.direction) {\n if (this.direction.hasOwnProperty(i)) {\n oldDirection[i] = this.direction[i];\n }\n }\n\n var same = {};\n\n this.direction = {\n x: directionX,\n y: directionY,\n angle: direction\n };\n\n obj.direction = this.direction;\n\n for (var i in oldDirection) {\n if (oldDirection[i] === this.direction[i]) {\n same[i] = true;\n }\n }\n\n // If all 3 directions are the same, we don't trigger anything.\n if (same.x && same.y && same.angle) {\n return obj;\n }\n\n if (!same.x || !same.y) {\n this.trigger('plain', obj);\n }\n\n if (!same.x) {\n this.trigger('plain:' + directionX, obj);\n }\n\n if (!same.y) {\n this.trigger('plain:' + directionY, obj);\n }\n\n if (!same.angle) {\n this.trigger('dir dir:' + direction, obj);\n }\n }\n return obj;\n};\n\n/* global Nipple, Super */\n\n///////////////////////////\n/// THE COLLECTION ///\n///////////////////////////\n\nfunction Collection (manager, options) {\n var self = this;\n self.nipples = [];\n self.idles = [];\n self.actives = [];\n self.ids = [];\n self.pressureIntervals = {};\n self.manager = manager;\n self.id = Collection.id;\n Collection.id += 1;\n\n // Defaults\n self.defaults = {\n zone: document.body,\n multitouch: false,\n maxNumberOfNipples: 10,\n mode: 'dynamic',\n position: {top: 0, left: 0},\n catchDistance: 200,\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n lockX: false,\n lockY: false\n };\n\n self.config(options);\n\n // Overwrites\n if (self.options.mode === 'static' || self.options.mode === 'semi') {\n self.options.multitouch = false;\n }\n\n if (!self.options.multitouch) {\n self.options.maxNumberOfNipples = 1;\n }\n\n self.updateBox();\n self.prepareNipples();\n self.bindings();\n self.begin();\n\n return self.nipples;\n}\n\nCollection.prototype = new Super();\nCollection.constructor = Collection;\nCollection.id = 0;\n\nCollection.prototype.prepareNipples = function () {\n var self = this;\n var nips = self.nipples;\n\n // Public API Preparation.\n nips.on = self.on.bind(self);\n nips.off = self.off.bind(self);\n nips.options = self.options;\n nips.destroy = self.destroy.bind(self);\n nips.ids = self.ids;\n nips.id = self.id;\n nips.processOnMove = self.processOnMove.bind(self);\n nips.processOnEnd = self.processOnEnd.bind(self);\n nips.get = function (id) {\n if (id === undefined) {\n return nips[0];\n }\n for (var i = 0, max = nips.length; i < max; i += 1) {\n if (nips[i].identifier === id) {\n return nips[i];\n }\n }\n return false;\n };\n};\n\nCollection.prototype.bindings = function () {\n var self = this;\n // Touch start event.\n self.bindEvt(self.options.zone, 'start');\n // Avoid native touch actions (scroll, zoom etc...) on the zone.\n self.options.zone.style.touchAction = 'none';\n self.options.zone.style.msTouchAction = 'none';\n};\n\nCollection.prototype.begin = function () {\n var self = this;\n var opts = self.options;\n\n // We place our static nipple\n // if needed.\n if (opts.mode === 'static') {\n var nipple = self.createNipple(\n opts.position,\n self.manager.getIdentifier()\n );\n // Add it to the dom.\n nipple.add();\n // Store it in idles.\n self.idles.push(nipple);\n }\n};\n\n// Nipple Factory\nCollection.prototype.createNipple = function (position, identifier) {\n var self = this;\n var scroll = u.getScroll();\n var toPutOn = {};\n var opts = self.options;\n\n if (position.x && position.y) {\n toPutOn = {\n x: position.x -\n (scroll.x + self.box.left),\n y: position.y -\n (scroll.y + self.box.top)\n };\n } else if (\n position.top ||\n position.right ||\n position.bottom ||\n position.left\n ) {\n\n // We need to compute the position X / Y of the joystick.\n var dumb = document.createElement('DIV');\n dumb.style.display = 'hidden';\n dumb.style.top = position.top;\n dumb.style.right = position.right;\n dumb.style.bottom = position.bottom;\n dumb.style.left = position.left;\n dumb.style.position = 'absolute';\n\n opts.zone.appendChild(dumb);\n var dumbBox = dumb.getBoundingClientRect();\n opts.zone.removeChild(dumb);\n\n toPutOn = position;\n position = {\n x: dumbBox.left + scroll.x,\n y: dumbBox.top + scroll.y\n };\n }\n\n var nipple = new Nipple(self, {\n color: opts.color,\n size: opts.size,\n threshold: opts.threshold,\n fadeTime: opts.fadeTime,\n dataOnly: opts.dataOnly,\n restJoystick: opts.restJoystick,\n restOpacity: opts.restOpacity,\n mode: opts.mode,\n identifier: identifier,\n position: position,\n zone: opts.zone,\n frontPosition: {\n x: 0,\n y: 0\n }\n });\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.el, toPutOn);\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n self.nipples.push(nipple);\n self.trigger('added ' + nipple.identifier + ':added', nipple);\n self.manager.trigger('added ' + nipple.identifier + ':added', nipple);\n\n self.bindNipple(nipple);\n\n return nipple;\n};\n\nCollection.prototype.updateBox = function () {\n var self = this;\n self.box = self.options.zone.getBoundingClientRect();\n};\n\nCollection.prototype.bindNipple = function (nipple) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's id.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed.\n nipple.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n nipple.on('shown hidden rested dir plain', handler);\n nipple.on('dir:up dir:right dir:down dir:left', handler);\n nipple.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nCollection.prototype.pressureFn = function (touch, nipple, identifier) {\n var self = this;\n var previousPressure = 0;\n clearInterval(self.pressureIntervals[identifier]);\n // Create an interval that will read the pressure every 100ms\n self.pressureIntervals[identifier] = setInterval(function () {\n var pressure = touch.force || touch.pressure ||\n touch.webkitForce || 0;\n if (pressure !== previousPressure) {\n nipple.trigger('pressure', pressure);\n self.trigger('pressure ' +\n nipple.identifier + ':pressure', pressure);\n previousPressure = pressure;\n }\n }.bind(self), 100);\n};\n\nCollection.prototype.onstart = function (evt) {\n var self = this;\n var opts = self.options;\n evt = u.prepareEvent(evt);\n\n // Update the box position\n self.updateBox();\n\n var process = function (touch) {\n // If we can create new nipples\n // meaning we don't have more active nipples than we should.\n if (self.actives.length < opts.maxNumberOfNipples) {\n self.processOnStart(touch);\n }\n };\n\n u.map(evt, process);\n\n // We ask upstream to bind the document\n // on 'move' and 'end'\n self.manager.bindDocument();\n return false;\n};\n\nCollection.prototype.processOnStart = function (evt) {\n var self = this;\n var opts = self.options;\n var indexInIdles;\n var identifier = self.manager.getIdentifier(evt);\n var pressure = evt.force || evt.pressure || evt.webkitForce || 0;\n var position = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var nipple = self.getOrCreate(identifier, position);\n\n // Update its touch identifier\n if (nipple.identifier !== identifier) {\n self.manager.removeIdentifier(nipple.identifier);\n }\n nipple.identifier = identifier;\n\n var process = function (nip) {\n // Trigger the start.\n nip.trigger('start', nip);\n self.trigger('start ' + nip.id + ':start', nip);\n\n nip.show();\n if (pressure > 0) {\n self.pressureFn(evt, nip, nip.identifier);\n }\n // Trigger the first move event.\n self.processOnMove(evt);\n };\n\n // Transfer it from idles to actives.\n if ((indexInIdles = self.idles.indexOf(nipple)) >= 0) {\n self.idles.splice(indexInIdles, 1);\n }\n\n // Store the nipple in the actives array\n self.actives.push(nipple);\n self.ids.push(nipple.identifier);\n\n if (opts.mode !== 'semi') {\n process(nipple);\n } else {\n // In semi we check the distance of the touch\n // to decide if we have to reset the nipple\n var distance = u.distance(position, nipple.position);\n if (distance <= opts.catchDistance) {\n process(nipple);\n } else {\n nipple.destroy();\n self.processOnStart(evt);\n return;\n }\n }\n\n return nipple;\n};\n\nCollection.prototype.getOrCreate = function (identifier, position) {\n var self = this;\n var opts = self.options;\n var nipple;\n\n // If we're in static or semi, we might already have an active.\n if (/(semi|static)/.test(opts.mode)) {\n // Get the active one.\n // TODO: Multi-touche for semi and static will start here.\n // Return the nearest one.\n nipple = self.idles[0];\n if (nipple) {\n self.idles.splice(0, 1);\n return nipple;\n }\n\n if (opts.mode === 'semi') {\n // If we're in semi mode, we need to create one.\n return self.createNipple(position, identifier);\n }\n\n console.warn('Coudln\\'t find the needed nipple.');\n return false;\n }\n // In dynamic, we create a new one.\n nipple = self.createNipple(position, identifier);\n return nipple;\n};\n\nCollection.prototype.processOnMove = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n\n if (!nipple) {\n // This is here just for safety.\n // It shouldn't happen.\n console.error('Found zombie joystick with ID ' + identifier);\n self.manager.removeIdentifier(identifier);\n return;\n }\n\n nipple.identifier = identifier;\n\n var size = nipple.options.size / 2;\n var pos = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var dist = u.distance(pos, nipple.position);\n var angle = u.angle(pos, nipple.position);\n var rAngle = u.radians(angle);\n var force = dist / size;\n\n // If distance is bigger than nipple's size\n // we clamp the position.\n if (dist > size) {\n dist = size;\n pos = u.findCoord(nipple.position, dist, angle);\n }\n\n var xPosition = pos.x - nipple.position.x\n var yPosition = pos.y - nipple.position.y\n\n if (opts.lockX){\n yPosition = 0\n }\n if (opts.lockY) {\n xPosition = 0\n }\n\n nipple.frontPosition = {\n x: xPosition,\n y: yPosition\n };\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n\n // Prepare event's datas.\n var toSend = {\n identifier: nipple.identifier,\n position: pos,\n force: force,\n pressure: evt.force || evt.pressure || evt.webkitForce || 0,\n distance: dist,\n angle: {\n radian: rAngle,\n degree: angle\n },\n instance: nipple,\n lockX: opts.lockX,\n lockY: opts.lockY\n };\n\n // Compute the direction's datas.\n toSend = nipple.computeDirection(toSend);\n\n // Offset angles to follow units circle.\n toSend.angle = {\n radian: u.radians(180 - angle),\n degree: 180 - angle\n };\n\n // Send everything to everyone.\n nipple.trigger('move', toSend);\n self.trigger('move ' + nipple.id + ':move', toSend);\n};\n\nCollection.prototype.processOnEnd = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n var removedIdentifier = self.manager.removeIdentifier(nipple.identifier);\n\n if (!nipple) {\n return;\n }\n\n if (!opts.dataOnly) {\n nipple.hide(function () {\n if (opts.mode === 'dynamic') {\n nipple.trigger('removed', nipple);\n self.trigger('removed ' + nipple.id + ':removed', nipple);\n self.manager\n .trigger('removed ' + nipple.id + ':removed', nipple);\n nipple.destroy();\n }\n });\n }\n\n // Clear the pressure interval reader\n clearInterval(self.pressureIntervals[nipple.identifier]);\n\n // Reset the direciton of the nipple, to be able to trigger a new direction\n // on start.\n nipple.resetDirection();\n\n nipple.trigger('end', nipple);\n self.trigger('end ' + nipple.id + ':end', nipple);\n\n // Remove identifier from our bank.\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Clean our actives array.\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n\n if (/(semi|static)/.test(opts.mode)) {\n // Transfer nipple from actives to idles\n // if we're in semi or static mode.\n self.idles.push(nipple);\n } else if (self.nipples.indexOf(nipple) >= 0) {\n // Only if we're not in semi or static mode\n // we can remove the instance.\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n\n // We unbind move and end.\n self.manager.unbindDocument();\n\n // We add back the identifier of the idle nipple;\n if (/(semi|static)/.test(opts.mode)) {\n self.manager.ids[removedIdentifier.id] = removedIdentifier.identifier;\n }\n};\n\n// Remove destroyed nipple from the lists\nCollection.prototype.onDestroyed = function(evt, nipple) {\n var self = this;\n if (self.nipples.indexOf(nipple) >= 0) {\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n if (self.idles.indexOf(nipple) >= 0) {\n self.idles.splice(self.idles.indexOf(nipple), 1);\n }\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Remove the identifier from our bank\n self.manager.removeIdentifier(nipple.identifier);\n\n // We unbind move and end.\n self.manager.unbindDocument();\n};\n\n// Cleanly destroy the manager\nCollection.prototype.destroy = function () {\n var self = this;\n self.unbindEvt(self.options.zone, 'start');\n\n // Destroy nipples.\n self.nipples.forEach(function(nipple) {\n nipple.destroy();\n });\n\n // Clean 3DTouch intervals.\n for (var i in self.pressureIntervals) {\n if (self.pressureIntervals.hasOwnProperty(i)) {\n clearInterval(self.pressureIntervals[i]);\n }\n }\n\n // Notify the manager passing the instance\n self.trigger('destroyed', self.nipples);\n // We unbind move and end.\n self.manager.unbindDocument();\n // Unbind everything.\n self.off();\n};\n\n/* global u, Super, Collection */\n\n///////////////////////\n/// MANAGER ///\n///////////////////////\n\nfunction Manager (options) {\n var self = this;\n self.ids = {};\n self.index = 0;\n self.collections = [];\n\n self.config(options);\n self.prepareCollections();\n\n // Listen for resize, to reposition every joysticks\n var resizeTimer;\n u.bindEvt(window, 'resize', function (evt) {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(function () {\n var pos;\n var scroll = u.getScroll();\n self.collections.forEach(function (collection) {\n collection.forEach(function (nipple) {\n pos = nipple.el.getBoundingClientRect();\n nipple.position = {\n x: scroll.x + pos.left,\n y: scroll.y + pos.top\n };\n });\n });\n }, 100);\n });\n\n return self.collections;\n};\n\nManager.prototype = new Super();\nManager.constructor = Manager;\n\nManager.prototype.prepareCollections = function () {\n var self = this;\n // Public API Preparation.\n self.collections.create = self.create.bind(self);\n // Listen to anything\n self.collections.on = self.on.bind(self);\n // Unbind general events\n self.collections.off = self.off.bind(self);\n // Destroy everything\n self.collections.destroy = self.destroy.bind(self);\n // Get any nipple\n self.collections.get = function (id) {\n var nipple;\n self.collections.every(function (collection) {\n if (nipple = collection.get(id)) {\n return false;\n }\n return true;\n });\n return nipple;\n };\n};\n\nManager.prototype.create = function (options) {\n return this.createCollection(options);\n};\n\n// Collection Factory\nManager.prototype.createCollection = function (options) {\n var self = this;\n var collection = new Collection(self, options);\n\n self.bindCollection(collection);\n self.collections.push(collection);\n\n return collection;\n};\n\nManager.prototype.bindCollection = function (collection) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's identifier.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed we clean.\n collection.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n collection.on('shown hidden rested dir plain', handler);\n collection.on('dir:up dir:right dir:down dir:left', handler);\n collection.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nManager.prototype.bindDocument = function () {\n var self = this;\n // Bind only if not already binded\n if (!self.binded) {\n self.bindEvt(document, 'move')\n .bindEvt(document, 'end');\n self.binded = true;\n }\n};\n\nManager.prototype.unbindDocument = function (force) {\n var self = this;\n // If there are no touch left\n // unbind the document.\n if (!Object.keys(self.ids).length || force === true) {\n self.unbindEvt(document, 'move')\n .unbindEvt(document, 'end');\n self.binded = false;\n }\n};\n\nManager.prototype.getIdentifier = function (evt) {\n var id;\n // If no event, simple increment\n if (!evt) {\n id = this.index;\n } else {\n // Extract identifier from event object.\n // Unavailable in mouse events so replaced by latest increment.\n id = evt.identifier === undefined ? evt.pointerId : evt.identifier;\n if (id === undefined) {\n id = this.latest || 0;\n }\n }\n\n if (this.ids[id] === undefined) {\n this.ids[id] = this.index;\n this.index += 1;\n }\n\n // Keep the latest id used in case we're using an unidentified mouseEvent\n this.latest = id;\n return this.ids[id];\n};\n\nManager.prototype.removeIdentifier = function (identifier) {\n var removed = {};\n for (var id in this.ids) {\n if (this.ids[id] === identifier) {\n removed.id = id;\n removed.identifier = this.ids[id];\n delete this.ids[id];\n break;\n }\n }\n return removed;\n};\n\nManager.prototype.onmove = function (evt) {\n var self = this;\n self.onAny('move', evt);\n return false;\n};\n\nManager.prototype.onend = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.oncancel = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.onAny = function (which, evt) {\n var self = this;\n var id;\n var processFn = 'processOn' + which.charAt(0).toUpperCase() +\n which.slice(1);\n evt = u.prepareEvent(evt);\n var processColl = function (e, id, coll) {\n if (coll.ids.indexOf(id) >= 0) {\n coll[processFn](e);\n // Mark the event to avoid cleaning it later.\n e._found_ = true;\n }\n };\n var processEvt = function (e) {\n id = self.getIdentifier(e);\n u.map(self.collections, processColl.bind(null, e, id));\n // If the event isn't handled by any collection,\n // we need to clean its identifier.\n if (!e._found_) {\n self.removeIdentifier(id);\n }\n };\n\n u.map(evt, processEvt);\n\n return false;\n};\n\n// Cleanly destroy the manager\nManager.prototype.destroy = function () {\n var self = this;\n self.unbindDocument(true);\n self.ids = {};\n self.index = 0;\n self.collections.forEach(function(collection) {\n collection.destroy();\n });\n self.off();\n};\n\n// When a collection gets destroyed\n// we clean behind.\nManager.prototype.onDestroyed = function (evt, coll) {\n var self = this;\n if (self.collections.indexOf(coll) < 0) {\n return false;\n }\n self.collections.splice(self.collections.indexOf(coll), 1);\n};\n\nvar factory = new Manager();\nreturn {\n create: function (options) {\n return factory.create(options);\n },\n factory: factory\n};\n\n});\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","/**\r\n * Returns the object type of the given payload\r\n *\r\n * @param {*} payload\r\n * @returns {string}\r\n */\r\nfunction getType(payload) {\r\n return Object.prototype.toString.call(payload).slice(8, -1);\r\n}\r\n/**\r\n * Returns whether the payload is undefined\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isUndefined(payload) {\r\n return getType(payload) === 'Undefined';\r\n}\r\n/**\r\n * Returns whether the payload is null\r\n *\r\n * @param {*} payload\r\n * @returns {payload is null}\r\n */\r\nfunction isNull(payload) {\r\n return getType(payload) === 'Null';\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isPlainObject(payload) {\r\n if (getType(payload) !== 'Object')\r\n return false;\r\n return (payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype);\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isObject(payload) {\r\n return isPlainObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isAnyObject(payload) {\r\n return getType(payload) === 'Object';\r\n}\r\n/**\r\n * Returns whether the payload is an object like a type passed in < >\r\n *\r\n * Usage: isObjectLike<{id: any}>(payload) // will make sure it's an object and has an `id` prop.\r\n *\r\n * @template T this must be passed in < >\r\n * @param {*} payload\r\n * @returns {payload is T}\r\n */\r\nfunction isObjectLike(payload) {\r\n return isAnyObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a function\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Function}\r\n */\r\nfunction isFunction(payload) {\r\n return getType(payload) === 'Function';\r\n}\r\n/**\r\n * Returns whether the payload is an array\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isArray(payload) {\r\n return getType(payload) === 'Array';\r\n}\r\n/**\r\n * Returns whether the payload is a string\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isString(payload) {\r\n return getType(payload) === 'String';\r\n}\r\n/**\r\n * Returns whether the payload is a string, BUT returns false for ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isFullString(payload) {\r\n return isString(payload) && payload !== '';\r\n}\r\n/**\r\n * Returns whether the payload is ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isEmptyString(payload) {\r\n return payload === '';\r\n}\r\n/**\r\n * Returns whether the payload is a number\r\n *\r\n * This will return false for NaN\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\r\nfunction isNumber(payload) {\r\n return (getType(payload) === 'Number' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a boolean\r\n *\r\n * @param {*} payload\r\n * @returns {payload is boolean}\r\n */\r\nfunction isBoolean(payload) {\r\n return getType(payload) === 'Boolean';\r\n}\r\n/**\r\n * Returns whether the payload is a regular expression\r\n *\r\n * @param {*} payload\r\n * @returns {payload is RegExp}\r\n */\r\nfunction isRegExp(payload) {\r\n return getType(payload) === 'RegExp';\r\n}\r\n/**\r\n * Returns whether the payload is a date, and that the date is Valid\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Date}\r\n */\r\nfunction isDate(payload) {\r\n return (getType(payload) === 'Date' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a Symbol\r\n *\r\n * @param {*} payload\r\n * @returns {payload is symbol}\r\n */\r\nfunction isSymbol(payload) {\r\n return (getType(payload) === 'Symbol');\r\n}\r\n/**\r\n * Returns whether the payload is a primitive type (eg. Boolean | Null | Undefined | Number | String | Symbol)\r\n *\r\n * @param {*} payload\r\n * @returns {(payload is boolean | null | undefined | number | string | symbol)}\r\n */\r\nfunction isPrimitive(payload) {\r\n return (isBoolean(payload) ||\r\n isNull(payload) ||\r\n isUndefined(payload) ||\r\n isNumber(payload) ||\r\n isString(payload) ||\r\n isSymbol(payload));\r\n}\r\n/**\r\n * Does a generic check to check that the given payload is of a given type.\r\n * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!);\r\n * It will, however, differentiate between object and null\r\n *\r\n * @template T\r\n * @param {*} payload\r\n * @param {T} type\r\n * @throws {TypeError} Will throw type error if type is an invalid type\r\n * @returns {payload is T}\r\n */\r\nfunction isType(payload, type) {\r\n if (!(type instanceof Function)) {\r\n throw new TypeError('Type must be a function');\r\n }\r\n if (!type.hasOwnProperty('prototype')) {\r\n throw new TypeError('Type is not a class');\r\n }\r\n // Classes usually have names (as functions usually have names)\r\n var name = type.name;\r\n return (getType(payload) === name) || Boolean(payload && (payload.constructor === type));\r\n}\n\nexport { getType, isUndefined, isNull, isPlainObject, isObject, isAnyObject, isObjectLike, isFunction, isArray, isString, isFullString, isEmptyString, isNumber, isBoolean, isRegExp, isDate, isSymbol, isPrimitive, isType };\n","import { isArray, isPlainObject, isSymbol } from 'is-what';\n\nfunction assignProp(carry, key, newVal, originalObject) {\r\n var propType = originalObject.propertyIsEnumerable(key)\r\n ? 'enumerable'\r\n : 'nonenumerable';\r\n if (propType === 'enumerable')\r\n carry[key] = newVal;\r\n if (propType === 'nonenumerable') {\r\n Object.defineProperty(carry, key, {\r\n value: newVal,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n });\r\n }\r\n}\r\nfunction mergeRecursively(origin, newComer, extensions) {\r\n // work directly on newComer if its not an object\r\n if (!isPlainObject(newComer)) {\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newComer = extend(origin, newComer);\r\n });\r\n }\r\n return newComer;\r\n }\r\n // define newObject to merge all values upon\r\n var newObject = {};\r\n if (isPlainObject(origin)) {\r\n var props_1 = Object.getOwnPropertyNames(origin);\r\n var symbols_1 = Object.getOwnPropertySymbols(origin);\r\n newObject = props_1.concat(symbols_1).reduce(function (carry, key) {\r\n // @ts-ignore\r\n var targetVal = origin[key];\r\n if ((!isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key)) ||\r\n (isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key))) {\r\n assignProp(carry, key, targetVal, origin);\r\n }\r\n return carry;\r\n }, {});\r\n }\r\n var props = Object.getOwnPropertyNames(newComer);\r\n var symbols = Object.getOwnPropertySymbols(newComer);\r\n var result = props.concat(symbols).reduce(function (carry, key) {\r\n // re-define the origin and newComer as targetVal and newVal\r\n var newVal = newComer[key];\r\n var targetVal = (isPlainObject(origin))\r\n // @ts-ignore\r\n ? origin[key]\r\n : undefined;\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newVal = extend(targetVal, newVal);\r\n });\r\n }\r\n // When newVal is an object do the merge recursively\r\n if (targetVal !== undefined && isPlainObject(newVal)) {\r\n newVal = mergeRecursively(targetVal, newVal, extensions);\r\n }\r\n assignProp(carry, key, newVal, newComer);\r\n return carry;\r\n }, newObject);\r\n return result;\r\n}\r\n/**\r\n * Merge anything recursively.\r\n * Objects get merged, special objects (classes etc.) are re-assigned \"as is\".\r\n * Basic types overwrite objects or other basic types.\r\n *\r\n * @param {(IConfig | any)} origin\r\n * @param {...any[]} newComers\r\n * @returns the result\r\n */\r\nfunction merge(origin) {\r\n var newComers = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n newComers[_i - 1] = arguments[_i];\r\n }\r\n var extensions = null;\r\n var base = origin;\r\n if (isPlainObject(origin) && origin.extensions && Object.keys(origin).length === 1) {\r\n base = {};\r\n extensions = origin.extensions;\r\n }\r\n return newComers.reduce(function (result, newComer) {\r\n return mergeRecursively(result, newComer, extensions);\r\n }, base);\r\n}\n\nfunction concatArrays(originVal, newVal) {\r\n if (isArray(originVal) && isArray(newVal)) {\r\n // concat logic\r\n return originVal.concat(newVal);\r\n }\r\n return newVal; // always return newVal as fallback!!\r\n}\n\nexport default merge;\nexport { merge, concatArrays };\n","/** @license React v16.8.6\n * react-is.production.min.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'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (colorNames.hasOwnProperty(name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar keyword = /(\\D+)/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\n\t\tif (!rgb) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = (parseFloat(match[1]) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = num.toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function () { /* empty */ };\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","/**\n * @ignore\n * event object for dom\n * @author yiminghe@gmail.com\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventBaseObject = require('./EventBaseObject');\n\nvar _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar TRUE = true;\nvar FALSE = false;\nvar commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];\n\nfunction isNullOrUndefined(w) {\n return w === null || w === undefined;\n}\n\nvar eventNormalizers = [{\n reg: /^key/,\n props: ['char', 'charCode', 'key', 'keyCode', 'which'],\n fix: function fix(event, nativeEvent) {\n if (isNullOrUndefined(event.which)) {\n event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;\n }\n\n // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)\n if (event.metaKey === undefined) {\n event.metaKey = event.ctrlKey;\n }\n }\n}, {\n reg: /^touch/,\n props: ['touches', 'changedTouches', 'targetTouches']\n}, {\n reg: /^hashchange$/,\n props: ['newURL', 'oldURL']\n}, {\n reg: /^gesturechange$/i,\n props: ['rotation', 'scale']\n}, {\n reg: /^(mousewheel|DOMMouseScroll)$/,\n props: [],\n fix: function fix(event, nativeEvent) {\n var deltaX = undefined;\n var deltaY = undefined;\n var delta = undefined;\n var wheelDelta = nativeEvent.wheelDelta;\n var axis = nativeEvent.axis;\n var wheelDeltaY = nativeEvent.wheelDeltaY;\n var wheelDeltaX = nativeEvent.wheelDeltaX;\n var detail = nativeEvent.detail;\n\n // ie/webkit\n if (wheelDelta) {\n delta = wheelDelta / 120;\n }\n\n // gecko\n if (detail) {\n // press control e.detail == 1 else e.detail == 3\n delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);\n }\n\n // Gecko\n if (axis !== undefined) {\n if (axis === event.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = 0 - delta;\n } else if (axis === event.VERTICAL_AXIS) {\n deltaX = 0;\n deltaY = delta;\n }\n }\n\n // Webkit\n if (wheelDeltaY !== undefined) {\n deltaY = wheelDeltaY / 120;\n }\n if (wheelDeltaX !== undefined) {\n deltaX = -1 * wheelDeltaX / 120;\n }\n\n // 默认 deltaY (ie)\n if (!deltaX && !deltaY) {\n deltaY = delta;\n }\n\n if (deltaX !== undefined) {\n /**\n * deltaX of mousewheel event\n * @property deltaX\n * @member Event.DomEvent.Object\n */\n event.deltaX = deltaX;\n }\n\n if (deltaY !== undefined) {\n /**\n * deltaY of mousewheel event\n * @property deltaY\n * @member Event.DomEvent.Object\n */\n event.deltaY = deltaY;\n }\n\n if (delta !== undefined) {\n /**\n * delta of mousewheel event\n * @property delta\n * @member Event.DomEvent.Object\n */\n event.delta = delta;\n }\n }\n}, {\n reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,\n props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],\n fix: function fix(event, nativeEvent) {\n var eventDoc = undefined;\n var doc = undefined;\n var body = undefined;\n var target = event.target;\n var button = nativeEvent.button;\n\n // Calculate pageX/Y if missing and clientX/Y available\n if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {\n eventDoc = target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // which for click: 1 === left; 2 === middle; 3 === right\n // do not use button\n if (!event.which && button !== undefined) {\n if (button & 1) {\n event.which = 1;\n } else if (button & 2) {\n event.which = 3;\n } else if (button & 4) {\n event.which = 2;\n } else {\n event.which = 0;\n }\n }\n\n // add relatedTarget, if necessary\n if (!event.relatedTarget && event.fromElement) {\n event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;\n }\n\n return event;\n }\n}];\n\nfunction retTrue() {\n return TRUE;\n}\n\nfunction retFalse() {\n return FALSE;\n}\n\nfunction DomEventObject(nativeEvent) {\n var type = nativeEvent.type;\n\n var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';\n\n _EventBaseObject2['default'].call(this);\n\n this.nativeEvent = nativeEvent;\n\n // in case dom event has been mark as default prevented by lower dom node\n var isDefaultPrevented = retFalse;\n if ('defaultPrevented' in nativeEvent) {\n isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;\n } else if ('getPreventDefault' in nativeEvent) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=691151\n isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;\n } else if ('returnValue' in nativeEvent) {\n isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;\n }\n\n this.isDefaultPrevented = isDefaultPrevented;\n\n var fixFns = [];\n var fixFn = undefined;\n var l = undefined;\n var prop = undefined;\n var props = commonProps.concat();\n\n eventNormalizers.forEach(function (normalizer) {\n if (type.match(normalizer.reg)) {\n props = props.concat(normalizer.props);\n if (normalizer.fix) {\n fixFns.push(normalizer.fix);\n }\n }\n });\n\n l = props.length;\n\n // clone properties of the original event object\n while (l) {\n prop = props[--l];\n this[prop] = nativeEvent[prop];\n }\n\n // fix target property, if necessary\n if (!this.target && isNative) {\n this.target = nativeEvent.srcElement || document; // srcElement might not be defined either\n }\n\n // check if target is a text node (safari)\n if (this.target && this.target.nodeType === 3) {\n this.target = this.target.parentNode;\n }\n\n l = fixFns.length;\n\n while (l) {\n fixFn = fixFns[--l];\n fixFn(this, nativeEvent);\n }\n\n this.timeStamp = nativeEvent.timeStamp || Date.now();\n}\n\nvar EventBaseObjectProto = _EventBaseObject2['default'].prototype;\n\n(0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {\n constructor: DomEventObject,\n\n preventDefault: function preventDefault() {\n var e = this.nativeEvent;\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n // otherwise set the returnValue property of the original event to FALSE (IE)\n e.returnValue = FALSE;\n }\n\n EventBaseObjectProto.preventDefault.call(this);\n },\n\n stopPropagation: function stopPropagation() {\n var e = this.nativeEvent;\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n } else {\n // otherwise set the cancelBubble property of the original event to TRUE (IE)\n e.cancelBubble = TRUE;\n }\n\n EventBaseObjectProto.stopPropagation.call(this);\n }\n});\n\nexports['default'] = DomEventObject;\nmodule.exports = exports['default'];","/**\n * @ignore\n * base event object for custom and dom event.\n * @author yiminghe@gmail.com\n */\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction returnFalse() {\n return false;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction EventBaseObject() {\n this.timeStamp = Date.now();\n this.target = undefined;\n this.currentTarget = undefined;\n}\n\nEventBaseObject.prototype = {\n isEventObject: 1,\n\n constructor: EventBaseObject,\n\n isDefaultPrevented: returnFalse,\n\n isPropagationStopped: returnFalse,\n\n isImmediatePropagationStopped: returnFalse,\n\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n },\n\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n },\n\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n // fixed 1.2\n // call stopPropagation implicitly\n this.stopPropagation();\n },\n\n halt: function halt(immediate) {\n if (immediate) {\n this.stopImmediatePropagation();\n } else {\n this.stopPropagation();\n }\n this.preventDefault();\n }\n};\n\nexports[\"default\"] = EventBaseObject;\nmodule.exports = exports[\"default\"];","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\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","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n","var api = require(\"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../css-loader/dist/cjs.js!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function insertAtTop(element) {\n\t\t\t\t document.head.insertBefore(element, document.head.firstElementChild);\n\t\t\t\t};\noptions.singleton = false;\n\nvar update = api(content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;","\"use strict\";\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 = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\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 && btoa) {\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 ';\n };\n};\n\n/* takes a css factory function and outputs an element factory */\nvar wrapAsElement = function wrapAsElement(css, names) {\n return function () {\n var _props;\n\n var props = (_props = {}, _props[SC_ATTR] = stringifyNames(names), _props[SC_VERSION_ATTR] = \"4.4.0\", _props);\n\n var nonce = getNonce();\n if (nonce) {\n // $FlowFixMe\n props.nonce = nonce;\n }\n\n // eslint-disable-next-line react/no-danger\n return React.createElement('style', _extends({}, props, { dangerouslySetInnerHTML: { __html: css() } }));\n };\n};\n\nvar getIdsFromMarkersFactory = function getIdsFromMarkersFactory(markers) {\n return function () {\n return Object.keys(markers);\n };\n};\n\n/* speedy tags utilise insertRule */\nvar makeSpeedyTag = function makeSpeedyTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var sizes = [];\n\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = sizes.length;\n sizes.push(0);\n resetIdNames(names, id);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var sheet = sheetForTag(el);\n var insertIndex = addUpUntilIndex(sizes, marker);\n\n var injectedRules = 0;\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = cssRules[i];\n var mayHaveImport = extractImport; /* @import rules are reordered to appear first */\n if (mayHaveImport && cssRule.indexOf('@import') !== -1) {\n importRules.push(cssRule);\n } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n mayHaveImport = false;\n injectedRules += 1;\n }\n }\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n\n sizes[marker] += injectedRules; /* add up no of injected rules */\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n // $FlowFixMe\n if (el.isConnected === false) return;\n\n var size = sizes[marker];\n var sheet = sheetForTag(el);\n var removalIndex = addUpUntilIndex(sizes, marker) - 1;\n deleteRules(sheet, removalIndex, size);\n sizes[marker] = 0;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var _sheetForTag = sheetForTag(el),\n cssRules = _sheetForTag.cssRules;\n\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += makeTextMarker(id);\n var marker = markers[id];\n var end = addUpUntilIndex(sizes, marker);\n var size = sizes[marker];\n for (var i = end - size; i < end; i += 1) {\n var rule = cssRules[i];\n if (rule !== undefined) {\n str += rule.cssText;\n }\n }\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeTextNode = function makeTextNode(targetDocument, id) {\n return targetDocument.createTextNode(makeTextMarker(id));\n};\n\nvar makeBrowserTag = function makeBrowserTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n\n var extractImport = getImportRuleTag !== undefined;\n\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = makeTextNode(el.ownerDocument, id);\n el.appendChild(markers[id]);\n names[id] = Object.create(null);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var rule = cssRules[i];\n var mayHaveImport = extractImport;\n if (mayHaveImport && rule.indexOf('@import') !== -1) {\n importRules.push(rule);\n } else {\n mayHaveImport = false;\n var separator = i === cssRulesSize - 1 ? '' : ' ';\n marker.appendData('' + rule + separator);\n }\n }\n\n addNameForId(names, id, name);\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n\n /* create new empty text node and replace the current one */\n var newMarker = makeTextNode(el.ownerDocument, id);\n el.replaceChild(newMarker, marker);\n markers[id] = newMarker;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += markers[id].data;\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeServerTag = function makeServerTag(namesArg, markersArg) {\n var names = namesArg === undefined ? Object.create(null) : namesArg;\n var markers = markersArg === undefined ? Object.create(null) : markersArg;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n return markers[id] = [''];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n marker[0] += cssRules.join(' ');\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n marker[0] = '';\n resetIdNames(names, id);\n };\n\n var css = function css() {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n var cssForId = markers[id][0];\n if (cssForId) {\n str += makeTextMarker(id) + cssForId;\n }\n }\n return str;\n };\n\n var clone = function clone() {\n var namesClone = cloneNames(names);\n var markersClone = Object.create(null);\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n markersClone[id] = [markers[id][0]];\n }\n\n return makeServerTag(namesClone, markersClone);\n };\n\n var tag = {\n clone: clone,\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: null,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n\n return tag;\n};\n\nvar makeTag = function makeTag(target, tagEl, forceServer, insertBefore, getImportRuleTag) {\n if (IS_BROWSER && !forceServer) {\n var el = makeStyleTag(target, tagEl, insertBefore);\n\n if (DISABLE_SPEEDY) {\n return makeBrowserTag(el, getImportRuleTag);\n } else {\n return makeSpeedyTag(el, getImportRuleTag);\n }\n }\n\n return makeServerTag();\n};\n\nvar rehydrate = function rehydrate(tag, els, extracted) {\n /* add all extracted components to the new tag */\n for (var i = 0, len = extracted.length; i < len; i += 1) {\n var _extracted$i = extracted[i],\n componentId = _extracted$i.componentId,\n cssFromDOM = _extracted$i.cssFromDOM;\n\n var cssRules = splitByRules(cssFromDOM);\n tag.insertRules(componentId, cssRules);\n }\n\n /* remove old HTMLStyleElements, since they have been rehydrated */\n for (var _i = 0, _len = els.length; _i < _len; _i += 1) {\n var el = els[_i];\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n};\n\n// \n\nvar SPLIT_REGEX = /\\s+/;\n\n/* determine the maximum number of components before tags are sharded */\nvar MAX_SIZE = void 0;\nif (IS_BROWSER) {\n /* in speedy mode we can keep a lot more rules in a sheet before a slowdown can be expected */\n MAX_SIZE = DISABLE_SPEEDY ? 40 : 1000;\n} else {\n /* for servers we do not need to shard at all */\n MAX_SIZE = -1;\n}\n\nvar sheetRunningId = 0;\nvar master = void 0;\n\nvar StyleSheet = function () {\n\n /* a map from ids to tags */\n\n /* deferred rules for a given id */\n\n /* this is used for not reinjecting rules via hasNameForId() */\n\n /* when rules for an id are removed using remove() we have to ignore rehydratedNames for it */\n\n /* a list of tags belonging to this StyleSheet */\n\n /* a tag for import rules */\n\n /* current capacity until a new tag must be created */\n\n /* children (aka clones) of this StyleSheet inheriting all and future injections */\n\n function StyleSheet() {\n var _this = this;\n\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : IS_BROWSER ? document.head : null;\n var forceServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n classCallCheck(this, StyleSheet);\n\n this.getImportRuleTag = function () {\n var importRuleTag = _this.importRuleTag;\n\n if (importRuleTag !== undefined) {\n return importRuleTag;\n }\n\n var firstTag = _this.tags[0];\n var insertBefore = true;\n\n return _this.importRuleTag = makeTag(_this.target, firstTag ? firstTag.styleTag : null, _this.forceServer, insertBefore);\n };\n\n sheetRunningId += 1;\n this.id = sheetRunningId;\n this.forceServer = forceServer;\n this.target = forceServer ? null : target;\n this.tagMap = {};\n this.deferred = {};\n this.rehydratedNames = {};\n this.ignoreRehydratedNames = {};\n this.tags = [];\n this.capacity = 1;\n this.clones = [];\n }\n\n /* rehydrate all SSR'd style tags */\n\n\n StyleSheet.prototype.rehydrate = function rehydrate$$1() {\n if (!IS_BROWSER || this.forceServer) return this;\n\n var els = [];\n var extracted = [];\n var isStreamed = false;\n\n /* retrieve all of our SSR style elements from the DOM */\n var nodes = document.querySelectorAll('style[' + SC_ATTR + '][' + SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"]');\n\n var nodesSize = nodes.length;\n\n /* abort rehydration if no previous style tags were found */\n if (!nodesSize) return this;\n\n for (var i = 0; i < nodesSize; i += 1) {\n var el = nodes[i];\n\n /* check if style tag is a streamed tag */\n if (!isStreamed) isStreamed = !!el.getAttribute(SC_STREAM_ATTR);\n\n /* retrieve all component names */\n var elNames = (el.getAttribute(SC_ATTR) || '').trim().split(SPLIT_REGEX);\n var elNamesSize = elNames.length;\n for (var j = 0, name; j < elNamesSize; j += 1) {\n name = elNames[j];\n /* add rehydrated name to sheet to avoid re-adding styles */\n this.rehydratedNames[name] = true;\n }\n\n /* extract all components and their CSS */\n extracted.push.apply(extracted, extractComps(el.textContent));\n\n /* store original HTMLStyleElement */\n els.push(el);\n }\n\n /* abort rehydration if nothing was extracted */\n var extractedSize = extracted.length;\n if (!extractedSize) return this;\n\n /* create a tag to be used for rehydration */\n var tag = this.makeTag(null);\n\n rehydrate(tag, els, extracted);\n\n /* reset capacity and adjust MAX_SIZE by the initial size of the rehydration */\n this.capacity = Math.max(1, MAX_SIZE - extractedSize);\n this.tags.push(tag);\n\n /* retrieve all component ids */\n for (var _j = 0; _j < extractedSize; _j += 1) {\n this.tagMap[extracted[_j].componentId] = tag;\n }\n\n return this;\n };\n\n /* retrieve a \"master\" instance of StyleSheet which is typically used when no other is available\n * The master StyleSheet is targeted by createGlobalStyle, keyframes, and components outside of any\n * StyleSheetManager's context */\n\n\n /* reset the internal \"master\" instance */\n StyleSheet.reset = function reset() {\n var forceServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n master = new StyleSheet(undefined, forceServer).rehydrate();\n };\n\n /* adds \"children\" to the StyleSheet that inherit all of the parents' rules\n * while their own rules do not affect the parent */\n\n\n StyleSheet.prototype.clone = function clone() {\n var sheet = new StyleSheet(this.target, this.forceServer);\n\n /* add to clone array */\n this.clones.push(sheet);\n\n /* clone all tags */\n sheet.tags = this.tags.map(function (tag) {\n var ids = tag.getIds();\n var newTag = tag.clone();\n\n /* reconstruct tagMap */\n for (var i = 0; i < ids.length; i += 1) {\n sheet.tagMap[ids[i]] = newTag;\n }\n\n return newTag;\n });\n\n /* clone other maps */\n sheet.rehydratedNames = _extends({}, this.rehydratedNames);\n sheet.deferred = _extends({}, this.deferred);\n\n return sheet;\n };\n\n /* force StyleSheet to create a new tag on the next injection */\n\n\n StyleSheet.prototype.sealAllTags = function sealAllTags() {\n this.capacity = 1;\n\n this.tags.forEach(function (tag) {\n // eslint-disable-next-line no-param-reassign\n tag.sealed = true;\n });\n };\n\n StyleSheet.prototype.makeTag = function makeTag$$1(tag) {\n var lastEl = tag ? tag.styleTag : null;\n var insertBefore = false;\n\n return makeTag(this.target, lastEl, this.forceServer, insertBefore, this.getImportRuleTag);\n };\n\n /* get a tag for a given componentId, assign the componentId to one, or shard */\n StyleSheet.prototype.getTagForId = function getTagForId(id) {\n /* simply return a tag, when the componentId was already assigned one */\n var prev = this.tagMap[id];\n if (prev !== undefined && !prev.sealed) {\n return prev;\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n /* shard (create a new tag) if the tag is exhausted (See MAX_SIZE) */\n this.capacity -= 1;\n\n if (this.capacity === 0) {\n this.capacity = MAX_SIZE;\n tag = this.makeTag(tag);\n this.tags.push(tag);\n }\n\n return this.tagMap[id] = tag;\n };\n\n /* mainly for createGlobalStyle to check for its id */\n\n\n StyleSheet.prototype.hasId = function hasId(id) {\n return this.tagMap[id] !== undefined;\n };\n\n /* caching layer checking id+name to already have a corresponding tag and injected rules */\n\n\n StyleSheet.prototype.hasNameForId = function hasNameForId(id, name) {\n /* exception for rehydrated names which are checked separately */\n if (this.ignoreRehydratedNames[id] === undefined && this.rehydratedNames[name]) {\n return true;\n }\n\n var tag = this.tagMap[id];\n return tag !== undefined && tag.hasNameForId(id, name);\n };\n\n /* registers a componentId and registers it on its tag */\n\n\n StyleSheet.prototype.deferredInject = function deferredInject(id, cssRules) {\n /* don't inject when the id is already registered */\n if (this.tagMap[id] !== undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].deferredInject(id, cssRules);\n }\n\n this.getTagForId(id).insertMarker(id);\n this.deferred[id] = cssRules;\n };\n\n /* injects rules for a given id with a name that will need to be cached */\n\n\n StyleSheet.prototype.inject = function inject(id, cssRules, name) {\n var clones = this.clones;\n\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].inject(id, cssRules, name);\n }\n\n var tag = this.getTagForId(id);\n\n /* add deferred rules for component */\n if (this.deferred[id] !== undefined) {\n // Combine passed cssRules with previously deferred CSS rules\n // NOTE: We cannot mutate the deferred array itself as all clones\n // do the same (see clones[i].inject)\n var rules = this.deferred[id].concat(cssRules);\n tag.insertRules(id, rules, name);\n\n this.deferred[id] = undefined;\n } else {\n tag.insertRules(id, cssRules, name);\n }\n };\n\n /* removes all rules for a given id, which doesn't remove its marker but resets it */\n\n\n StyleSheet.prototype.remove = function remove(id) {\n var tag = this.tagMap[id];\n if (tag === undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].remove(id);\n }\n\n /* remove all rules from the tag */\n tag.removeRules(id);\n\n /* ignore possible rehydrated names */\n this.ignoreRehydratedNames[id] = true;\n\n /* delete possible deferred rules */\n this.deferred[id] = undefined;\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n var id = this.id;\n\n\n return this.tags.map(function (tag, i) {\n var key = 'sc-' + id + '-' + i;\n return cloneElement(tag.toElement(), { key: key });\n });\n };\n\n createClass(StyleSheet, null, [{\n key: 'master',\n get: function get$$1() {\n return master || (master = new StyleSheet().rehydrate());\n }\n\n /* NOTE: This is just for backwards-compatibility with jest-styled-components */\n\n }, {\n key: 'instance',\n get: function get$$1() {\n return StyleSheet.master;\n }\n }]);\n return StyleSheet;\n}();\n\n// \n\nvar Keyframes = function () {\n function Keyframes(name, rules) {\n var _this = this;\n\n classCallCheck(this, Keyframes);\n\n this.inject = function (styleSheet) {\n if (!styleSheet.hasNameForId(_this.id, _this.name)) {\n styleSheet.inject(_this.id, _this.rules, _this.name);\n }\n };\n\n this.toString = function () {\n throw new StyledComponentsError(12, String(_this.name));\n };\n\n this.name = name;\n this.rules = rules;\n\n this.id = 'sc-keyframes-' + name;\n }\n\n Keyframes.prototype.getName = function getName() {\n return this.name;\n };\n\n return Keyframes;\n}();\n\n// \n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\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 * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return string.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\n// \n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nfunction addUnitIfNeeded(name, value) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n}\n\n// \n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nvar isFalsish = function isFalsish(chunk) {\n return chunk === undefined || chunk === null || chunk === false || chunk === '';\n};\n\nvar objToCssArray = function objToCssArray(obj, prevKey) {\n var rules = [];\n var keys = Object.keys(obj);\n\n keys.forEach(function (key) {\n if (!isFalsish(obj[key])) {\n if (isPlainObject(obj[key])) {\n rules.push.apply(rules, objToCssArray(obj[key], key));\n\n return rules;\n } else if (isFunction(obj[key])) {\n rules.push(hyphenateStyleName(key) + ':', obj[key], ';');\n\n return rules;\n }\n rules.push(hyphenateStyleName(key) + ': ' + addUnitIfNeeded(key, obj[key]) + ';');\n }\n return rules;\n });\n\n return prevKey ? [prevKey + ' {'].concat(rules, ['}']) : rules;\n};\n\nfunction flatten(chunk, executionContext, styleSheet) {\n if (Array.isArray(chunk)) {\n var ruleSet = [];\n\n for (var i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet);\n\n if (result === null) continue;else if (Array.isArray(result)) ruleSet.push.apply(ruleSet, result);else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return null;\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return '.' + chunk.styledComponentId;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n var _result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(_result)) {\n // eslint-disable-next-line no-console\n console.warn(getComponentName(chunk) + ' is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.');\n }\n\n return flatten(_result, executionContext, styleSheet);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet);\n return chunk.getName();\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n}\n\n// \n\nfunction css(styles) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return flatten(interleave(EMPTY_ARRAY, [styles].concat(interpolations)));\n }\n\n // $FlowFixMe\n return flatten(interleave(styles, interpolations));\n}\n\n// \n\nfunction constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n if (!isValidElementType(tag)) {\n throw new StyledComponentsError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n var templateFunction = function templateFunction() {\n return componentConstructor(tag, options, css.apply(undefined, arguments));\n };\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean)\n }));\n };\n\n return templateFunction;\n}\n\n// \n// Source: https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash(c) {\n for (var e = c.length | 0, a = e | 0, d = 0, b; e >= 4;) {\n b = c.charCodeAt(d) & 255 | (c.charCodeAt(++d) & 255) << 8 | (c.charCodeAt(++d) & 255) << 16 | (c.charCodeAt(++d) & 255) << 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), b ^= b >>> 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16) ^ b, e -= 4, ++d;\n }\n switch (e) {\n case 3:\n a ^= (c.charCodeAt(d + 2) & 255) << 16;\n case 2:\n a ^= (c.charCodeAt(d + 1) & 255) << 8;\n case 1:\n a ^= c.charCodeAt(d) & 255, a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n }\n a ^= a >>> 13;\n a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n return (a ^ a >>> 15) >>> 0;\n}\n\n// \n/* eslint-disable no-bitwise */\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nvar charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nvar getAlphabeticChar = function getAlphabeticChar(code) {\n return String.fromCharCode(code + (code > 25 ? 39 : 97));\n};\n\n/* input a number, usually a hash and convert it to base-52 */\nfunction generateAlphabeticName(code) {\n var name = '';\n var x = void 0;\n\n /* get a char and divide by alphabet-length */\n for (x = code; x > charsLength; x = Math.floor(x / charsLength)) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return getAlphabeticChar(x % charsLength) + name;\n}\n\n// \n\nfunction hasFunctionObjectKey(obj) {\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in obj) {\n if (isFunction(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isStaticRules(rules, attrs) {\n for (var i = 0; i < rules.length; i += 1) {\n var rule = rules[i];\n\n // recursive case\n if (Array.isArray(rule) && !isStaticRules(rule, attrs)) {\n return false;\n } else if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n if (attrs.some(function (x) {\n return isFunction(x) || hasFunctionObjectKey(x);\n })) return false;\n\n return true;\n}\n\n// \n\n/* combines hashStr (murmurhash) and nameGenerator for convenience */\nvar hasher = function hasher(str) {\n return generateAlphabeticName(murmurhash(str));\n};\n\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\n\nvar ComponentStyle = function () {\n function ComponentStyle(rules, attrs, componentId) {\n classCallCheck(this, ComponentStyle);\n\n this.rules = rules;\n this.isStatic = process.env.NODE_ENV === 'production' && isStaticRules(rules, attrs);\n this.componentId = componentId;\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n\n\n ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) {\n var isStatic = this.isStatic,\n componentId = this.componentId,\n lastClassName = this.lastClassName;\n\n if (IS_BROWSER && isStatic && typeof lastClassName === 'string' && styleSheet.hasNameForId(componentId, lastClassName)) {\n return lastClassName;\n }\n\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var name = hasher(this.componentId + flatCSS.join(''));\n if (!styleSheet.hasNameForId(componentId, name)) {\n styleSheet.inject(this.componentId, stringifyRules(flatCSS, '.' + name, undefined, componentId), name);\n }\n\n this.lastClassName = name;\n return name;\n };\n\n ComponentStyle.generateName = function generateName(str) {\n return hasher(str);\n };\n\n return ComponentStyle;\n}();\n\n// \n\nvar LIMIT = 200;\n\nvar createWarnTooManyClasses = (function (displayName) {\n var generatedClasses = {};\n var warningSeen = false;\n\n return function (className) {\n if (!warningSeen) {\n generatedClasses[className] = true;\n if (Object.keys(generatedClasses).length >= LIMIT) {\n // Unable to find latestRule in test environment.\n /* eslint-disable no-console, prefer-template */\n console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \\n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\\n' + 'Example:\\n' + ' const Component = styled.div.attrs(props => ({\\n' + ' style: {\\n' + ' background: props.background,\\n' + ' },\\n' + ' }))`width: 100%;`\\n\\n' + ' ');\n warningSeen = true;\n generatedClasses = {};\n }\n }\n };\n});\n\n// \n\nvar determineTheme = (function (props, fallbackTheme) {\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types, flowtype-errors/show-errors */\n var isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;\n /* eslint-enable */\n\n return theme;\n});\n\n// \nvar escapeRegex = /[[\\].#*$><+~=|^:(),\"'`-]+/g;\nvar dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nfunction escape(str) {\n return str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n\n// \n\nfunction isTag(target) {\n return typeof target === 'string' && (process.env.NODE_ENV !== 'production' ? target.charAt(0) === target.charAt(0).toLowerCase() : true);\n}\n\n// \n\nfunction generateDisplayName(target) {\n // $FlowFixMe\n return isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')';\n}\n\nvar _TYPE_STATICS;\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDerivedStateFromProps: true,\n propTypes: true,\n type: true\n};\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};\n\nvar TYPE_STATICS = (_TYPE_STATICS = {}, _TYPE_STATICS[ForwardRef] = {\n $$typeof: true,\n render: true\n}, _TYPE_STATICS);\n\nvar defineProperty$1 = Object.defineProperty,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n _Object$getOwnPropert = Object.getOwnPropertySymbols,\n getOwnPropertySymbols = _Object$getOwnPropert === undefined ? function () {\n return [];\n} : _Object$getOwnPropert,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getPrototypeOf = Object.getPrototypeOf,\n objectPrototype = Object.prototype;\nvar arrayPrototype = Array.prototype;\n\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n\n var keys = arrayPrototype.concat(getOwnPropertyNames(sourceComponent),\n // $FlowFixMe\n getOwnPropertySymbols(sourceComponent));\n\n var targetStatics = TYPE_STATICS[targetComponent.$$typeof] || REACT_STATICS;\n\n var sourceStatics = TYPE_STATICS[sourceComponent.$$typeof] || REACT_STATICS;\n\n var i = keys.length;\n var descriptor = void 0;\n var key = void 0;\n\n // eslint-disable-next-line no-plusplus\n while (i--) {\n key = keys[i];\n\n if (\n // $FlowFixMe\n !KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) &&\n // $FlowFixMe\n !(targetStatics && targetStatics[key])) {\n descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n if (descriptor) {\n try {\n // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {\n /* fail silently */\n }\n }\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\n// \nfunction isDerivedReactComponent(fn) {\n return !!(fn && fn.prototype && fn.prototype.isReactComponent);\n}\n\n// \n// Helper to call a given function, only once\nvar once = (function (cb) {\n var called = false;\n\n return function () {\n if (!called) {\n called = true;\n cb.apply(undefined, arguments);\n }\n };\n});\n\n// \n\nvar ThemeContext = createContext();\n\nvar ThemeConsumer = ThemeContext.Consumer;\n\n/**\n * Provide a theme to an entire react component tree via context\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider(props) {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext.bind(_this));\n _this.renderInner = _this.renderInner.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) return null;\n\n return React.createElement(\n ThemeContext.Consumer,\n null,\n this.renderInner\n );\n };\n\n ThemeProvider.prototype.renderInner = function renderInner(outerTheme) {\n var context = this.getContext(this.props.theme, outerTheme);\n\n return React.createElement(\n ThemeContext.Provider,\n { value: context },\n this.props.children\n );\n };\n\n /**\n * Get the theme from the props, supporting both (outerTheme) => {}\n * as well as object notation\n */\n\n\n ThemeProvider.prototype.getTheme = function getTheme(theme, outerTheme) {\n if (isFunction(theme)) {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme === null || Array.isArray(mergedTheme) || (typeof mergedTheme === 'undefined' ? 'undefined' : _typeof(mergedTheme)) !== 'object')) {\n throw new StyledComponentsError(7);\n }\n\n return mergedTheme;\n }\n\n if (theme === null || Array.isArray(theme) || (typeof theme === 'undefined' ? 'undefined' : _typeof(theme)) !== 'object') {\n throw new StyledComponentsError(8);\n }\n\n return _extends({}, outerTheme, theme);\n };\n\n ThemeProvider.prototype.getContext = function getContext(theme, outerTheme) {\n return this.getTheme(theme, outerTheme);\n };\n\n return ThemeProvider;\n}(Component);\n\n// \n\nvar CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nvar ServerStyleSheet = function () {\n function ServerStyleSheet() {\n classCallCheck(this, ServerStyleSheet);\n\n /* The master sheet might be reset, so keep a reference here */\n this.masterSheet = StyleSheet.master;\n this.instance = this.masterSheet.clone();\n this.sealed = false;\n }\n\n /**\n * Mark the ServerStyleSheet as being fully emitted and manually GC it from the\n * StyleSheet singleton.\n */\n\n\n ServerStyleSheet.prototype.seal = function seal() {\n if (!this.sealed) {\n /* Remove sealed StyleSheets from the master sheet */\n var index = this.masterSheet.clones.indexOf(this.instance);\n this.masterSheet.clones.splice(index, 1);\n this.sealed = true;\n }\n };\n\n ServerStyleSheet.prototype.collectStyles = function collectStyles(children) {\n if (this.sealed) {\n throw new StyledComponentsError(2);\n }\n\n return React.createElement(\n StyleSheetManager,\n { sheet: this.instance },\n children\n );\n };\n\n ServerStyleSheet.prototype.getStyleTags = function getStyleTags() {\n this.seal();\n return this.instance.toHTML();\n };\n\n ServerStyleSheet.prototype.getStyleElement = function getStyleElement() {\n this.seal();\n return this.instance.toReactElements();\n };\n\n ServerStyleSheet.prototype.interleaveWithNodeStream = function interleaveWithNodeStream(readableStream) {\n var _this = this;\n\n {\n throw new StyledComponentsError(3);\n }\n\n /* the tag index keeps track of which tags have already been emitted */\n var instance = this.instance;\n\n var instanceTagIndex = 0;\n\n var streamAttr = SC_STREAM_ATTR + '=\"true\"';\n\n var transformer = new stream.Transform({\n transform: function appendStyleChunks(chunk, /* encoding */_, callback) {\n var tags = instance.tags;\n\n var html = '';\n\n /* retrieve html for each new style tag */\n for (; instanceTagIndex < tags.length; instanceTagIndex += 1) {\n var tag = tags[instanceTagIndex];\n html += tag.toHTML(streamAttr);\n }\n\n /* force our StyleSheets to emit entirely new tags */\n instance.sealAllTags();\n\n var renderedHtml = chunk.toString();\n\n /* prepend style html to chunk, unless the start of the chunk is a closing tag in which case append right after that */\n if (CLOSING_TAG_R.test(renderedHtml)) {\n var endOfClosingTag = renderedHtml.indexOf('>');\n\n this.push(renderedHtml.slice(0, endOfClosingTag + 1) + html + renderedHtml.slice(endOfClosingTag + 1));\n } else this.push(html + renderedHtml);\n\n callback();\n }\n });\n\n readableStream.on('end', function () {\n return _this.seal();\n });\n\n readableStream.on('error', function (err) {\n _this.seal();\n\n // forward the error to the transform stream\n transformer.emit('error', err);\n });\n\n return readableStream.pipe(transformer);\n };\n\n return ServerStyleSheet;\n}();\n\n// \n\nvar StyleSheetContext = createContext();\nvar StyleSheetConsumer = StyleSheetContext.Consumer;\n\nvar StyleSheetManager = function (_Component) {\n inherits(StyleSheetManager, _Component);\n\n function StyleSheetManager(props) {\n classCallCheck(this, StyleSheetManager);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext);\n return _this;\n }\n\n StyleSheetManager.prototype.getContext = function getContext(sheet, target) {\n if (sheet) {\n return sheet;\n } else if (target) {\n return new StyleSheet(target);\n } else {\n throw new StyledComponentsError(4);\n }\n };\n\n StyleSheetManager.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n sheet = _props.sheet,\n target = _props.target;\n\n\n return React.createElement(\n StyleSheetContext.Provider,\n { value: this.getContext(sheet, target) },\n process.env.NODE_ENV !== 'production' ? React.Children.only(children) : children\n );\n };\n\n return StyleSheetManager;\n}(Component);\nprocess.env.NODE_ENV !== \"production\" ? StyleSheetManager.propTypes = {\n sheet: PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]),\n\n target: PropTypes.shape({\n appendChild: PropTypes.func.isRequired\n })\n} : void 0;\n\n// \n\nvar THEME_PROP_REGEX = /\\.theme[.[]/;\nvar identifiers = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(_ComponentStyle, _displayName, parentComponentId) {\n var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName);\n\n /**\n * This ensures uniqueness if two components happen to share\n * the same displayName.\n */\n var nr = (identifiers[displayName] || 0) + 1;\n identifiers[displayName] = nr;\n\n var componentId = displayName + '-' + _ComponentStyle.generateName(displayName + nr);\n\n return parentComponentId ? parentComponentId + '-' + componentId : componentId;\n}\n\n// $FlowFixMe\n\nvar StyledComponent = function (_Component) {\n inherits(StyledComponent, _Component);\n\n function StyledComponent() {\n classCallCheck(this, StyledComponent);\n\n var _this = possibleConstructorReturn(this, _Component.call(this));\n\n _this.attrs = {};\n\n _this.renderOuter = _this.renderOuter.bind(_this);\n _this.renderInner = _this.renderInner.bind(_this);\n\n if (process.env.NODE_ENV !== 'production') {\n _this.warnInnerRef = once(function (displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('The \"innerRef\" API has been removed in styled-components v4 in favor of React 16 ref forwarding, use \"ref\" instead like a typical component. \"innerRef\" was detected on component \"' + displayName + '\".')\n );\n });\n\n _this.warnAttrsFnObjectKeyDeprecated = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('Functions as object-form attrs({}) keys are now deprecated and will be removed in a future version of styled-components. Switch to the new attrs(props => ({})) syntax instead for easier and more powerful composition. The attrs key in question is \"' + key + '\" on component \"' + displayName + '\".', '\\n ' + new Error().stack)\n );\n });\n\n _this.warnNonStyledComponentAttrsObjectKey = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('It looks like you\\'ve used a non styled-component as the value for the \"' + key + '\" prop in an object-form attrs constructor of \"' + displayName + '\".\\n' + 'You should use the new function-form attrs constructor which avoids this issue: attrs(props => ({ yourStuff }))\\n' + \"To continue using the deprecated object syntax, you'll need to wrap your component prop in a function to make it available inside the styled component (you'll still get the deprecation warning though.)\\n\" + ('For example, { ' + key + ': () => InnerComponent } instead of { ' + key + ': InnerComponent }'))\n );\n });\n }\n return _this;\n }\n\n StyledComponent.prototype.render = function render() {\n return React.createElement(\n StyleSheetConsumer,\n null,\n this.renderOuter\n );\n };\n\n StyledComponent.prototype.renderOuter = function renderOuter() {\n var styleSheet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : StyleSheet.master;\n\n this.styleSheet = styleSheet;\n\n // No need to subscribe a static component to theme changes, it won't change anything\n if (this.props.forwardedComponent.componentStyle.isStatic) return this.renderInner();\n\n return React.createElement(\n ThemeConsumer,\n null,\n this.renderInner\n );\n };\n\n StyledComponent.prototype.renderInner = function renderInner(theme) {\n var _props$forwardedCompo = this.props.forwardedComponent,\n componentStyle = _props$forwardedCompo.componentStyle,\n defaultProps = _props$forwardedCompo.defaultProps,\n displayName = _props$forwardedCompo.displayName,\n foldedComponentIds = _props$forwardedCompo.foldedComponentIds,\n styledComponentId = _props$forwardedCompo.styledComponentId,\n target = _props$forwardedCompo.target,\n usesTheme = _props$forwardedCompo.usesTheme;\n\n\n var generatedClassName = void 0;\n var rawTheme = void 0;\n\n if (componentStyle.isStatic) {\n generatedClassName = this.generateAndInjectStyles(EMPTY_OBJECT, this.props);\n } else {\n rawTheme = determineTheme(this.props, theme, defaultProps);\n generatedClassName = this.generateAndInjectStyles(rawTheme || EMPTY_OBJECT, this.props);\n\n if (process.env.NODE_ENV !== 'production' && usesTheme && !rawTheme) {\n console.error('Component \\'' +\n // $FlowFixMe\n displayName + '\\' (.' + styledComponentId + ') references the \\'theme\\' prop in its styles but no theme was provided via prop or .');\n }\n }\n\n var elementToBeCreated = this.props.as || this.attrs.as || target;\n var isTargetTag = isTag(elementToBeCreated);\n\n var propsForElement = {};\n var computedProps = _extends({}, this.props, this.attrs);\n\n var key = void 0;\n // eslint-disable-next-line guard-for-in\n for (key in computedProps) {\n if (process.env.NODE_ENV !== 'production' && key === 'innerRef' && isTargetTag) {\n this.warnInnerRef(displayName);\n }\n\n if (key === 'forwardedComponent' || key === 'as') {\n continue;\n } else if (key === 'forwardedRef') propsForElement.ref = computedProps[key];else if (key === 'forwardedAs') propsForElement.as = computedProps[key];else if (!isTargetTag || validAttr(key)) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (this.props.style && this.attrs.style) {\n propsForElement.style = _extends({}, this.attrs.style, this.props.style);\n }\n\n propsForElement.className = Array.prototype.concat(foldedComponentIds, styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : null, this.props.className, this.attrs.className).filter(Boolean).join(' ');\n\n return createElement(elementToBeCreated, propsForElement);\n };\n\n StyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props, attrs) {\n var _this2 = this;\n\n var context = _extends({}, props, { theme: theme });\n\n if (!attrs.length) return context;\n\n this.attrs = {};\n\n attrs.forEach(function (attrDef) {\n var resolvedAttrDef = attrDef;\n var attrDefWasFn = false;\n var attr = void 0;\n var key = void 0;\n\n if (isFunction(resolvedAttrDef)) {\n // $FlowFixMe\n resolvedAttrDef = resolvedAttrDef(context);\n attrDefWasFn = true;\n }\n\n /* eslint-disable guard-for-in */\n // $FlowFixMe\n for (key in resolvedAttrDef) {\n attr = resolvedAttrDef[key];\n\n if (!attrDefWasFn) {\n if (isFunction(attr) && !isDerivedReactComponent(attr) && !isStyledComponent(attr)) {\n if (process.env.NODE_ENV !== 'production') {\n _this2.warnAttrsFnObjectKeyDeprecated(key, props.forwardedComponent.displayName);\n }\n\n attr = attr(context);\n\n if (process.env.NODE_ENV !== 'production' && React.isValidElement(attr)) {\n _this2.warnNonStyledComponentAttrsObjectKey(key, props.forwardedComponent.displayName);\n }\n }\n }\n\n _this2.attrs[key] = attr;\n context[key] = attr;\n }\n /* eslint-enable */\n });\n\n return context;\n };\n\n StyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var _props$forwardedCompo2 = props.forwardedComponent,\n attrs = _props$forwardedCompo2.attrs,\n componentStyle = _props$forwardedCompo2.componentStyle,\n warnTooManyClasses = _props$forwardedCompo2.warnTooManyClasses;\n\n // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n\n if (componentStyle.isStatic && !attrs.length) {\n return componentStyle.generateAndInjectStyles(EMPTY_OBJECT, this.styleSheet);\n }\n\n var className = componentStyle.generateAndInjectStyles(this.buildExecutionContext(theme, props, attrs), this.styleSheet);\n\n if (process.env.NODE_ENV !== 'production' && warnTooManyClasses) warnTooManyClasses(className);\n\n return className;\n };\n\n return StyledComponent;\n}(Component);\n\nfunction createStyledComponent(target, options, rules) {\n var isTargetStyledComp = isStyledComponent(target);\n var isClass = !isTag(target);\n\n var _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? generateDisplayName(target) : _options$displayName,\n _options$componentId = options.componentId,\n componentId = _options$componentId === undefined ? generateId(ComponentStyle, options.displayName, options.parentComponentId) : _options$componentId,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? StyledComponent : _options$ParentCompon,\n _options$attrs = options.attrs,\n attrs = _options$attrs === undefined ? EMPTY_ARRAY : _options$attrs;\n\n\n var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n var finalAttrs =\n // $FlowFixMe\n isTargetStyledComp && target.attrs ? Array.prototype.concat(target.attrs, attrs).filter(Boolean) : attrs;\n\n var componentStyle = new ComponentStyle(isTargetStyledComp ? // fold the underlying StyledComponent rules up (implicit extend)\n // $FlowFixMe\n target.componentStyle.rules.concat(rules) : rules, finalAttrs, styledComponentId);\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n var WrappedStyledComponent = void 0;\n var forwardRef = function forwardRef(props, ref) {\n return React.createElement(ParentComponent, _extends({}, props, { forwardedComponent: WrappedStyledComponent, forwardedRef: ref }));\n };\n forwardRef.displayName = displayName;\n WrappedStyledComponent = React.forwardRef(forwardRef);\n WrappedStyledComponent.displayName = displayName;\n\n // $FlowFixMe\n WrappedStyledComponent.attrs = finalAttrs;\n // $FlowFixMe\n WrappedStyledComponent.componentStyle = componentStyle;\n\n // $FlowFixMe\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp ? // $FlowFixMe\n Array.prototype.concat(target.foldedComponentIds, target.styledComponentId) : EMPTY_ARRAY;\n\n // $FlowFixMe\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n // $FlowFixMe\n WrappedStyledComponent.target = isTargetStyledComp ? target.target : target;\n\n // $FlowFixMe\n WrappedStyledComponent.withComponent = function withComponent(tag) {\n var previousComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['componentId']);\n\n\n var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag)));\n\n var newOptions = _extends({}, optionsToCopy, {\n attrs: finalAttrs,\n componentId: newComponentId,\n ParentComponent: ParentComponent\n });\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n // $FlowFixMe\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get: function get$$1() {\n return this._foldedDefaultProps;\n },\n set: function set$$1(obj) {\n // $FlowFixMe\n this._foldedDefaultProps = isTargetStyledComp ? merge(target.defaultProps, obj) : obj;\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n WrappedStyledComponent.usesTheme = componentStyle.rules.some(function (x) {\n return isFunction(x) && THEME_PROP_REGEX.test(x.toString());\n });\n\n // $FlowFixMe\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName);\n }\n\n // $FlowFixMe\n WrappedStyledComponent.toString = function () {\n return '.' + WrappedStyledComponent.styledComponentId;\n };\n\n if (isClass) {\n hoistNonReactStatics(WrappedStyledComponent, target, {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n styledComponentId: true,\n target: true,\n withComponent: true\n });\n }\n\n return WrappedStyledComponent;\n}\n\n// \n// Thanks to ReactDOMFactories for this handy list!\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr',\n\n// SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'marker', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// \n\nvar styled = function styled(tag) {\n return constructWithOptions(createStyledComponent, tag);\n};\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(function (domElement) {\n styled[domElement] = styled(domElement);\n});\n\n// \n\nvar GlobalStyle = function () {\n function GlobalStyle(rules, componentId) {\n classCallCheck(this, GlobalStyle);\n\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules, EMPTY_ARRAY);\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n GlobalStyle.prototype.createStyles = function createStyles(executionContext, styleSheet) {\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var css = stringifyRules(flatCSS, '');\n\n styleSheet.inject(this.componentId, css);\n };\n\n GlobalStyle.prototype.removeStyles = function removeStyles(styleSheet) {\n var componentId = this.componentId;\n\n if (styleSheet.hasId(componentId)) {\n styleSheet.remove(componentId);\n }\n };\n\n // TODO: overwrite in-place instead of remove+create?\n\n\n GlobalStyle.prototype.renderStyles = function renderStyles(executionContext, styleSheet) {\n this.removeStyles(styleSheet);\n this.createStyles(executionContext, styleSheet);\n };\n\n return GlobalStyle;\n}();\n\n// \n\n// place our cache into shared context so it'll persist between HMRs\nif (IS_BROWSER) {\n window.scCGSHMRCache = {};\n}\n\nfunction createGlobalStyle(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var id = 'sc-global-' + murmurhash(JSON.stringify(rules));\n var style = new GlobalStyle(rules, id);\n\n var GlobalStyleComponent = function (_React$Component) {\n inherits(GlobalStyleComponent, _React$Component);\n\n function GlobalStyleComponent(props) {\n classCallCheck(this, GlobalStyleComponent);\n\n var _this = possibleConstructorReturn(this, _React$Component.call(this, props));\n\n var _this$constructor = _this.constructor,\n globalStyle = _this$constructor.globalStyle,\n styledComponentId = _this$constructor.styledComponentId;\n\n\n if (IS_BROWSER) {\n window.scCGSHMRCache[styledComponentId] = (window.scCGSHMRCache[styledComponentId] || 0) + 1;\n }\n\n /**\n * This fixes HMR compatibility. Don't ask me why, but this combination of\n * caching the closure variables via statics and then persisting the statics in\n * state works across HMR where no other combination did. ¯\\_(ツ)_/¯\n */\n _this.state = {\n globalStyle: globalStyle,\n styledComponentId: styledComponentId\n };\n return _this;\n }\n\n GlobalStyleComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n if (window.scCGSHMRCache[this.state.styledComponentId]) {\n window.scCGSHMRCache[this.state.styledComponentId] -= 1;\n }\n /**\n * Depending on the order \"render\" is called this can cause the styles to be lost\n * until the next render pass of the remaining instance, which may\n * not be immediate.\n */\n if (window.scCGSHMRCache[this.state.styledComponentId] === 0) {\n this.state.globalStyle.removeStyles(this.styleSheet);\n }\n };\n\n GlobalStyleComponent.prototype.render = function render() {\n var _this2 = this;\n\n if (process.env.NODE_ENV !== 'production' && React.Children.count(this.props.children)) {\n // eslint-disable-next-line no-console\n console.warn('The global style component ' + this.state.styledComponentId + ' was given child JSX. createGlobalStyle does not render children.');\n }\n\n return React.createElement(\n StyleSheetConsumer,\n null,\n function (styleSheet) {\n _this2.styleSheet = styleSheet || StyleSheet.master;\n\n var globalStyle = _this2.state.globalStyle;\n\n\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(STATIC_EXECUTION_CONTEXT, _this2.styleSheet);\n\n return null;\n } else {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = _this2.constructor.defaultProps;\n\n\n var context = _extends({}, _this2.props);\n\n if (typeof theme !== 'undefined') {\n context.theme = determineTheme(_this2.props, theme, defaultProps);\n }\n\n globalStyle.renderStyles(context, _this2.styleSheet);\n\n return null;\n }\n );\n }\n }\n );\n };\n\n return GlobalStyleComponent;\n }(React.Component);\n\n GlobalStyleComponent.globalStyle = style;\n GlobalStyleComponent.styledComponentId = id;\n\n\n return GlobalStyleComponent;\n}\n\n// \n\nvar replaceWhitespace = function replaceWhitespace(str) {\n return str.replace(/\\s|\\\\n/g, '');\n};\n\nfunction keyframes(strings) {\n /* Warning if you've used keyframes on React Native */\n if (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn('`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.');\n }\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n\n var name = generateAlphabeticName(murmurhash(replaceWhitespace(JSON.stringify(rules))));\n\n return new Keyframes(name, stringifyRules(rules, name, '@keyframes'));\n}\n\n// \n\nvar withTheme = (function (Component$$1) {\n var WithTheme = React.forwardRef(function (props, ref) {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = Component$$1.defaultProps;\n\n var themeProp = determineTheme(props, theme, defaultProps);\n\n if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + getComponentName(Component$$1) + '\"');\n }\n\n return React.createElement(Component$$1, _extends({}, props, { theme: themeProp, ref: ref }));\n }\n );\n });\n\n hoistNonReactStatics(WithTheme, Component$$1);\n\n WithTheme.displayName = 'WithTheme(' + getComponentName(Component$$1) + ')';\n\n return WithTheme;\n});\n\n// \n\n/* eslint-disable */\nvar __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS = {\n StyleSheet: StyleSheet\n};\n\n// \n\n/* Warning if you've imported this file on React Native */\nif (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like you've imported 'styled-components' on React Native.\\n\" + \"Perhaps you're looking to import 'styled-components/native'?\\n\" + 'Read more about this at https://www.styled-components.com/docs/basics#react-native');\n}\n\n/* Warning if there are several instances of styled-components */\nif (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test' && typeof window !== 'undefined' && typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Node.js') === -1 && navigator.userAgent.indexOf('jsdom') === -1) {\n window['__styled-components-init__'] = window['__styled-components-init__'] || 0;\n\n if (window['__styled-components-init__'] === 1) {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. \" + 'This may cause dynamic styles not rendering properly, errors happening during rehydration process ' + 'and makes your application bigger without a good reason.\\n\\n' + 'See https://s-c.sh/2BAXzed for more info.');\n }\n\n window['__styled-components-init__'] += 1;\n}\n\n//\n\nexport default styled;\nexport { createGlobalStyle, css, isStyledComponent, keyframes, ServerStyleSheet, StyleSheetConsumer, StyleSheetContext, StyleSheetManager, ThemeConsumer, ThemeContext, ThemeProvider, withTheme, __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS };\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","export const colors = {\n PRIMARY: '#ABE2FB',\n SECONDARY: '#E6E6E6',\n DARKER_PRIMARY: '#87ceeb',\n OFF_WHITE: '#15181A',\n GREY: '#D3D3D3',\n RED: '#FF5E5E',\n DARK_GREY: '#535D63'\n};\n\nexport const TRACK_TOTAL_DEG = 270.0;\n\nexport const RADIAN = Math.PI / 180.0;\n\nexport const light = {\n primary: colors.PRIMARY,\n secondary: colors.SECONDARY,\n detail: colors.GREY,\n dark: false\n};\n\nexport const dark = {\n primary: colors.PRIMARY,\n secondary: colors.DARK_GREY,\n detail: colors.DARK_GREY,\n dark: true\n};\n\nexport default {\n dark,\n light,\n colors\n};\n","import { omit } from 'ramda';\n\nexport const getClassName = (componentName, theme) => {\n return 'daq-' + componentName + (theme && theme.dark ? '--dark' : '--light');\n};\n\nexport const getFilteredProps = props => omit(['className', 'id', 'setProps', 'style'], props);\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(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};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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};","import React from 'react';\nimport styled from 'styled-components';\n\nimport Label from './Label.styled';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-around;\n flex-direction: column;\n ${({ fullSize }) => {\n if (fullSize) return 'width: 100%;';\n return '';\n }}\n`;\n\nfunction LabelContainer(props) {\n let labelText = props.label;\n let customLabelStyle = {};\n if (typeof props.label === 'object') {\n labelText = props.label.label;\n customLabelStyle = props.label.style;\n }\n const labelElement = \n // if (labelText && labelText.length) {\n return (\n \n {props.labelPosition == 'top' && labelElement}\n {props.children}\n {props.labelPosition != 'top' && labelElement}\n \n );\n // }\n // return
{props.children}
;\n}\n\nLabelContainer.defaultProps = {\n labelPosition: 'bottom'\n};\n\nexport default LabelContainer;\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = 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 (0, _defineProperty2.default)(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}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","(function() { module.exports = window[\"ReactDOM\"]; }());","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n\tvar _react = __webpack_require__(1);\n\n\tvar _react2 = _interopRequireDefault(_react);\n\n\tvar _propTypes = __webpack_require__(2);\n\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\tvar KEYCODE_UP = 38;\n\tvar KEYCODE_DOWN = 40;\n\tvar IS_BROWSER = typeof document != 'undefined';\n\tvar RE_NUMBER = /^[+-]?((\\.\\d+)|(\\d+(\\.\\d+)?))$/;\n\tvar RE_INCOMPLETE_NUMBER = /^([+-]|\\.0*|[+-]\\.0*|[+-]?\\d+\\.)?$/;\n\n\tfunction addClass(element, className) {\n\t if (element.classList) {\n\t return element.classList.add(className);\n\t }\n\t if (!element.className.search(new RegExp(\"\\\\b\" + className + \"\\\\b\"))) {\n\t element.className = \" \" + className;\n\t }\n\t}\n\n\tfunction removeClass(element, className) {\n\t if (element.className) {\n\t if (element.classList) {\n\t return element.classList.remove(className);\n\t }\n\n\t element.className = element.className.replace(new RegExp(\"\\\\b\" + className + \"\\\\b\", \"g\"), \"\");\n\t }\n\t}\n\n\tfunction access(object, prop, defaultValue) {\n\t var result = object[prop];\n\t if (typeof result == \"function\") {\n\t for (var _len = arguments.length, args = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n\t args[_key - 3] = arguments[_key];\n\t }\n\n\t result = result.apply(undefined, args);\n\t }\n\t return result === undefined ? defaultValue : result;\n\t}\n\n\tvar NumericInput = function (_Component) {\n\t _inherits(NumericInput, _Component);\n\n\t function NumericInput() {\n\t var _ref;\n\n\t _classCallCheck(this, NumericInput);\n\n\t for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t args[_key2] = arguments[_key2];\n\t }\n\n\t var _this = _possibleConstructorReturn(this, (_ref = NumericInput.__proto__ || Object.getPrototypeOf(NumericInput)).call.apply(_ref, [this].concat(args)));\n\n\t _this._isStrict = !!_this.props.strict;\n\n\t _this.state = _extends({\n\t btnDownHover: false,\n\t btnDownActive: false,\n\t btnUpHover: false,\n\t btnUpActive: false,\n\t stringValue: \"\"\n\t }, _this._propsToState(_this.props));\n\t _this.stop = _this.stop.bind(_this);\n\t _this.onTouchEnd = _this.onTouchEnd.bind(_this);\n\t _this.refsInput = {};\n\t _this.refsWrapper = {};\n\t return _this;\n\t }\n\n\t _createClass(NumericInput, [{\n\t key: '_propsToState',\n\t value: function _propsToState(props) {\n\t var out = {};\n\n\t if (props.hasOwnProperty(\"value\")) {\n\t out.stringValue = String(props.value || props.value === 0 ? props.value : '').trim();\n\n\t out.value = out.stringValue !== '' ? this._parse(props.value) : null;\n\t } else if (!this._isMounted && props.hasOwnProperty(\"defaultValue\")) {\n\t out.stringValue = String(props.defaultValue || props.defaultValue === 0 ? props.defaultValue : '').trim();\n\n\t out.value = props.defaultValue !== '' ? this._parse(props.defaultValue) : null;\n\t }\n\n\t return out;\n\t }\n\t }, {\n\t key: 'componentWillReceiveProps',\n\t value: function componentWillReceiveProps(props) {\n\t var _this2 = this;\n\n\t this._isStrict = !!props.strict;\n\t var nextState = this._propsToState(props);\n\t if (Object.keys(nextState).length) {\n\t this._ignoreValueChange = true;\n\t this.setState(nextState, function () {\n\t _this2._ignoreValueChange = false;\n\t });\n\t }\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate() {\n\t this.saveSelection();\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate(prevProps, prevState) {\n\t if (!this._ignoreValueChange && prevState.value !== this.state.value && (!isNaN(this.state.value) || this.state.value === null)) {\n\t this._invokeEventCallback(\"onChange\", this.state.value, this.refsInput.value, this.refsInput);\n\t }\n\n\t if (this._inputFocus) {\n\t this.refsInput.focus();\n\n\t if (this.state.selectionStart || this.state.selectionStart === 0) {\n\t this.refsInput.selectionStart = this.state.selectionStart;\n\t }\n\n\t if (this.state.selectionEnd || this.state.selectionEnd === 0) {\n\t this.refsInput.selectionEnd = this.state.selectionEnd;\n\t }\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t this._isMounted = false;\n\t this.stop();\n\t }\n\t }, {\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var _this3 = this;\n\n\t this._isMounted = true;\n\t this.refsInput.getValueAsNumber = function () {\n\t return _this3.state.value || 0;\n\t };\n\n\t this.refsInput.setValue = function (value) {\n\t _this3.setState({\n\t value: _this3._parse(value),\n\t stringValue: value\n\t });\n\t };\n\n\t if (!this._inputFocus && IS_BROWSER && document.activeElement === this.refsInput) {\n\t this._inputFocus = true;\n\t this.refsInput.focus();\n\t this._invokeEventCallback(\"onFocus\", {\n\t target: this.refsInput,\n\t type: \"focus\"\n\t });\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'saveSelection',\n\t value: function saveSelection() {\n\t this.state.selectionStart = this.refsInput.selectionStart;\n\t this.state.selectionEnd = this.refsInput.selectionEnd;\n\t }\n\t }, {\n\t key: 'checkValidity',\n\t value: function checkValidity() {\n\t var valid = void 0,\n\t validationError = \"\";\n\n\t var supportsValidation = !!this.refsInput.checkValidity;\n\n\t var noValidate = !!(this.props.noValidate && this.props.noValidate != \"false\");\n\n\t this.refsInput.noValidate = noValidate;\n\n\t valid = noValidate || !supportsValidation;\n\n\t if (valid) {\n\t validationError = \"\";\n\t } else {\n\t if (this.refsInput.pattern === \"\") {\n\t this.refsInput.pattern = this.props.required ? \".+\" : \".*\";\n\t }\n\n\t if (supportsValidation) {\n\t this.refsInput.checkValidity();\n\t valid = this.refsInput.validity.valid;\n\n\t if (!valid) {\n\t validationError = this.refsInput.validationMessage;\n\t }\n\t }\n\n\t if (valid && supportsValidation && this.props.maxLength) {\n\t if (this.refsInput.value.length > this.props.maxLength) {\n\t validationError = \"This value is too long\";\n\t }\n\t }\n\t }\n\n\t validationError = validationError || (valid ? \"\" : this.refsInput.validationMessage || \"Unknown Error\");\n\n\t var validStateChanged = this._valid !== validationError;\n\t this._valid = validationError;\n\t if (validationError) {\n\t addClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onInvalid\", validationError, this.state.value, this.refsInput.value);\n\t }\n\t } else {\n\t removeClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onValid\", this.state.value, this.refsInput.value);\n\t }\n\t }\n\t }\n\t }, {\n\t key: '_toNumber',\n\t value: function _toNumber(x) {\n\t var n = parseFloat(x);\n\t if (isNaN(n) || !isFinite(n)) {\n\t n = 0;\n\t }\n\n\t if (this._isStrict) {\n\t var precision = access(this.props, \"precision\", null, this);\n\t var q = Math.pow(10, precision === null ? 10 : precision);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t n = Math.min(Math.max(n, _min), _max);\n\t n = Math.round(n * q) / q;\n\t }\n\n\t return n;\n\t }\n\t }, {\n\t key: '_parse',\n\t value: function _parse(x) {\n\t x = String(x);\n\t if (typeof this.props.parse == 'function') {\n\t return parseFloat(this.props.parse(x));\n\t }\n\t return parseFloat(x);\n\t }\n\t }, {\n\t key: '_format',\n\t value: function _format(n) {\n\t var _n = this._toNumber(n);\n\t var precision = access(this.props, \"precision\", null, this);\n\t if (precision !== null) {\n\t _n = n.toFixed(precision);\n\t }\n\n\t _n += \"\";\n\n\t if (this.props.format) {\n\t return this.props.format(_n);\n\t }\n\n\t return _n;\n\t }\n\t }, {\n\t key: '_step',\n\t value: function _step(n, callback) {\n\t var _isStrict = this._isStrict;\n\t this._isStrict = true;\n\n\t var _step = +access(this.props, \"step\", NumericInput.defaultProps.step, this, n > 0 ? NumericInput.DIRECTION_UP : NumericInput.DIRECTION_DOWN);\n\n\t var _n = this._toNumber((this.state.value || 0) + _step * n);\n\n\t if (this.props.snap) {\n\t _n = Math.round(_n / _step) * _step;\n\t }\n\n\t this._isStrict = _isStrict;\n\n\t if (_n !== this.state.value) {\n\t this.setState({ value: _n, stringValue: _n + \"\" }, callback);\n\t return true;\n\t }\n\n\t return false;\n\t }\n\t }, {\n\t key: '_onKeyDown',\n\t value: function _onKeyDown() {\n\t for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n\t args[_key3] = arguments[_key3];\n\t }\n\n\t args[0].persist();\n\t this._invokeEventCallback.apply(this, [\"onKeyDown\"].concat(args));\n\t var e = args[0];\n\t if (!e.isDefaultPrevented()) {\n\t if (e.keyCode === KEYCODE_UP) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? 0.1 : e.shiftKey ? 10 : 1);\n\t } else if (e.keyCode === KEYCODE_DOWN) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? -0.1 : e.shiftKey ? -10 : -1);\n\t } else {\n\t var _value = this.refsInput.value,\n\t length = _value.length;\n\t if (e.keyCode === 8) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd > 0 && _value.length && _value.charAt(this.refsInput.selectionEnd - 1) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd - 1;\n\t }\n\t } else if (e.keyCode === 46) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd < length + 1 && _value.length && _value.charAt(this.refsInput.selectionEnd) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd + 1;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'stop',\n\t value: function stop() {\n\t if (this._timer) {\n\t clearTimeout(this._timer);\n\t }\n\t }\n\t }, {\n\t key: 'increase',\n\t value: function increase() {\n\t var _this4 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(1, callback);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t if (isNaN(this.state.value) || +this.state.value < _max) {\n\t this._timer = setTimeout(function () {\n\t _this4.increase(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'decrease',\n\t value: function decrease() {\n\t var _this5 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(-1, callback);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t if (isNaN(this.state.value) || +this.state.value > _min) {\n\t this._timer = setTimeout(function () {\n\t _this5.decrease(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'onMouseDown',\n\t value: function onMouseDown(dir, callback) {\n\t if (dir == 'down') {\n\t this.decrease(false, callback);\n\t } else if (dir == 'up') {\n\t this.increase(false, callback);\n\t }\n\t }\n\t }, {\n\t key: 'onTouchStart',\n\t value: function onTouchStart(dir, e) {\n\t e.preventDefault();\n\t if (dir == 'down') {\n\t this.decrease();\n\t } else if (dir == 'up') {\n\t this.increase();\n\t }\n\t }\n\t }, {\n\t key: 'onTouchEnd',\n\t value: function onTouchEnd(e) {\n\t e.preventDefault();\n\t this.stop();\n\t }\n\t }, {\n\t key: '_invokeEventCallback',\n\t value: function _invokeEventCallback(callbackName) {\n\t if (typeof this.props[callbackName] == \"function\") {\n\t var _props$callbackName;\n\n\t for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n\t args[_key4 - 1] = arguments[_key4];\n\t }\n\n\t (_props$callbackName = this.props[callbackName]).call.apply(_props$callbackName, [null].concat(args));\n\t }\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _this6 = this;\n\n\t var props = this.props;\n\t var state = this.state;\n\t var css = {};\n\n\t var _props = this.props,\n\t step = _props.step,\n\t min = _props.min,\n\t max = _props.max,\n\t precision = _props.precision,\n\t parse = _props.parse,\n\t format = _props.format,\n\t mobile = _props.mobile,\n\t snap = _props.snap,\n\t componentClass = _props.componentClass,\n\t value = _props.value,\n\t type = _props.type,\n\t style = _props.style,\n\t defaultValue = _props.defaultValue,\n\t onInvalid = _props.onInvalid,\n\t onValid = _props.onValid,\n\t strict = _props.strict,\n\t noStyle = _props.noStyle,\n\t rest = _objectWithoutProperties(_props, ['step', 'min', 'max', 'precision', 'parse', 'format', 'mobile', 'snap', 'componentClass', 'value', 'type', 'style', 'defaultValue', 'onInvalid', 'onValid', 'strict', 'noStyle']);\n\n\t noStyle = noStyle || style === false;\n\n\t for (var x in NumericInput.style) {\n\t css[x] = _extends({}, NumericInput.style[x], style ? style[x] || {} : {});\n\t }\n\n\t var hasFormControl = props.className && /\\bform-control\\b/.test(props.className);\n\n\t if (mobile == 'auto') {\n\t mobile = IS_BROWSER && 'ontouchstart' in document;\n\t }\n\n\t if (typeof mobile == \"function\") {\n\t mobile = mobile.call(this);\n\t }\n\t mobile = !!mobile;\n\n\t var attrs = {\n\t wrap: {\n\t style: noStyle ? null : css.wrap,\n\t className: 'react-numeric-input',\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsWrapper = e;\n\t }\n\t },\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined\n\t },\n\t input: _extends({\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsInput = e;\n\t }\n\t },\n\t type: 'text',\n\t style: noStyle ? null : _extends({}, css.input, !hasFormControl ? css['input:not(.form-control)'] : {}, this._inputFocus ? css['input:focus'] : {})\n\t }, rest),\n\t btnUp: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnUp, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnUpActive ? css['btn:active'] : state.btnUpHover ? css['btn:hover'] : {})\n\t },\n\t btnDown: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnDown, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnDownActive ? css['btn:active'] : state.btnDownHover ? css['btn:hover'] : {})\n\t }\n\t };\n\n\t var stringValue = String(state.stringValue || (state.value || state.value === 0 ? state.value : \"\") || \"\");\n\n\t var loose = !this._isStrict && (this._inputFocus || !this._isMounted);\n\n\t if (loose && RE_INCOMPLETE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (loose && stringValue && !RE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (state.value || state.value === 0) {\n\t attrs.input.value = this._format(state.value);\n\t } else {\n\t attrs.input.value = \"\";\n\t }\n\n\t if (hasFormControl && !noStyle) {\n\t _extends(attrs.wrap.style, css['wrap.hasFormControl']);\n\t }\n\n\t if (mobile && !noStyle) {\n\t _extends(attrs.input.style, css['input.mobile']);\n\t _extends(attrs.btnUp.style, css['btnUp.mobile']);\n\t _extends(attrs.btnDown.style, css['btnDown.mobile']);\n\t }\n\n\t if (!props.disabled && !props.readOnly) {\n\t _extends(attrs.wrap, {\n\t onMouseUp: this.stop,\n\t onMouseLeave: this.stop\n\t });\n\n\t _extends(attrs.btnUp, {\n\t onTouchStart: this.onTouchStart.bind(this, 'up'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnUpHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnUpHover: false,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n\t args[_key5] = arguments[_key5];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('up');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.btnDown, {\n\t onTouchStart: this.onTouchStart.bind(this, 'down'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnDownHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnDownHover: false,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n\t args[_key6] = arguments[_key6];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('down');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.input, {\n\t onChange: function onChange(e) {\n\t var original = e.target.value;\n\t var val = _this6._parse(original);\n\t if (isNaN(val)) {\n\t val = null;\n\t }\n\t _this6.setState({\n\t value: _this6._isStrict ? _this6._toNumber(val) : val,\n\t stringValue: original\n\t });\n\t },\n\t onKeyDown: this._onKeyDown.bind(this),\n\t onInput: function onInput() {\n\t for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n\t args[_key7] = arguments[_key7];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onInput\"].concat(args));\n\t },\n\t onSelect: function onSelect() {\n\t for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n\t args[_key8] = arguments[_key8];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onSelect\"].concat(args));\n\t },\n\t onFocus: function onFocus() {\n\t for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n\t args[_key9] = arguments[_key9];\n\t }\n\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val,\n\t stringValue: val || val === 0 ? val + \"\" : \"\"\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t });\n\t },\n\t onBlur: function onBlur() {\n\t for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n\t args[_key10] = arguments[_key10];\n\t }\n\n\t var _isStrict = _this6._isStrict;\n\t _this6._isStrict = true;\n\t args[0].persist();\n\t _this6._inputFocus = false;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onBlur\"].concat(args));\n\t _this6._isStrict = _isStrict;\n\t });\n\t }\n\t });\n\t } else {\n\t if (!noStyle && props.disabled) {\n\t _extends(attrs.input.style, css['input:disabled']);\n\t }\n\t }\n\n\t var InputTag = componentClass || 'input';\n\n\t if (mobile) {\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus }),\n\t _react2.default.createElement('i', { style: noStyle ? null : css.plus })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus })\n\t )\n\t );\n\t }\n\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowUp })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowDown })\n\t )\n\t );\n\t }\n\t }]);\n\n\t return NumericInput;\n\t}(_react.Component);\n\n\tNumericInput.propTypes = {\n\t step: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t min: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t max: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t precision: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t maxLength: _propTypes2.default.number,\n\t parse: _propTypes2.default.func,\n\t format: _propTypes2.default.func,\n\t className: _propTypes2.default.string,\n\t disabled: _propTypes2.default.bool,\n\t readOnly: _propTypes2.default.bool,\n\t required: _propTypes2.default.bool,\n\t snap: _propTypes2.default.bool,\n\t noValidate: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n\t style: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),\n\t noStyle: _propTypes2.default.bool,\n\t type: _propTypes2.default.string,\n\t pattern: _propTypes2.default.string,\n\t onFocus: _propTypes2.default.func,\n\t onBlur: _propTypes2.default.func,\n\t onKeyDown: _propTypes2.default.func,\n\t onChange: _propTypes2.default.func,\n\t onInvalid: _propTypes2.default.func,\n\t onValid: _propTypes2.default.func,\n\t onInput: _propTypes2.default.func,\n\t onSelect: _propTypes2.default.func,\n\t size: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t strict: _propTypes2.default.bool,\n\t componentClass: _propTypes2.default.string,\n\t mobile: function mobile(props, propName) {\n\t var prop = props[propName];\n\t if (prop !== true && prop !== false && prop !== 'auto' && typeof prop != 'function') {\n\t return new Error('The \"mobile\" prop must be true, false, \"auto\" or a function');\n\t }\n\t }\n\t};\n\tNumericInput.defaultProps = {\n\t step: 1,\n\t min: Number.MIN_SAFE_INTEGER || -9007199254740991,\n\t max: Number.MAX_SAFE_INTEGER || 9007199254740991,\n\t precision: null,\n\t parse: null,\n\t format: null,\n\t mobile: 'auto',\n\t strict: false,\n\t componentClass: \"input\",\n\t style: {}\n\t};\n\tNumericInput.style = {\n\t wrap: {\n\t position: 'relative',\n\t display: 'inline-block'\n\t },\n\n\t 'wrap.hasFormControl': {\n\t display: 'block'\n\t },\n\n\t arrowUp: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0 0.6ex 0.6ex 0.6ex',\n\t borderColor: 'transparent transparent rgba(0, 0, 0, 0.7)',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t arrowDown: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0.6ex 0.6ex 0 0.6ex',\n\t borderColor: 'rgba(0, 0, 0, 0.7) transparent transparent',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t plus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 2,\n\t height: 10,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-5px 0 0 -1px'\n\t },\n\n\t minus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 10,\n\t height: 2,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-1px 0 0 -5px'\n\t },\n\n\t btn: {\n\t position: 'absolute',\n\t right: 2,\n\t width: '2.26ex',\n\t borderColor: 'rgba(0,0,0,.1)',\n\t borderStyle: 'solid',\n\t textAlign: 'center',\n\t cursor: 'default',\n\t transition: 'all 0.1s',\n\t background: 'rgba(0,0,0,.1)',\n\t boxShadow: '-1px -1px 3px rgba(0,0,0,.1) inset,' + '1px 1px 3px rgba(255,255,255,.7) inset'\n\t },\n\n\t btnUp: {\n\t top: 2,\n\t bottom: '50%',\n\t borderRadius: '2px 2px 0 0',\n\t borderWidth: '1px 1px 0 1px'\n\t },\n\n\t 'btnUp.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t btnDown: {\n\t top: '50%',\n\t bottom: 2,\n\t borderRadius: '0 0 2px 2px',\n\t borderWidth: '0 1px 1px 1px'\n\t },\n\n\t 'btnDown.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t left: 2,\n\t top: 2,\n\t right: 'auto',\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t 'btn:hover': {\n\t background: 'rgba(0,0,0,.2)'\n\t },\n\n\t 'btn:active': {\n\t background: 'rgba(0,0,0,.3)',\n\t boxShadow: '0 1px 3px rgba(0,0,0,.2) inset,' + '-1px -1px 4px rgba(255,255,255,.5) inset'\n\t },\n\n\t 'btn:disabled': {\n\t opacity: 0.5,\n\t boxShadow: 'none',\n\t cursor: 'not-allowed'\n\t },\n\n\t input: {\n\t paddingRight: '3ex',\n\t boxSizing: 'border-box',\n\t fontSize: 'inherit'\n\t },\n\n\t 'input:not(.form-control)': {\n\t border: '1px solid #ccc',\n\t borderRadius: 2,\n\t paddingLeft: 4,\n\t display: 'block',\n\t WebkitAppearance: 'none',\n\t lineHeight: 'normal'\n\t },\n\n\t 'input.mobile': {\n\t paddingLeft: ' 3.4ex',\n\t paddingRight: '3.4ex',\n\t textAlign: 'center'\n\t },\n\n\t 'input:focus': {},\n\n\t 'input:disabled': {\n\t color: 'rgba(0, 0, 0, 0.3)',\n\t textShadow: '0 1px 0 rgba(255, 255, 255, 0.8)'\n\t }\n\t};\n\tNumericInput.SPEED = 50;\n\tNumericInput.DELAY = 500;\n\tNumericInput.DIRECTION_UP = \"up\";\n\tNumericInput.DIRECTION_DOWN = \"down\";\n\n\n\tmodule.exports = NumericInput;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"react\");\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"prop-types\");\n\n/***/ })\n/******/ ]);","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","/**\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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (typeof obj === 'undefined') {\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from './_curry1';\nimport _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _isArrayLike from './_isArrayLike';\nimport _xwrap from './_xwrap';\nimport bind from '../bind';\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from './_has';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n};\n\nexport default _isArguments;","import _curry1 from './internal/_curry1';\nimport _has from './internal/_has';\nimport _isArguments from './internal/_isArguments';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar _keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n} : function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n};\nvar keys = /*#__PURE__*/_curry1(_keys);\nexport default keys;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","import _objectAssign from './_objectAssign';\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _curry1 from './internal/_curry1';\nimport _of from './internal/_of';\n\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\nvar of = /*#__PURE__*/_curry1(_of);\nexport default of;","import _curry2 from './internal/_curry2';\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\nvar omit = /*#__PURE__*/_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nexport default omit;","import _cloneRegExp from './internal/_cloneRegExp';\nimport _curry2 from './internal/_curry2';\nimport _isRegExp from './internal/_isRegExp';\nimport toString from './toString';\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\nvar test = /*#__PURE__*/_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n return _cloneRegExp(pattern).test(str);\n});\nexport default test;","import _curry1 from './internal/_curry1';\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\nvar _trim = !hasProtoTrim || /*#__PURE__*/ws.trim() || ! /*#__PURE__*/zeroWidth.trim() ? function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n} : function trim(str) {\n return str.trim();\n};\nvar trim = /*#__PURE__*/_curry1(_trim);\nexport default trim;","export { default as F } from './F';\nexport { default as T } from './T';\nexport { default as __ } from './__';\nexport { default as add } from './add';\nexport { default as addIndex } from './addIndex';\nexport { default as adjust } from './adjust';\nexport { default as all } from './all';\nexport { default as allPass } from './allPass';\nexport { default as always } from './always';\nexport { default as and } from './and';\nexport { default as any } from './any';\nexport { default as anyPass } from './anyPass';\nexport { default as ap } from './ap';\nexport { default as aperture } from './aperture';\nexport { default as append } from './append';\nexport { default as apply } from './apply';\nexport { default as applySpec } from './applySpec';\nexport { default as applyTo } from './applyTo';\nexport { default as ascend } from './ascend';\nexport { default as assoc } from './assoc';\nexport { default as assocPath } from './assocPath';\nexport { default as binary } from './binary';\nexport { default as bind } from './bind';\nexport { default as both } from './both';\nexport { default as call } from './call';\nexport { default as chain } from './chain';\nexport { default as clamp } from './clamp';\nexport { default as clone } from './clone';\nexport { default as comparator } from './comparator';\nexport { default as complement } from './complement';\nexport { default as compose } from './compose';\nexport { default as composeK } from './composeK';\nexport { default as composeP } from './composeP';\nexport { default as concat } from './concat';\nexport { default as cond } from './cond';\nexport { default as construct } from './construct';\nexport { default as constructN } from './constructN';\nexport { default as contains } from './contains';\nexport { default as converge } from './converge';\nexport { default as countBy } from './countBy';\nexport { default as curry } from './curry';\nexport { default as curryN } from './curryN';\nexport { default as dec } from './dec';\nexport { default as defaultTo } from './defaultTo';\nexport { default as descend } from './descend';\nexport { default as difference } from './difference';\nexport { default as differenceWith } from './differenceWith';\nexport { default as dissoc } from './dissoc';\nexport { default as dissocPath } from './dissocPath';\nexport { default as divide } from './divide';\nexport { default as drop } from './drop';\nexport { default as dropLast } from './dropLast';\nexport { default as dropLastWhile } from './dropLastWhile';\nexport { default as dropRepeats } from './dropRepeats';\nexport { default as dropRepeatsWith } from './dropRepeatsWith';\nexport { default as dropWhile } from './dropWhile';\nexport { default as either } from './either';\nexport { default as empty } from './empty';\nexport { default as endsWith } from './endsWith';\nexport { default as eqBy } from './eqBy';\nexport { default as eqProps } from './eqProps';\nexport { default as equals } from './equals';\nexport { default as evolve } from './evolve';\nexport { default as filter } from './filter';\nexport { default as find } from './find';\nexport { default as findIndex } from './findIndex';\nexport { default as findLast } from './findLast';\nexport { default as findLastIndex } from './findLastIndex';\nexport { default as flatten } from './flatten';\nexport { default as flip } from './flip';\nexport { default as forEach } from './forEach';\nexport { default as forEachObjIndexed } from './forEachObjIndexed';\nexport { default as fromPairs } from './fromPairs';\nexport { default as groupBy } from './groupBy';\nexport { default as groupWith } from './groupWith';\nexport { default as gt } from './gt';\nexport { default as gte } from './gte';\nexport { default as has } from './has';\nexport { default as hasIn } from './hasIn';\nexport { default as head } from './head';\nexport { default as identical } from './identical';\nexport { default as identity } from './identity';\nexport { default as ifElse } from './ifElse';\nexport { default as inc } from './inc';\nexport { default as indexBy } from './indexBy';\nexport { default as indexOf } from './indexOf';\nexport { default as init } from './init';\nexport { default as innerJoin } from './innerJoin';\nexport { default as insert } from './insert';\nexport { default as insertAll } from './insertAll';\nexport { default as intersection } from './intersection';\nexport { default as intersperse } from './intersperse';\nexport { default as into } from './into';\nexport { default as invert } from './invert';\nexport { default as invertObj } from './invertObj';\nexport { default as invoker } from './invoker';\nexport { default as is } from './is';\nexport { default as isEmpty } from './isEmpty';\nexport { default as isNil } from './isNil';\nexport { default as join } from './join';\nexport { default as juxt } from './juxt';\nexport { default as keys } from './keys';\nexport { default as keysIn } from './keysIn';\nexport { default as last } from './last';\nexport { default as lastIndexOf } from './lastIndexOf';\nexport { default as length } from './length';\nexport { default as lens } from './lens';\nexport { default as lensIndex } from './lensIndex';\nexport { default as lensPath } from './lensPath';\nexport { default as lensProp } from './lensProp';\nexport { default as lift } from './lift';\nexport { default as liftN } from './liftN';\nexport { default as lt } from './lt';\nexport { default as lte } from './lte';\nexport { default as map } from './map';\nexport { default as mapAccum } from './mapAccum';\nexport { default as mapAccumRight } from './mapAccumRight';\nexport { default as mapObjIndexed } from './mapObjIndexed';\nexport { default as match } from './match';\nexport { default as mathMod } from './mathMod';\nexport { default as max } from './max';\nexport { default as maxBy } from './maxBy';\nexport { default as mean } from './mean';\nexport { default as median } from './median';\nexport { default as memoize } from './memoize';\nexport { default as memoizeWith } from './memoizeWith';\nexport { default as merge } from './merge';\nexport { default as mergeAll } from './mergeAll';\nexport { default as mergeDeepLeft } from './mergeDeepLeft';\nexport { default as mergeDeepRight } from './mergeDeepRight';\nexport { default as mergeDeepWith } from './mergeDeepWith';\nexport { default as mergeDeepWithKey } from './mergeDeepWithKey';\nexport { default as mergeWith } from './mergeWith';\nexport { default as mergeWithKey } from './mergeWithKey';\nexport { default as min } from './min';\nexport { default as minBy } from './minBy';\nexport { default as modulo } from './modulo';\nexport { default as multiply } from './multiply';\nexport { default as nAry } from './nAry';\nexport { default as negate } from './negate';\nexport { default as none } from './none';\nexport { default as not } from './not';\nexport { default as nth } from './nth';\nexport { default as nthArg } from './nthArg';\nexport { default as o } from './o';\nexport { default as objOf } from './objOf';\nexport { default as of } from './of';\nexport { default as omit } from './omit';\nexport { default as once } from './once';\nexport { default as or } from './or';\nexport { default as over } from './over';\nexport { default as pair } from './pair';\nexport { default as partial } from './partial';\nexport { default as partialRight } from './partialRight';\nexport { default as partition } from './partition';\nexport { default as path } from './path';\nexport { default as pathEq } from './pathEq';\nexport { default as pathOr } from './pathOr';\nexport { default as pathSatisfies } from './pathSatisfies';\nexport { default as pick } from './pick';\nexport { default as pickAll } from './pickAll';\nexport { default as pickBy } from './pickBy';\nexport { default as pipe } from './pipe';\nexport { default as pipeK } from './pipeK';\nexport { default as pipeP } from './pipeP';\nexport { default as pluck } from './pluck';\nexport { default as prepend } from './prepend';\nexport { default as product } from './product';\nexport { default as project } from './project';\nexport { default as prop } from './prop';\nexport { default as propEq } from './propEq';\nexport { default as propIs } from './propIs';\nexport { default as propOr } from './propOr';\nexport { default as propSatisfies } from './propSatisfies';\nexport { default as props } from './props';\nexport { default as range } from './range';\nexport { default as reduce } from './reduce';\nexport { default as reduceBy } from './reduceBy';\nexport { default as reduceRight } from './reduceRight';\nexport { default as reduceWhile } from './reduceWhile';\nexport { default as reduced } from './reduced';\nexport { default as reject } from './reject';\nexport { default as remove } from './remove';\nexport { default as repeat } from './repeat';\nexport { default as replace } from './replace';\nexport { default as reverse } from './reverse';\nexport { default as scan } from './scan';\nexport { default as sequence } from './sequence';\nexport { default as set } from './set';\nexport { default as slice } from './slice';\nexport { default as sort } from './sort';\nexport { default as sortBy } from './sortBy';\nexport { default as sortWith } from './sortWith';\nexport { default as split } from './split';\nexport { default as splitAt } from './splitAt';\nexport { default as splitEvery } from './splitEvery';\nexport { default as splitWhen } from './splitWhen';\nexport { default as startsWith } from './startsWith';\nexport { default as subtract } from './subtract';\nexport { default as sum } from './sum';\nexport { default as symmetricDifference } from './symmetricDifference';\nexport { default as symmetricDifferenceWith } from './symmetricDifferenceWith';\nexport { default as tail } from './tail';\nexport { default as take } from './take';\nexport { default as takeLast } from './takeLast';\nexport { default as takeLastWhile } from './takeLastWhile';\nexport { default as takeWhile } from './takeWhile';\nexport { default as tap } from './tap';\nexport { default as test } from './test';\nexport { default as times } from './times';\nexport { default as toLower } from './toLower';\nexport { default as toPairs } from './toPairs';\nexport { default as toPairsIn } from './toPairsIn';\nexport { default as toString } from './toString';\nexport { default as toUpper } from './toUpper';\nexport { default as transduce } from './transduce';\nexport { default as transpose } from './transpose';\nexport { default as traverse } from './traverse';\nexport { default as trim } from './trim';\nexport { default as tryCatch } from './tryCatch';\nexport { default as type } from './type';\nexport { default as unapply } from './unapply';\nexport { default as unary } from './unary';\nexport { default as uncurryN } from './uncurryN';\nexport { default as unfold } from './unfold';\nexport { default as union } from './union';\nexport { default as unionWith } from './unionWith';\nexport { default as uniq } from './uniq';\nexport { default as uniqBy } from './uniqBy';\nexport { default as uniqWith } from './uniqWith';\nexport { default as unless } from './unless';\nexport { default as unnest } from './unnest';\nexport { default as until } from './until';\nexport { default as update } from './update';\nexport { default as useWith } from './useWith';\nexport { default as values } from './values';\nexport { default as valuesIn } from './valuesIn';\nexport { default as view } from './view';\nexport { default as when } from './when';\nexport { default as where } from './where';\nexport { default as whereEq } from './whereEq';\nexport { default as without } from './without';\nexport { default as xprod } from './xprod';\nexport { default as zip } from './zip';\nexport { default as zipObj } from './zipObj';\nexport { default as zipWith } from './zipWith';","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","module.exports = {};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","module.exports = true;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","exports.f = {}.propertyIsEnumerable;\n","import styled, { css } from 'styled-components';\n\nexport default styled.label`\n display: block;\n font-size: 14px;\n ${({ position }) =>\n position === 'top'\n ? css`\n margin-bottom: 8px;\n `\n : css`\n margin-top: 8px;\n `}\n ${props =>\n css`\n ${props.css}\n `}\n`;\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _getPrototypeOf = require(\"../core-js/object/get-prototype-of\");\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _getOwnPropertyDescriptor = require(\"../core-js/object/get-own-property-descriptor\");\n\nvar _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = (0, _getOwnPropertyDescriptor2.default)(object, property);\n\n if (desc === undefined) {\n var parent = (0, _getPrototypeOf2.default)(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};","/**\n * CSS conic-gradient() polyfill\n * By Lea Verou — http://lea.verou.me\n * MIT license\n */\n\n(function(){\n\nvar π = Math.PI;\nvar τ = 2 * π;\nvar ε = .00001;\nvar deg = π/180;\n\nvar dummy = document.createElement(\"div\");\ndocument.head.appendChild(dummy);\n\nvar _ = self.ConicGradient = function(o) {\n\tvar me = this;\n\t_.all.push(this);\n\n\to = o || {};\n\n\tthis.canvas = document.createElement(\"canvas\");\n\tthis.context = this.canvas.getContext(\"2d\");\n\n\tthis.repeating = !!o.repeating;\n\n\tthis.size = o.size || Math.max(innerWidth, innerHeight);\n\n\tthis.canvas.width = this.canvas.height = this.size;\n\n\tvar stops = o.stops;\n\n\tthis.stops = (stops || \"\").split(/\\s*,(?![^(]*\\))\\s*/); // commas that are not followed by a ) without a ( first\n\n\tthis.from = 0;\n\n\tfor (var i=0; i 0) {\n\t\tvar first = this.stops[0].clone();\n\t\tfirst.pos = 0;\n\t\tthis.stops.unshift(first);\n\t}\n\n\t// Add dummy last stop or set first stop’s position to 100% if it doesn’t have one\n\tif (this.stops[this.stops.length - 1].pos === undefined) {\n\t\tthis.stops[this.stops.length - 1].pos = 1;\n\t}\n\telse if (!this.repeating && this.stops[this.stops.length - 1].pos < 1) {\n\t\tvar last = this.stops[this.stops.length - 1].clone();\n\t\tlast.pos = 1;\n\t\tthis.stops.push(last);\n\t}\n\n\tthis.stops.forEach(function(stop, i){\n\t\tif (stop.pos === undefined) {\n\t\t\t// Evenly space color stops with no position\n\t\t\tfor (var j=i+1; this[j]; j++) {\n\t\t\t\tif (this[j].pos !== undefined) {\n\t\t\t\t\tstop.pos = this[i-1].pos + (this[j].pos - this[i-1].pos)/(j-i+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (i > 0) {\n\t\t\t// Normalize color stops whose position is smaller than the position of the stop before them\n\t\t\tstop.pos = Math.max(stop.pos, this[i-1].pos);\n\t\t}\n\t}, this.stops);\n\n\tif (this.repeating) {\n\t\t// Repeat color stops until >= 1\n\t\tvar stops = this.stops.slice();\n\t\tvar lastStop = stops[stops.length-1];\n\t\tvar difference = lastStop.pos - stops[0].pos;\n\n\t\tfor (var i=0; this.stops[this.stops.length-1].pos < 1 && i<10000; i++) {\n\t\t\tfor (var j=0; j' +\n\t\t\t'' +\n\t\t\t'';\n\t},\n\n\tget png() {\n\t\treturn this.canvas.toDataURL();\n\t},\n\n\tget r() {\n\t\treturn Math.sqrt(2) * this.size / 2;\n\t},\n\n\t// Paint the conical gradient on the canvas\n\t// Algorithm inspired from http://jsdo.it/akm2/yr9B\n\tpaint: function() {\n\t\tvar c = this.context;\n\n\t\tvar radius = this.r;\n\t\tvar x = this.size / 2;\n\n\t\tvar stopIndex = 0; // The index of the current color\n\t\tvar stop = this.stops[stopIndex], prevStop;\n\n\t\tvar diff, t;\n\n\t\t// Transform coordinate system so that angles start from the top left, like in CSS\n\t\tc.translate(this.size/2, this.size/2);\n\t\tc.rotate(-90*deg);\n\t\tc.rotate(this.from*deg);\n\t\tc.translate(-this.size/2, -this.size/2);\n\n\t\tfor (var i = 0; i < 360;) {\n\t\t\tif (i/360 + ε >= stop.pos) {\n\t\t\t\t// Switch color stop\n\t\t\t\tdo {\n\t\t\t\t\tprevStop = stop;\n\n\t\t\t\t\tstopIndex++;\n\t\t\t\t\tstop = this.stops[stopIndex];\n\t\t\t\t} while(stop && stop != prevStop && stop.pos === prevStop.pos);\n\n\t\t\t\tif (!stop) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tvar sameColor = prevStop.color + \"\" === stop.color + \"\" && prevStop != stop;\n\n\t\t\t\tdiff = prevStop.color.map(function(c, i){\n\t\t\t\t\treturn stop.color[i] - c;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tt = (i/360 - prevStop.pos) / (stop.pos - prevStop.pos);\n\n\t\t\tvar interpolated = sameColor? stop.color : diff.map(function(d,i){\n\t\t\t\tvar ret = d * t + prevStop.color[i];\n\n\t\t\t\treturn i < 3? ret & 255 : ret;\n\t\t\t});\n\n\t\t\t// Draw a series of arcs, 1deg each\n\t\t\tc.fillStyle = 'rgba(' + interpolated.join(\",\") + ')';\n\t\t\tc.beginPath();\n\t\t\tc.moveTo(x, x);\n\n\t\t\tif (sameColor) {\n\t\t\t\tvar θ = 360 * (stop.pos - prevStop.pos);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar θ = .5;\n\t\t\t}\n\n\t\t\tvar beginArg = i*deg;\n\t\t\tbeginArg = Math.min(360*deg, beginArg);\n\n\t\t\t// .02: To prevent empty blank line and corresponding moire\n\t\t\t// only non-alpha colors are cared now\n\t\t\tvar endArg = beginArg + θ*deg;\n\t\t\tendArg = Math.min(360*deg, endArg + .02);\n\n\t\t\tc.arc(x, x, radius, beginArg, endArg);\n\n\t\t\tc.closePath();\n\t\t\tc.fill();\n\n\t\t\ti += θ;\n\t\t}\n\t}\n};\n\n_.ColorStop = function(gradient, stop) {\n\tthis.gradient = gradient;\n\n\tif (stop) {\n\t\tvar parts = stop.match(/^(.+?)(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?\\s*$/);\n\n\t\tthis.color = _.ColorStop.colorToRGBA(parts[1]);\n\n\t\tif (parts[2]) {\n\t\t\tvar unit = parts[3];\n\n\t\t\tif (unit == \"%\" || parts[2] === \"0\" && !unit) {\n\t\t\t\tthis.pos = parts[2]/100;\n\t\t\t}\n\t\t\telse if (unit == \"turn\") {\n\t\t\t\tthis.pos = +parts[2];\n\t\t\t}\n\t\t\telse if (unit == \"deg\") {\n\t\t\t\tthis.pos = parts[2] / 360;\n\t\t\t}\n\t\t\telse if (unit == \"grad\") {\n\t\t\t\tthis.pos = parts[2] / 400;\n\t\t\t}\n\t\t\telse if (unit == \"rad\") {\n\t\t\t\tthis.pos = parts[2] / τ;\n\t\t\t}\n\t\t}\n\n\t\tif (parts[4]) {\n\t\t\tthis.next = new _.ColorStop(gradient, parts[1] + \" \" + parts[4] + parts[5]);\n\t\t}\n\t}\n}\n\n_.ColorStop.prototype = {\n\tclone: function() {\n\t\tvar ret = new _.ColorStop(this.gradient);\n\t\tret.color = this.color;\n\t\tret.pos = this.pos;\n\n\t\treturn ret;\n\t},\n\n\ttoString: function() {\n\t\treturn \"rgba(\" + this.color.join(\", \") + \") \" + this.pos * 100 + \"%\";\n\t}\n};\n\n_.ColorStop.colorToRGBA = function(color) {\n\tif (!Array.isArray(color) && color.indexOf(\"from\") == -1) {\n\t\tdummy.style.color = color;\n\n\t\tvar rgba = getComputedStyle(dummy).color.match(/rgba?\\(([\\d.]+), ([\\d.]+), ([\\d.]+)(?:, ([\\d.]+))?\\)/);\n\n\t\tif (rgba) {\n\t\t\trgba.shift();\n\t\t\trgba = rgba.map(function(a) { return +a });\n\t\t\trgba[3] = isNaN(rgba[3])? 1 : rgba[3];\n\t\t}\n\n\t\treturn rgba || [0,0,0,0];\n\t}\n\n\treturn color;\n};\n\n})();\n\nif (self.StyleFix) {\n\t// Test if conic gradients are supported first:\n\t(function(){\n\t\tvar dummy = document.createElement(\"p\");\n\t\tdummy.style.backgroundImage = \"conic-gradient(white, black)\";\n\t\tdummy.style.backgroundImage = PrefixFree.prefix + \"conic-gradient(white, black)\";\n\n\t\tif (!dummy.style.backgroundImage) {\n\t\t\t// Not supported, use polyfill\n\t\t\tStyleFix.register(function(css, raw) {\n\t\t\t\tif (css.indexOf(\"conic-gradient\") > -1) {\n\t\t\t\t\tcss = css.replace(/(?:repeating-)?conic-gradient\\(\\s*((?:\\([^()]+\\)|[^;()}])+?)\\)/g, function(gradient, stops) {\n\t\t\t\t\t\treturn new ConicGradient({\n\t\t\t\t\t\t\tstops: stops,\n\t\t\t\t\t\t\trepeating: gradient.indexOf(\"repeating-\") > -1\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn css;\n\t\t\t});\n\t\t}\n\t})();\n}\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","!function(e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(null):\"function\"==typeof define&&define.amd?define(e(null)):window.stylis=e(null)}(function e(a){\"use strict\";var r=/^\\0+/g,c=/[\\0\\r\\f]/g,s=/: */g,t=/zoo|gra/,i=/([,: ])(transform)/g,f=/,+\\s*(?![^(]*[)])/g,n=/ +\\s*(?![^(]*[)])/g,l=/ *[\\0] */g,o=/,\\r+?/g,h=/([\\t\\r\\n ])*\\f?&/g,u=/:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g,d=/\\W+/g,b=/@(k\\w+)\\s*(\\S*)\\s*/,p=/::(place)/g,k=/:(read-only)/g,g=/\\s+(?=[{\\];=:>])/g,A=/([[}=:>])\\s+/g,C=/(\\{[^{]+?);(?=\\})/g,w=/\\s{2,}/g,v=/([^\\(])(:+) */g,m=/[svh]\\w+-[tblr]{2}/,x=/\\(\\s*(.*)\\s*\\)/g,$=/([\\s\\S]*?);/g,y=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\\w-]+)[^]*/,j=/stretch|:\\s*\\w+\\-(?:conte|avail)/,z=/([^-])(image-set\\()/,N=\"-webkit-\",S=\"-moz-\",F=\"-ms-\",W=59,q=125,B=123,D=40,E=41,G=91,H=93,I=10,J=13,K=9,L=64,M=32,P=38,Q=45,R=95,T=42,U=44,V=58,X=39,Y=34,Z=47,_=62,ee=43,ae=126,re=0,ce=12,se=11,te=107,ie=109,fe=115,ne=112,le=111,oe=105,he=99,ue=100,de=112,be=1,pe=1,ke=0,ge=1,Ae=1,Ce=1,we=0,ve=0,me=0,xe=[],$e=[],ye=0,Oe=null,je=-2,ze=-1,Ne=0,Se=1,Fe=2,We=3,qe=0,Be=1,De=\"\",Ee=\"\",Ge=\"\";function He(e,a,s,t,i){for(var f,n,o=0,h=0,u=0,d=0,g=0,A=0,C=0,w=0,m=0,$=0,y=0,O=0,j=0,z=0,R=0,we=0,$e=0,Oe=0,je=0,ze=s.length,Je=ze-1,Re=\"\",Te=\"\",Ue=\"\",Ve=\"\",Xe=\"\",Ye=\"\";R0)Te=Te.replace(c,\"\");if(Te.trim().length>0){switch(C){case M:case K:case W:case J:case I:break;default:Te+=s.charAt(R)}C=W}}if(1===$e)switch(C){case B:case q:case W:case Y:case X:case D:case E:case U:$e=0;case K:case J:case I:case M:break;default:for($e=0,je=R,g=C,R--,C=W;je0)++R,C=g;case B:je=ze}}switch(C){case B:for(g=(Te=Te.trim()).charCodeAt(0),y=1,je=++R;R0)Te=Te.replace(c,\"\");switch(A=Te.charCodeAt(1)){case ue:case ie:case fe:case Q:f=a;break;default:f=xe}if(je=(Ue=He(a,f,Ue,A,i+1)).length,me>0&&0===je)je=Te.length;if(ye>0)if(f=Ie(xe,Te,Oe),n=Pe(We,Ue,f,a,pe,be,je,A,i,t),Te=f.join(\"\"),void 0!==n)if(0===(je=(Ue=n.trim()).length))A=0,Ue=\"\";if(je>0)switch(A){case fe:Te=Te.replace(x,Me);case ue:case ie:case Q:Ue=Te+\"{\"+Ue+\"}\";break;case te:if(Ue=(Te=Te.replace(b,\"$1 $2\"+(Be>0?De:\"\")))+\"{\"+Ue+\"}\",1===Ae||2===Ae&&Le(\"@\"+Ue,3))Ue=\"@\"+N+Ue+\"@\"+Ue;else Ue=\"@\"+Ue;break;default:if(Ue=Te+Ue,t===de)Ve+=Ue,Ue=\"\"}else Ue=\"\";break;default:Ue=He(a,Ie(a,Te,Oe),Ue,t,i+1)}Xe+=Ue,O=0,$e=0,z=0,we=0,Oe=0,j=0,Te=\"\",Ue=\"\",C=s.charCodeAt(++R);break;case q:case W:if((je=(Te=(we>0?Te.replace(c,\"\"):Te).trim()).length)>1){if(0===z)if((g=Te.charCodeAt(0))===Q||g>96&&g<123)je=(Te=Te.replace(\" \",\":\")).length;if(ye>0)if(void 0!==(n=Pe(Se,Te,a,e,pe,be,Ve.length,t,i,t)))if(0===(je=(Te=n.trim()).length))Te=\"\\0\\0\";switch(g=Te.charCodeAt(0),A=Te.charCodeAt(1),g){case re:break;case L:if(A===oe||A===he){Ye+=Te+s.charAt(R);break}default:if(Te.charCodeAt(je-1)===V)break;Ve+=Ke(Te,g,A,Te.charCodeAt(2))}}O=0,$e=0,z=0,we=0,Oe=0,Te=\"\",C=s.charCodeAt(++R)}}switch(C){case J:case I:if(h+d+u+o+ve===0)switch($){case E:case X:case Y:case L:case ae:case _:case T:case ee:case Z:case Q:case V:case U:case W:case B:case q:break;default:if(z>0)$e=1}if(h===Z)h=0;else if(ge+O===0&&t!==te&&Te.length>0)we=1,Te+=\"\\0\";if(ye*qe>0)Pe(Ne,Te,a,e,pe,be,Ve.length,t,i,t);be=1,pe++;break;case W:case q:if(h+d+u+o===0){be++;break}default:switch(be++,Re=s.charAt(R),C){case K:case M:if(d+o+h===0)switch(w){case U:case V:case K:case M:Re=\"\";break;default:if(C!==M)Re=\" \"}break;case re:Re=\"\\\\0\";break;case ce:Re=\"\\\\f\";break;case se:Re=\"\\\\v\";break;case P:if(d+h+o===0&&ge>0)Oe=1,we=1,Re=\"\\f\"+Re;break;case 108:if(d+h+o+ke===0&&z>0)switch(R-z){case 2:if(w===ne&&s.charCodeAt(R-3)===V)ke=w;case 8:if(m===le)ke=m}break;case V:if(d+h+o===0)z=R;break;case U:if(h+u+d+o===0)we=1,Re+=\"\\r\";break;case Y:case X:if(0===h)d=d===C?0:0===d?C:d;break;case G:if(d+h+u===0)o++;break;case H:if(d+h+u===0)o--;break;case E:if(d+h+o===0)u--;break;case D:if(d+h+o===0){if(0===O)switch(2*w+3*m){case 533:break;default:y=0,O=1}u++}break;case L:if(h+u+d+o+z+j===0)j=1;break;case T:case Z:if(d+o+u>0)break;switch(h){case 0:switch(2*C+3*s.charCodeAt(R+1)){case 235:h=Z;break;case 220:je=R,h=T}break;case T:if(C===Z&&w===T&&je+2!==R){if(33===s.charCodeAt(je+2))Ve+=s.substring(je,R+1);Re=\"\",h=0}}}if(0===h){if(ge+d+o+j===0&&t!==te&&C!==W)switch(C){case U:case ae:case _:case ee:case E:case D:if(0===O){switch(w){case K:case M:case I:case J:Re+=\"\\0\";break;default:Re=\"\\0\"+Re+(C===U?\"\":\"\\0\")}we=1}else switch(C){case D:if(z+7===R&&108===w)z=0;O=++y;break;case E:if(0==(O=--y))we=1,Re+=\"\\0\"}break;case K:case M:switch(w){case re:case B:case q:case W:case U:case ce:case K:case M:case I:case J:break;default:if(0===O)we=1,Re+=\"\\0\"}}if(Te+=Re,C!==M&&C!==K)$=C}}m=w,w=C,R++}if(je=Ve.length,me>0)if(0===je&&0===Xe.length&&0===a[0].length==false)if(t!==ie||1===a.length&&(ge>0?Ee:Ge)===a[0])je=a.join(\",\").length+2;if(je>0){if(f=0===ge&&t!==te?function(e){for(var a,r,s=0,t=e.length,i=Array(t);s1)continue;if(u=n.charCodeAt(n.length-1),d=r.charCodeAt(0),a=\"\",0!==o)switch(u){case T:case ae:case _:case ee:case M:case D:break;default:a=\" \"}switch(d){case P:r=a+Ee;case ae:case _:case ee:case M:case E:case D:break;case G:r=a+r+Ee;break;case V:switch(2*r.charCodeAt(1)+3*r.charCodeAt(2)){case 530:if(Ce>0){r=a+r.substring(8,h-1);break}default:if(o<1||f[o-1].length<1)r=a+Ee+r}break;case U:a=\"\";default:if(h>1&&r.indexOf(\":\")>0)r=a+r.replace(v,\"$1\"+Ee+\"$2\");else r=a+r+Ee}n+=r}i[s]=n.replace(c,\"\").trim()}return i}(a):a,ye>0)if(void 0!==(n=Pe(Fe,Ve,f,e,pe,be,je,t,i,t))&&0===(Ve=n).length)return Ye+Ve+Xe;if(Ve=f.join(\",\")+\"{\"+Ve+\"}\",Ae*ke!=0){if(2===Ae&&!Le(Ve,2))ke=0;switch(ke){case le:Ve=Ve.replace(k,\":\"+S+\"$1\")+Ve;break;case ne:Ve=Ve.replace(p,\"::\"+N+\"input-$1\")+Ve.replace(p,\"::\"+S+\"$1\")+Ve.replace(p,\":\"+F+\"input-$1\")+Ve}ke=0}}return Ye+Ve+Xe}function Ie(e,a,r){var c=a.trim().split(o),s=c,t=c.length,i=e.length;switch(i){case 0:case 1:for(var f=0,n=0===i?\"\":e[0]+\" \";f0&&ge>0)return s.replace(u,\"$1\").replace(h,\"$1\"+Ge);break;default:return e.trim()+s.replace(h,\"$1\"+e.trim())}default:if(r*ge>0&&s.indexOf(\"\\f\")>0)return s.replace(h,(e.charCodeAt(0)===V?\"\":\"$1\")+e.trim())}return e+s}function Ke(e,a,r,c){var l,o=0,h=e+\";\",u=2*a+3*r+4*c;if(944===u)return function(e){var a=e.length,r=e.indexOf(\":\",9)+1,c=e.substring(0,r).trim(),s=e.substring(r,a-1).trim();switch(e.charCodeAt(9)*Be){case 0:break;case Q:if(110!==e.charCodeAt(10))break;default:for(var t=s.split((s=\"\",f)),i=0,r=0,a=t.length;iL&&h<90||h>96&&h<123||h===R||h===Q&&l.charCodeAt(1)!==Q))switch(isNaN(parseFloat(l))+(-1!==l.indexOf(\"(\"))){case 1:switch(l){case\"infinite\":case\"alternate\":case\"backwards\":case\"running\":case\"normal\":case\"forwards\":case\"both\":case\"none\":case\"linear\":case\"ease\":case\"ease-in\":case\"ease-out\":case\"ease-in-out\":case\"paused\":case\"reverse\":case\"alternate-reverse\":case\"inherit\":case\"initial\":case\"unset\":case\"step-start\":case\"step-end\":break;default:l+=De}}o[r++]=l}s+=(0===i?\"\":\",\")+o.join(\" \")}}if(s=c+s+\";\",1===Ae||2===Ae&&Le(s,1))return N+s+s;return s}(h);else if(0===Ae||2===Ae&&!Le(h,1))return h;switch(u){case 1015:return 97===h.charCodeAt(10)?N+h+h:h;case 951:return 116===h.charCodeAt(3)?N+h+h:h;case 963:return 110===h.charCodeAt(5)?N+h+h:h;case 1009:if(100!==h.charCodeAt(4))break;case 969:case 942:return N+h+h;case 978:return N+h+S+h+h;case 1019:case 983:return N+h+S+h+F+h+h;case 883:if(h.charCodeAt(8)===Q)return N+h+h;if(h.indexOf(\"image-set(\",11)>0)return h.replace(z,\"$1\"+N+\"$2\")+h;return h;case 932:if(h.charCodeAt(4)===Q)switch(h.charCodeAt(5)){case 103:return N+\"box-\"+h.replace(\"-grow\",\"\")+N+h+F+h.replace(\"grow\",\"positive\")+h;case 115:return N+h+F+h.replace(\"shrink\",\"negative\")+h;case 98:return N+h+F+h.replace(\"basis\",\"preferred-size\")+h}return N+h+F+h+h;case 964:return N+h+F+\"flex-\"+h+h;case 1023:if(99!==h.charCodeAt(8))break;return l=h.substring(h.indexOf(\":\",15)).replace(\"flex-\",\"\").replace(\"space-between\",\"justify\"),N+\"box-pack\"+l+N+h+F+\"flex-pack\"+l+h;case 1005:return t.test(h)?h.replace(s,\":\"+N)+h.replace(s,\":\"+S)+h:h;case 1e3:switch(o=(l=h.substring(13).trim()).indexOf(\"-\")+1,l.charCodeAt(0)+l.charCodeAt(o)){case 226:l=h.replace(m,\"tb\");break;case 232:l=h.replace(m,\"tb-rl\");break;case 220:l=h.replace(m,\"lr\");break;default:return h}return N+h+F+l+h;case 1017:if(-1===h.indexOf(\"sticky\",9))return h;case 975:switch(o=(h=e).length-10,u=(l=(33===h.charCodeAt(o)?h.substring(0,o):h).substring(e.indexOf(\":\",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(l.charCodeAt(8)<111)break;case 115:h=h.replace(l,N+l)+\";\"+h;break;case 207:case 102:h=h.replace(l,N+(u>102?\"inline-\":\"\")+\"box\")+\";\"+h.replace(l,N+l)+\";\"+h.replace(l,F+l+\"box\")+\";\"+h}return h+\";\";case 938:if(h.charCodeAt(5)===Q)switch(h.charCodeAt(6)){case 105:return l=h.replace(\"-items\",\"\"),N+h+N+\"box-\"+l+F+\"flex-\"+l+h;case 115:return N+h+F+\"flex-item-\"+h.replace(y,\"\")+h;default:return N+h+F+\"flex-line-pack\"+h.replace(\"align-content\",\"\").replace(y,\"\")+h}break;case 973:case 989:if(h.charCodeAt(3)!==Q||122===h.charCodeAt(4))break;case 931:case 953:if(true===j.test(e))if(115===(l=e.substring(e.indexOf(\":\")+1)).charCodeAt(0))return Ke(e.replace(\"stretch\",\"fill-available\"),a,r,c).replace(\":fill-available\",\":stretch\");else return h.replace(l,N+l)+h.replace(l,S+l.replace(\"fill-\",\"\"))+h;break;case 962:if(h=N+h+(102===h.charCodeAt(5)?F+h:\"\")+h,r+c===211&&105===h.charCodeAt(13)&&h.indexOf(\"transform\",10)>0)return h.substring(0,h.indexOf(\";\",27)+1).replace(i,\"$1\"+N+\"$2\")+h}return h}function Le(e,a){var r=e.indexOf(1===a?\":\":\"{\"),c=e.substring(0,3!==a?r:10),s=e.substring(r+1,e.length-1);return Oe(2!==a?c:c.replace(O,\"$1\"),s,a)}function Me(e,a){var r=Ke(a,a.charCodeAt(0),a.charCodeAt(1),a.charCodeAt(2));return r!==a+\";\"?r.replace($,\" or ($1)\").substring(4):\"(\"+a+\")\"}function Pe(e,a,r,c,s,t,i,f,n,l){for(var o,h=0,u=a;h0)De=s.replace(d,t===G?\"\":\"-\");if(t=1,1===ge)Ge=s;else Ee=s;var i,f=[Ge];if(ye>0)if(void 0!==(i=Pe(ze,r,f,f,pe,be,0,0,0,0))&&\"string\"==typeof i)r=i;var n=He(xe,f,r,0,0);if(ye>0)if(void 0!==(i=Pe(je,n,f,f,pe,be,n.length,0,0,0))&&\"string\"!=typeof(n=i))t=0;return De=\"\",Ge=\"\",Ee=\"\",ke=0,pe=1,be=1,we*t==0?n:n.replace(c,\"\").replace(g,\"\").replace(A,\"$1\").replace(C,\"$1\").replace(w,\" \")}if(Te.use=function e(a){switch(a){case void 0:case null:ye=$e.length=0;break;default:if(\"function\"==typeof a)$e[ye++]=a;else if(\"object\"==typeof a)for(var r=0,c=a.length;r\n import(/* webpackChunkName: \"colorpicker\" */ '../fragments/ColorPicker.react')\n);\n/**\n * A color picker.\n */\nexport default class ColorPicker extends Component {\n render() {\n return (\n \n \n \n );\n }\n}\n\nColorPicker.defaultProps = {\n size: 225,\n theme: light,\n labelPosition: 'top',\n persisted_props: ['value'],\n persistence_type: 'local'\n};\n\nColorPicker.propTypes = {\n /**\n * The ID used to identify the color picker in Dash callbacks\n */\n id: PropTypes.string,\n\n /**\n * Color value of the picker\n */\n value: PropTypes.shape({\n /**\n * Hex string\n */\n hex: PropTypes.string,\n\n /**\n * RGB/RGBA object\n */\n rbg: PropTypes.shape({\n r: PropTypes.number,\n g: PropTypes.number,\n b: PropTypes.number,\n a: PropTypes.number\n })\n }),\n\n /**\n * If true, color cannot be picked.\n */\n disabled: PropTypes.bool,\n\n /**\n * Size (width) of the component in pixels\n */\n size: PropTypes.number,\n\n /**\n * Theme configuration to be set by a ThemeProvider\n */\n theme: PropTypes.object,\n\n /**\n * Description to be displayed alongside the control. To control styling,\n * pass an object with label and style properties\n */\n label: PropTypes.oneOfType([\n /**\n * Label to be displayed\n */\n PropTypes.string,\n\n /**\n * The style and label\n */\n PropTypes.shape({\n style: PropTypes.object,\n label: PropTypes.string\n })\n ]),\n\n /**\n * Where the indicator label is positioned\n */\n labelPosition: PropTypes.oneOf(['top', 'bottom']),\n\n /**\n * Class to apply to the root component element\n */\n className: PropTypes.string,\n\n /**\n * Dash-assigned callback that gets fired when\n * the color picker's value changes\n */\n setProps: PropTypes.func,\n\n /**\n * Style to apply to the root component element\n */\n style: PropTypes.object,\n\n /**\n * Used to allow user interactions in this component to be persisted when\n * the component - or the page - is refreshed. If `persisted` is truthy and\n * hasn't changed from its previous value, a `value` that the user has\n * changed while using the app will keep that change, as long as\n * the new `value` also matches what was given originally.\n * Used in conjunction with `persistence_type`.\n */\n persistence: PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.number]),\n\n /**\n * Properties whose user interactions will persist after refreshing the\n * component or the page. Since only `value` is allowed this prop can\n * normally be ignored.\n */\n persisted_props: PropTypes.arrayOf(PropTypes.oneOf(['value'])),\n\n /**\n * Where persisted user changes will be stored:\n * memory: only kept in memory, reset on page refresh.\n * local: window.localStorage, data is kept after the browser quit.\n * session: window.sessionStorage, data is cleared once the browser quit.\n */\n persistence_type: PropTypes.oneOf(['local', 'session', 'memory'])\n};\n\nexport const defaultProps = ColorPicker.defaultProps;\nexport const propTypes = ColorPicker.propTypes;\n","// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","// 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","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = require('./_hide');\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","(function (factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory()) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory()) :\n\t\t\t(window['stylisRuleSheet'] = factory())\n}(function () {\n\n\t'use strict'\n\n\treturn function (insertRule) {\n\t\tvar delimiter = '/*|*/'\n\t\tvar needle = delimiter+'}'\n\n\t\tfunction toSheet (block) {\n\t\t\tif (block)\n\t\t\t\ttry {\n\t\t\t\t\tinsertRule(block + '}')\n\t\t\t\t} catch (e) {}\n\t\t}\n\n\t\treturn function ruleSheet (context, content, selectors, parents, line, column, length, ns, depth, at) {\n\t\t\tswitch (context) {\n\t\t\t\t// property\n\t\t\t\tcase 1:\n\t\t\t\t\t// @import\n\t\t\t\t\tif (depth === 0 && content.charCodeAt(0) === 64)\n\t\t\t\t\t\treturn insertRule(content+';'), ''\n\t\t\t\t\tbreak\n\t\t\t\t// selector\n\t\t\t\tcase 2:\n\t\t\t\t\tif (ns === 0)\n\t\t\t\t\t\treturn content + delimiter\n\t\t\t\t\tbreak\n\t\t\t\t// at-rule\n\t\t\t\tcase 3:\n\t\t\t\t\tswitch (ns) {\n\t\t\t\t\t\t// @font-face, @page\n\t\t\t\t\t\tcase 102:\n\t\t\t\t\t\tcase 112:\n\t\t\t\t\t\t\treturn insertRule(selectors[0]+content), ''\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn content + (at === 0 ? delimiter : '')\n\t\t\t\t\t}\n\t\t\t\tcase -2:\n\t\t\t\t\tcontent.split(needle).forEach(toSheet)\n\t\t\t}\n\t\t}\n\t}\n}))\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","/*!\n * TinyGradient 0.4.3\n * Copyright 2014-2018 Damien \"Mistic\" Sorel (http://www.strangeplanet.fr)\n * Licensed under MIT (http://opensource.org/licenses/MIT)\n */\n\n(function (root, factory) {\n if (typeof module !== \"undefined\" && module.exports) {\n module.exports = factory(require('tinycolor2'));\n }\n else if (typeof define === 'function' && define.amd) {\n define(['tinycolor2'], factory);\n }\n else {\n root.tinygradient = factory(root.tinycolor);\n }\n}(this, function (tinycolor) {\n \"use strict\";\n\n var RGBA_MAX = {r: 256, g: 256, b: 256, a: 1};\n var HSVA_MAX = {h: 360, s: 1, v: 1, a: 1};\n\n /**\n * Linearly compute the step size between start and end (not normalized)\n * @param {Object} start - rgba or hsva\n * @param {Object} end - rgba or hsva\n * @param {int} steps - number of desired steps\n * @return {Object} rgba or hsva\n */\n function stepize(start, end, steps) {\n var step = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n step[k] = steps === 0 ? 0 : (end[k] - start[k]) / steps;\n }\n }\n\n return step;\n }\n\n /**\n * Compute the final step color\n * @param {Object} step - rgba or hsva from `stepize`\n * @param {Object} start - rgba or hsva\n * @param {int} i - color index\n * @param {Object} max - rgba or hsva of maximum values for each channel\n * @return {Object} rgba or hsva\n */\n function interpolate(step, start, i, max) {\n var color = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n color[k] = step[k] * i + start[k];\n color[k] = color[k] < 0 ? color[k] + max[k] : ( max[k] !== 1 ? color[k] % max[k] : color[k] );\n }\n }\n\n return color;\n }\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateRgb(stop1, stop2, steps) {\n var start = stop1.color.toRgb(),\n end = stop2.color.toRgb(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n color;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, RGBA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @param {Boolean} trigonometric - true to step in trigonometric order\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateHsv(stop1, stop2, steps, trigonometric) {\n var start = stop1.color.toHsv(),\n end = stop2.color.toHsv(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n diff, color;\n\n // recompute hue\n if ((start.h <= end.h && !trigonometric) || (start.h >= end.h && trigonometric)) {\n diff = end.h - start.h;\n }\n else if (trigonometric) {\n diff = 360 - end.h + start.h;\n }\n else {\n diff = 360 - start.h + end.h;\n }\n step.h = Math.pow(-1, trigonometric ? 1 : 0) * Math.abs(diff) / steps;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, HSVA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Compute substeps between each stops\n * @param {Object[]} stops\n * @param {int} steps\n * @return {int[]}\n */\n function computeSubsteps(stops, steps) {\n var l = stops.length;\n\n // validation\n steps = parseInt(steps);\n\n if (isNaN(steps) || steps < 2) {\n throw new Error('Invalid number of steps (< 2)');\n }\n if (steps < l) {\n throw new Error('Number of steps cannot be inferior to number of stops');\n }\n\n // compute substeps from stop positions\n var substeps = [];\n\n for (var i = 1; i < l; i++) {\n var step = (steps - 1) * (stops[i].pos - stops[i - 1].pos);\n substeps.push(Math.max(1, Math.round(step)));\n }\n\n // adjust number of steps\n var totalSubsteps = 1;\n for (var n = l - 1; n--;) totalSubsteps += substeps[n];\n\n while (totalSubsteps !== steps) {\n if (totalSubsteps < steps) {\n var min = Math.min.apply(null, substeps);\n substeps[substeps.indexOf(min)]++;\n totalSubsteps++;\n }\n else {\n var max = Math.max.apply(null, substeps);\n substeps[substeps.indexOf(max)]--;\n totalSubsteps--;\n }\n }\n\n return substeps;\n }\n\n /**\n * Compute the color at a specific position\n * @param {Object[]} stops\n * @param {float} pos\n * @param {string} method\n * @param {Object} max\n * @returns {tinycolor}\n */\n function computeAt(stops, pos, method, max) {\n if (pos < 0 || pos > 1) {\n throw new Error('Position must be between 0 and 1');\n }\n\n var start, end;\n for (var i = 0, l = stops.length; i < l - 1; i++) {\n if (pos >= stops[i].pos && pos < stops[i + 1].pos) {\n start = stops[i];\n end = stops[i + 1];\n break;\n }\n }\n\n if (!start) {\n start = end = stops[stops.length - 1];\n }\n\n var step = stepize(start.color[method](), end.color[method](), (end.pos - start.pos) * 100);\n var color = interpolate(step, start.color[method](), Math.round((pos - start.pos) * 100), max);\n return tinycolor(color);\n }\n\n /**\n * @class tinygradient\n * @param {*} stops\n */\n var TinyGradient = function (stops) {\n // varargs\n if (arguments.length === 1) {\n if (!(arguments[0] instanceof Array)) {\n throw new Error('\"stops\" is not an array');\n }\n stops = arguments[0];\n }\n else {\n stops = Array.prototype.slice.call(arguments);\n }\n\n // if we are called as a function, call using new instead\n if (!(this instanceof TinyGradient)) {\n return new TinyGradient(stops);\n }\n\n // validation\n if (stops.length < 2) {\n throw new Error('Invalid number of stops (< 2)');\n }\n\n var havingPositions = stops[0].pos !== undefined,\n l = stops.length,\n p = -1;\n // create tinycolor objects and clean positions\n this.stops = stops.map(function (stop, i) {\n var hasPosition = stop.pos !== undefined;\n if (havingPositions ^ hasPosition) {\n throw new Error('Cannot mix positionned and not posionned color stops');\n }\n\n if (hasPosition) {\n stop = {\n color: tinycolor(stop.color),\n pos : stop.pos\n };\n\n if (stop.pos < 0 || stop.pos > 1) {\n throw new Error('Color stops positions must be between 0 and 1');\n }\n else if (stop.pos <= p) {\n throw new Error('Color stops positions are not ordered');\n }\n p = stop.pos;\n }\n else {\n stop = {\n color: tinycolor(stop),\n pos : i / (l - 1)\n };\n }\n\n return stop;\n });\n\n if (this.stops[0].pos !== 0) {\n this.stops.unshift({\n color: this.stops[0].color,\n pos : 0\n });\n }\n if (this.stops[this.stops.length - 1].pos !== 1) {\n this.stops.push({\n color: this.stops[this.stops.length - 1].color,\n pos : 1\n });\n }\n };\n\n /**\n * Return new instance with reversed stops\n * @return {tinygradient}\n */\n TinyGradient.prototype.reverse = function () {\n var stops = [];\n\n this.stops.forEach(function (stop) {\n stops.push({\n color: stop.color,\n pos : 1 - stop.pos\n });\n });\n\n return new TinyGradient(stops.reverse());\n };\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {int} steps\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.rgb = function (steps) {\n var substeps = computeSubsteps(this.stops, steps),\n gradient = [];\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {int} steps\n * @param {Boolean|String} [mode=false]\n * - false to step in clockwise\n * - true to step in trigonometric order\n * - 'short' to use the shortest way\n * - 'long' to use the longest way\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.hsv = function (steps, mode) {\n var substeps = computeSubsteps(this.stops, steps),\n trigonometric = mode === true,\n parametrized = typeof mode === 'string',\n gradient = [],\n start, end, trig;\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n start = this.stops[i].color.toHsv();\n end = this.stops[i + 1].color.toHsv();\n\n if (parametrized) {\n trig = (start.h < end.h && end.h - start.h < 180) || (start.h > end.h && start.h - end.h > 180);\n }\n\n // rgb interpolation if one of the steps in grayscale\n if (start.s === 0 || end.s === 0) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n else {\n gradient = gradient.concat(interpolateHsv(this.stops[i], this.stops[i + 1], substeps[i],\n (mode === 'long' && trig) || (mode === 'short' && !trig) || (!parametrized && trigonometric)\n ));\n }\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate CSS3 command (no prefix) for this gradient\n * @param {String} [mode=linear] - 'linear' or 'radial'\n * @param {String} [direction] - default is 'to right' or 'ellipse at center'\n * @return {String}\n */\n TinyGradient.prototype.css = function (mode, direction) {\n mode = mode || 'linear';\n direction = direction || (mode === 'linear' ? 'to right' : 'ellipse at center');\n\n var css = mode + '-gradient(' + direction;\n this.stops.forEach(function (stop) {\n css += ', ' + stop.color.toRgbString() + ' ' + (stop.pos * 100) + '%';\n });\n css += ')';\n return css;\n };\n\n /**\n * Returns the color at specific position with RGBa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.rgbAt = function (pos) {\n return computeAt(this.stops, pos, 'toRgb', RGBA_MAX);\n };\n\n /**\n * Returns the color at specific position with HSVa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.hsvAt = function (pos) {\n return computeAt(this.stops, pos, 'toHsv', HSVA_MAX);\n };\n\n var STATIC_FNS = {\n 'rgb' : 1,\n 'hsv' : 2,\n 'css' : 2,\n 'rgbAt': 1,\n 'hsvAt': 1\n };\n\n Object.keys(STATIC_FNS).forEach(function (fn) {\n TinyGradient[fn] = function () {\n var colors = Array.prototype.slice.call(arguments);\n var args = colors.splice(-STATIC_FNS[fn]);\n var gradient = new TinyGradient(colors);\n return gradient[fn].apply(gradient, args);\n };\n });\n\n // export\n return TinyGradient;\n}));","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = addEventListener;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventObject = require('./EventObject');\n\nvar _EventObject2 = _interopRequireDefault(_EventObject);\n\nfunction addEventListener(target, eventType, callback, option) {\n function wrapCallback(e) {\n var ne = new _EventObject2['default'](e);\n callback.call(target, ne);\n }\n\n if (target.addEventListener) {\n var _ret = (function () {\n var useCapture = false;\n if (typeof option === 'object') {\n useCapture = option.capture || false;\n } else if (typeof option === 'boolean') {\n useCapture = option;\n }\n\n target.addEventListener(eventType, wrapCallback, option || false);\n\n return {\n v: {\n remove: function remove() {\n target.removeEventListener(eventType, wrapCallback, useCapture);\n }\n }\n };\n })();\n\n if (typeof _ret === 'object') return _ret.v;\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, wrapCallback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, wrapCallback);\n }\n };\n }\n}\n\nmodule.exports = exports['default'];","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\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 }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.nipplejs = f()}})(function(){var define,module,exports;\n'use strict';\n\n// Constants\nvar isTouch = !!('ontouchstart' in window);\nvar isPointer = window.PointerEvent ? true : false;\nvar isMSPointer = window.MSPointerEvent ? true : false;\nvar events = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend, touchcancel'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n },\n pointer: {\n start: 'pointerdown',\n move: 'pointermove',\n end: 'pointerup, pointercancel'\n },\n MSPointer: {\n start: 'MSPointerDown',\n move: 'MSPointerMove',\n end: 'MSPointerUp'\n }\n};\nvar toBind;\nvar secondBind = {};\nif (isPointer) {\n toBind = events.pointer;\n} else if (isMSPointer) {\n toBind = events.MSPointer;\n} else if (isTouch) {\n toBind = events.touch;\n secondBind = events.mouse;\n} else {\n toBind = events.mouse;\n}\n\n///////////////////////\n/// UTILS ///\n///////////////////////\n\nvar u = {};\nu.distance = function (p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return Math.sqrt((dx * dx) + (dy * dy));\n};\n\nu.angle = function(p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return u.degrees(Math.atan2(dy, dx));\n};\n\nu.findCoord = function(p, d, a) {\n var b = {x: 0, y: 0};\n a = u.radians(a);\n b.x = p.x - d * Math.cos(a);\n b.y = p.y - d * Math.sin(a);\n return b;\n};\n\nu.radians = function(a) {\n return a * (Math.PI / 180);\n};\n\nu.degrees = function(a) {\n return a * (180 / Math.PI);\n};\n\nu.bindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.addEventListener) {\n el.addEventListener(type, handler, false);\n } else if (el.attachEvent) {\n el.attachEvent(type, handler);\n }\n }\n};\n\nu.unbindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.removeEventListener) {\n el.removeEventListener(type, handler);\n } else if (el.detachEvent) {\n el.detachEvent(type, handler);\n }\n }\n};\n\nu.trigger = function (el, type, data) {\n var evt = new CustomEvent(type, data);\n el.dispatchEvent(evt);\n};\n\nu.prepareEvent = function (evt) {\n evt.preventDefault();\n return evt.type.match(/^touch/) ? evt.changedTouches : evt;\n};\n\nu.getScroll = function () {\n var x = (window.pageXOffset !== undefined) ?\n window.pageXOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollLeft;\n\n var y = (window.pageYOffset !== undefined) ?\n window.pageYOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollTop;\n return {\n x: x,\n y: y\n };\n};\n\nu.applyPosition = function (el, pos) {\n if (pos.top || pos.right || pos.bottom || pos.left) {\n el.style.top = pos.top;\n el.style.right = pos.right;\n el.style.bottom = pos.bottom;\n el.style.left = pos.left;\n } else {\n el.style.left = pos.x + 'px';\n el.style.top = pos.y + 'px';\n }\n};\n\nu.getTransitionStyle = function (property, values, time) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (typeof values === 'string') {\n obj[i] = values + ' ' + time;\n } else {\n var st = '';\n for (var j = 0, max = values.length; j < max; j += 1) {\n st += values[j] + ' ' + time + ', ';\n }\n obj[i] = st.slice(0, -2);\n }\n }\n }\n return obj;\n};\n\nu.getVendorStyle = function (property, value) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n obj[i] = value;\n }\n }\n return obj;\n};\n\nu.configStylePropertyObject = function (prop) {\n var obj = {};\n obj[prop] = '';\n var vendors = ['webkit', 'Moz', 'o'];\n vendors.forEach(function (vendor) {\n obj[vendor + prop.charAt(0).toUpperCase() + prop.slice(1)] = '';\n });\n return obj;\n};\n\nu.extend = function (objA, objB) {\n for (var i in objB) {\n if (objB.hasOwnProperty(i)) {\n objA[i] = objB[i];\n }\n }\n return objA;\n};\n\n// Overwrite only what's already present\nu.safeExtend = function (objA, objB) {\n var obj = {};\n for (var i in objA) {\n if (objA.hasOwnProperty(i) && objB.hasOwnProperty(i)) {\n obj[i] = objB[i];\n } else if (objA.hasOwnProperty(i)) {\n obj[i] = objA[i];\n }\n }\n return obj;\n};\n\n// Map for array or unique item.\nu.map = function (ar, fn) {\n if (ar.length) {\n for (var i = 0, max = ar.length; i < max; i += 1) {\n fn(ar[i]);\n }\n } else {\n fn(ar);\n }\n};\n\n///////////////////////\n/// SUPER CLASS ///\n///////////////////////\n\nfunction Super () {};\n\n// Basic event system.\nSuper.prototype.on = function (arg, cb) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n self._handlers_[type] = self._handlers_[type] || [];\n self._handlers_[type].push(cb);\n }\n return self;\n};\n\nSuper.prototype.off = function (type, cb) {\n var self = this;\n self._handlers_ = self._handlers_ || {};\n\n if (type === undefined) {\n self._handlers_ = {};\n } else if (cb === undefined) {\n self._handlers_[type] = null;\n } else if (self._handlers_[type] &&\n self._handlers_[type].indexOf(cb) >= 0) {\n self._handlers_[type].splice(self._handlers_[type].indexOf(cb), 1);\n }\n\n return self;\n};\n\nSuper.prototype.trigger = function (arg, data) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (self._handlers_[type] && self._handlers_[type].length) {\n self._handlers_[type].forEach(function (handler) {\n handler.call(self, {\n type: type,\n target: self\n }, data);\n });\n }\n }\n};\n\n// Configuration\nSuper.prototype.config = function (options) {\n var self = this;\n self.options = self.defaults || {};\n if (options) {\n self.options = u.safeExtend(self.options, options);\n }\n};\n\n// Bind internal events.\nSuper.prototype.bindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n self._domHandlers_[type] = function () {\n if (typeof self['on' + type] === 'function') {\n self['on' + type].apply(self, arguments);\n } else {\n console.warn('[WARNING] : Missing \"on' + type + '\" handler.');\n }\n };\n\n u.bindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.bindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n return self;\n};\n\n// Unbind dom events.\nSuper.prototype.unbindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n u.unbindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.unbindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n delete self._domHandlers_[type];\n\n return this;\n};\n\n///////////////////////\n/// THE NIPPLE ///\n///////////////////////\n\nfunction Nipple (collection, options) {\n this.identifier = options.identifier;\n this.position = options.position;\n this.frontPosition = options.frontPosition;\n this.collection = collection;\n\n // Defaults\n this.defaults = {\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n mode: 'dynamic',\n zone: document.body,\n lockX: false,\n lockY: false\n };\n\n this.config(options);\n\n // Overwrites\n if (this.options.mode === 'dynamic') {\n this.options.restOpacity = 0;\n }\n\n this.id = Nipple.id;\n Nipple.id += 1;\n this.buildEl()\n .stylize();\n\n // Nipple's API.\n this.instance = {\n el: this.ui.el,\n on: this.on.bind(this),\n off: this.off.bind(this),\n show: this.show.bind(this),\n hide: this.hide.bind(this),\n add: this.addToDom.bind(this),\n remove: this.removeFromDom.bind(this),\n destroy: this.destroy.bind(this),\n resetDirection: this.resetDirection.bind(this),\n computeDirection: this.computeDirection.bind(this),\n trigger: this.trigger.bind(this),\n position: this.position,\n frontPosition: this.frontPosition,\n ui: this.ui,\n identifier: this.identifier,\n id: this.id,\n options: this.options\n };\n\n return this.instance;\n};\n\nNipple.prototype = new Super();\nNipple.constructor = Nipple;\nNipple.id = 0;\n\n// Build the dom element of the Nipple instance.\nNipple.prototype.buildEl = function (options) {\n this.ui = {};\n\n if (this.options.dataOnly) {\n return this;\n }\n\n this.ui.el = document.createElement('div');\n this.ui.back = document.createElement('div');\n this.ui.front = document.createElement('div');\n\n this.ui.el.className = 'nipple collection_' + this.collection.id;\n this.ui.back.className = 'back';\n this.ui.front.className = 'front';\n\n this.ui.el.setAttribute('id', 'nipple_' + this.collection.id +\n '_' + this.id);\n\n this.ui.el.appendChild(this.ui.back);\n this.ui.el.appendChild(this.ui.front);\n\n return this;\n};\n\n// Apply CSS to the Nipple instance.\nNipple.prototype.stylize = function () {\n if (this.options.dataOnly) {\n return this;\n }\n var animTime = this.options.fadeTime + 'ms';\n var borderStyle = u.getVendorStyle('borderRadius', '50%');\n var transitStyle = u.getTransitionStyle('transition', 'opacity', animTime);\n var styles = {};\n styles.el = {\n position: 'absolute',\n opacity: this.options.restOpacity,\n display: 'block',\n 'zIndex': 999\n };\n\n styles.back = {\n position: 'absolute',\n display: 'block',\n width: this.options.size + 'px',\n height: this.options.size + 'px',\n marginLeft: -this.options.size / 2 + 'px',\n marginTop: -this.options.size / 2 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n styles.front = {\n width: this.options.size / 2 + 'px',\n height: this.options.size / 2 + 'px',\n position: 'absolute',\n display: 'block',\n marginLeft: -this.options.size / 4 + 'px',\n marginTop: -this.options.size / 4 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n u.extend(styles.el, transitStyle);\n u.extend(styles.back, borderStyle);\n u.extend(styles.front, borderStyle);\n\n this.applyStyles(styles);\n\n return this;\n};\n\nNipple.prototype.applyStyles = function (styles) {\n // Apply styles\n for (var i in this.ui) {\n if (this.ui.hasOwnProperty(i)) {\n for (var j in styles[i]) {\n this.ui[i].style[j] = styles[i][j];\n }\n }\n }\n\n return this;\n};\n\n// Inject the Nipple instance into DOM.\nNipple.prototype.addToDom = function () {\n // We're not adding it if we're dataOnly or already in dom.\n if (this.options.dataOnly || document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.appendChild(this.ui.el);\n return this;\n};\n\n// Remove the Nipple instance from DOM.\nNipple.prototype.removeFromDom = function () {\n if (this.options.dataOnly || !document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.removeChild(this.ui.el);\n return this;\n};\n\n// Entirely destroy this nipple\nNipple.prototype.destroy = function () {\n clearTimeout(this.removeTimeout);\n clearTimeout(this.showTimeout);\n clearTimeout(this.restTimeout);\n this.trigger('destroyed', this.instance);\n this.removeFromDom();\n this.off();\n};\n\n// Fade in the Nipple instance.\nNipple.prototype.show = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.addToDom();\n\n self.restCallback();\n\n setTimeout(function () {\n self.ui.el.style.opacity = 1;\n }, 0);\n\n self.showTimeout = setTimeout(function () {\n self.trigger('shown', self.instance);\n if (typeof cb === 'function') {\n cb.call(this);\n }\n }, self.options.fadeTime);\n\n return self;\n};\n\n// Fade out the Nipple instance.\nNipple.prototype.hide = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n self.ui.el.style.opacity = self.options.restOpacity;\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.removeTimeout = setTimeout(\n function () {\n var display = self.options.mode === 'dynamic' ? 'none' : 'block';\n self.ui.el.style.display = display;\n if (typeof cb === 'function') {\n cb.call(self);\n }\n\n self.trigger('hidden', self.instance);\n },\n self.options.fadeTime\n );\n if (self.options.restJoystick) {\n self.restPosition();\n }\n\n return self;\n};\n\nNipple.prototype.restPosition = function (cb) {\n var self = this;\n self.frontPosition = {\n x: 0,\n y: 0\n };\n var animTime = self.options.fadeTime + 'ms';\n\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition',\n ['top', 'left'], animTime);\n\n var styles = {front: {}};\n styles.front = {\n left: self.frontPosition.x + 'px',\n top: self.frontPosition.y + 'px'\n };\n\n self.applyStyles(transitStyle);\n self.applyStyles(styles);\n\n self.restTimeout = setTimeout(\n function () {\n if (typeof cb === 'function') {\n cb.call(self);\n }\n self.restCallback();\n },\n self.options.fadeTime\n );\n};\n\nNipple.prototype.restCallback = function () {\n var self = this;\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition', 'none', '');\n self.applyStyles(transitStyle);\n self.trigger('rested', self.instance);\n};\n\nNipple.prototype.resetDirection = function () {\n // Fully rebuild the object to let the iteration possible.\n this.direction = {\n x: false,\n y: false,\n angle: false\n };\n};\n\nNipple.prototype.computeDirection = function (obj) {\n var rAngle = obj.angle.radian;\n var angle45 = Math.PI / 4;\n var angle90 = Math.PI / 2;\n var direction, directionX, directionY;\n\n // Angular direction\n // \\ UP /\n // \\ /\n // LEFT RIGHT\n // / \\\n // /DOWN \\\n //\n if (\n rAngle > angle45 &&\n rAngle < (angle45 * 3) &&\n !obj.lockX\n ) {\n direction = 'up';\n } else if (\n rAngle > -angle45 &&\n rAngle <= angle45 &&\n !obj.lockY\n ) {\n direction = 'left';\n } else if (\n rAngle > (-angle45 * 3) &&\n rAngle <= -angle45 &&\n !obj.lockX\n ) {\n direction = 'down';\n } else if (!obj.lockY) {\n direction = 'right';\n }\n\n // Plain direction\n // UP |\n // _______ | RIGHT\n // LEFT |\n // DOWN |\n if (!obj.lockY) {\n if (rAngle > -angle90 && rAngle < angle90) {\n directionX = 'left';\n } else {\n directionX = 'right';\n }\n }\n\n if (!obj.lockX) {\n if (rAngle > 0) {\n directionY = 'up';\n } else {\n directionY = 'down';\n }\n }\n\n if (obj.force > this.options.threshold) {\n var oldDirection = {};\n for (var i in this.direction) {\n if (this.direction.hasOwnProperty(i)) {\n oldDirection[i] = this.direction[i];\n }\n }\n\n var same = {};\n\n this.direction = {\n x: directionX,\n y: directionY,\n angle: direction\n };\n\n obj.direction = this.direction;\n\n for (var i in oldDirection) {\n if (oldDirection[i] === this.direction[i]) {\n same[i] = true;\n }\n }\n\n // If all 3 directions are the same, we don't trigger anything.\n if (same.x && same.y && same.angle) {\n return obj;\n }\n\n if (!same.x || !same.y) {\n this.trigger('plain', obj);\n }\n\n if (!same.x) {\n this.trigger('plain:' + directionX, obj);\n }\n\n if (!same.y) {\n this.trigger('plain:' + directionY, obj);\n }\n\n if (!same.angle) {\n this.trigger('dir dir:' + direction, obj);\n }\n }\n return obj;\n};\n\n/* global Nipple, Super */\n\n///////////////////////////\n/// THE COLLECTION ///\n///////////////////////////\n\nfunction Collection (manager, options) {\n var self = this;\n self.nipples = [];\n self.idles = [];\n self.actives = [];\n self.ids = [];\n self.pressureIntervals = {};\n self.manager = manager;\n self.id = Collection.id;\n Collection.id += 1;\n\n // Defaults\n self.defaults = {\n zone: document.body,\n multitouch: false,\n maxNumberOfNipples: 10,\n mode: 'dynamic',\n position: {top: 0, left: 0},\n catchDistance: 200,\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n lockX: false,\n lockY: false\n };\n\n self.config(options);\n\n // Overwrites\n if (self.options.mode === 'static' || self.options.mode === 'semi') {\n self.options.multitouch = false;\n }\n\n if (!self.options.multitouch) {\n self.options.maxNumberOfNipples = 1;\n }\n\n self.updateBox();\n self.prepareNipples();\n self.bindings();\n self.begin();\n\n return self.nipples;\n}\n\nCollection.prototype = new Super();\nCollection.constructor = Collection;\nCollection.id = 0;\n\nCollection.prototype.prepareNipples = function () {\n var self = this;\n var nips = self.nipples;\n\n // Public API Preparation.\n nips.on = self.on.bind(self);\n nips.off = self.off.bind(self);\n nips.options = self.options;\n nips.destroy = self.destroy.bind(self);\n nips.ids = self.ids;\n nips.id = self.id;\n nips.processOnMove = self.processOnMove.bind(self);\n nips.processOnEnd = self.processOnEnd.bind(self);\n nips.get = function (id) {\n if (id === undefined) {\n return nips[0];\n }\n for (var i = 0, max = nips.length; i < max; i += 1) {\n if (nips[i].identifier === id) {\n return nips[i];\n }\n }\n return false;\n };\n};\n\nCollection.prototype.bindings = function () {\n var self = this;\n // Touch start event.\n self.bindEvt(self.options.zone, 'start');\n // Avoid native touch actions (scroll, zoom etc...) on the zone.\n self.options.zone.style.touchAction = 'none';\n self.options.zone.style.msTouchAction = 'none';\n};\n\nCollection.prototype.begin = function () {\n var self = this;\n var opts = self.options;\n\n // We place our static nipple\n // if needed.\n if (opts.mode === 'static') {\n var nipple = self.createNipple(\n opts.position,\n self.manager.getIdentifier()\n );\n // Add it to the dom.\n nipple.add();\n // Store it in idles.\n self.idles.push(nipple);\n }\n};\n\n// Nipple Factory\nCollection.prototype.createNipple = function (position, identifier) {\n var self = this;\n var scroll = u.getScroll();\n var toPutOn = {};\n var opts = self.options;\n\n if (position.x && position.y) {\n toPutOn = {\n x: position.x -\n (scroll.x + self.box.left),\n y: position.y -\n (scroll.y + self.box.top)\n };\n } else if (\n position.top ||\n position.right ||\n position.bottom ||\n position.left\n ) {\n\n // We need to compute the position X / Y of the joystick.\n var dumb = document.createElement('DIV');\n dumb.style.display = 'hidden';\n dumb.style.top = position.top;\n dumb.style.right = position.right;\n dumb.style.bottom = position.bottom;\n dumb.style.left = position.left;\n dumb.style.position = 'absolute';\n\n opts.zone.appendChild(dumb);\n var dumbBox = dumb.getBoundingClientRect();\n opts.zone.removeChild(dumb);\n\n toPutOn = position;\n position = {\n x: dumbBox.left + scroll.x,\n y: dumbBox.top + scroll.y\n };\n }\n\n var nipple = new Nipple(self, {\n color: opts.color,\n size: opts.size,\n threshold: opts.threshold,\n fadeTime: opts.fadeTime,\n dataOnly: opts.dataOnly,\n restJoystick: opts.restJoystick,\n restOpacity: opts.restOpacity,\n mode: opts.mode,\n identifier: identifier,\n position: position,\n zone: opts.zone,\n frontPosition: {\n x: 0,\n y: 0\n }\n });\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.el, toPutOn);\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n self.nipples.push(nipple);\n self.trigger('added ' + nipple.identifier + ':added', nipple);\n self.manager.trigger('added ' + nipple.identifier + ':added', nipple);\n\n self.bindNipple(nipple);\n\n return nipple;\n};\n\nCollection.prototype.updateBox = function () {\n var self = this;\n self.box = self.options.zone.getBoundingClientRect();\n};\n\nCollection.prototype.bindNipple = function (nipple) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's id.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed.\n nipple.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n nipple.on('shown hidden rested dir plain', handler);\n nipple.on('dir:up dir:right dir:down dir:left', handler);\n nipple.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nCollection.prototype.pressureFn = function (touch, nipple, identifier) {\n var self = this;\n var previousPressure = 0;\n clearInterval(self.pressureIntervals[identifier]);\n // Create an interval that will read the pressure every 100ms\n self.pressureIntervals[identifier] = setInterval(function () {\n var pressure = touch.force || touch.pressure ||\n touch.webkitForce || 0;\n if (pressure !== previousPressure) {\n nipple.trigger('pressure', pressure);\n self.trigger('pressure ' +\n nipple.identifier + ':pressure', pressure);\n previousPressure = pressure;\n }\n }.bind(self), 100);\n};\n\nCollection.prototype.onstart = function (evt) {\n var self = this;\n var opts = self.options;\n evt = u.prepareEvent(evt);\n\n // Update the box position\n self.updateBox();\n\n var process = function (touch) {\n // If we can create new nipples\n // meaning we don't have more active nipples than we should.\n if (self.actives.length < opts.maxNumberOfNipples) {\n self.processOnStart(touch);\n }\n };\n\n u.map(evt, process);\n\n // We ask upstream to bind the document\n // on 'move' and 'end'\n self.manager.bindDocument();\n return false;\n};\n\nCollection.prototype.processOnStart = function (evt) {\n var self = this;\n var opts = self.options;\n var indexInIdles;\n var identifier = self.manager.getIdentifier(evt);\n var pressure = evt.force || evt.pressure || evt.webkitForce || 0;\n var position = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var nipple = self.getOrCreate(identifier, position);\n\n // Update its touch identifier\n if (nipple.identifier !== identifier) {\n self.manager.removeIdentifier(nipple.identifier);\n }\n nipple.identifier = identifier;\n\n var process = function (nip) {\n // Trigger the start.\n nip.trigger('start', nip);\n self.trigger('start ' + nip.id + ':start', nip);\n\n nip.show();\n if (pressure > 0) {\n self.pressureFn(evt, nip, nip.identifier);\n }\n // Trigger the first move event.\n self.processOnMove(evt);\n };\n\n // Transfer it from idles to actives.\n if ((indexInIdles = self.idles.indexOf(nipple)) >= 0) {\n self.idles.splice(indexInIdles, 1);\n }\n\n // Store the nipple in the actives array\n self.actives.push(nipple);\n self.ids.push(nipple.identifier);\n\n if (opts.mode !== 'semi') {\n process(nipple);\n } else {\n // In semi we check the distance of the touch\n // to decide if we have to reset the nipple\n var distance = u.distance(position, nipple.position);\n if (distance <= opts.catchDistance) {\n process(nipple);\n } else {\n nipple.destroy();\n self.processOnStart(evt);\n return;\n }\n }\n\n return nipple;\n};\n\nCollection.prototype.getOrCreate = function (identifier, position) {\n var self = this;\n var opts = self.options;\n var nipple;\n\n // If we're in static or semi, we might already have an active.\n if (/(semi|static)/.test(opts.mode)) {\n // Get the active one.\n // TODO: Multi-touche for semi and static will start here.\n // Return the nearest one.\n nipple = self.idles[0];\n if (nipple) {\n self.idles.splice(0, 1);\n return nipple;\n }\n\n if (opts.mode === 'semi') {\n // If we're in semi mode, we need to create one.\n return self.createNipple(position, identifier);\n }\n\n console.warn('Coudln\\'t find the needed nipple.');\n return false;\n }\n // In dynamic, we create a new one.\n nipple = self.createNipple(position, identifier);\n return nipple;\n};\n\nCollection.prototype.processOnMove = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n\n if (!nipple) {\n // This is here just for safety.\n // It shouldn't happen.\n console.error('Found zombie joystick with ID ' + identifier);\n self.manager.removeIdentifier(identifier);\n return;\n }\n\n nipple.identifier = identifier;\n\n var size = nipple.options.size / 2;\n var pos = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var dist = u.distance(pos, nipple.position);\n var angle = u.angle(pos, nipple.position);\n var rAngle = u.radians(angle);\n var force = dist / size;\n\n // If distance is bigger than nipple's size\n // we clamp the position.\n if (dist > size) {\n dist = size;\n pos = u.findCoord(nipple.position, dist, angle);\n }\n\n var xPosition = pos.x - nipple.position.x\n var yPosition = pos.y - nipple.position.y\n\n if (opts.lockX){\n yPosition = 0\n }\n if (opts.lockY) {\n xPosition = 0\n }\n\n nipple.frontPosition = {\n x: xPosition,\n y: yPosition\n };\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n\n // Prepare event's datas.\n var toSend = {\n identifier: nipple.identifier,\n position: pos,\n force: force,\n pressure: evt.force || evt.pressure || evt.webkitForce || 0,\n distance: dist,\n angle: {\n radian: rAngle,\n degree: angle\n },\n instance: nipple,\n lockX: opts.lockX,\n lockY: opts.lockY\n };\n\n // Compute the direction's datas.\n toSend = nipple.computeDirection(toSend);\n\n // Offset angles to follow units circle.\n toSend.angle = {\n radian: u.radians(180 - angle),\n degree: 180 - angle\n };\n\n // Send everything to everyone.\n nipple.trigger('move', toSend);\n self.trigger('move ' + nipple.id + ':move', toSend);\n};\n\nCollection.prototype.processOnEnd = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n var removedIdentifier = self.manager.removeIdentifier(nipple.identifier);\n\n if (!nipple) {\n return;\n }\n\n if (!opts.dataOnly) {\n nipple.hide(function () {\n if (opts.mode === 'dynamic') {\n nipple.trigger('removed', nipple);\n self.trigger('removed ' + nipple.id + ':removed', nipple);\n self.manager\n .trigger('removed ' + nipple.id + ':removed', nipple);\n nipple.destroy();\n }\n });\n }\n\n // Clear the pressure interval reader\n clearInterval(self.pressureIntervals[nipple.identifier]);\n\n // Reset the direciton of the nipple, to be able to trigger a new direction\n // on start.\n nipple.resetDirection();\n\n nipple.trigger('end', nipple);\n self.trigger('end ' + nipple.id + ':end', nipple);\n\n // Remove identifier from our bank.\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Clean our actives array.\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n\n if (/(semi|static)/.test(opts.mode)) {\n // Transfer nipple from actives to idles\n // if we're in semi or static mode.\n self.idles.push(nipple);\n } else if (self.nipples.indexOf(nipple) >= 0) {\n // Only if we're not in semi or static mode\n // we can remove the instance.\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n\n // We unbind move and end.\n self.manager.unbindDocument();\n\n // We add back the identifier of the idle nipple;\n if (/(semi|static)/.test(opts.mode)) {\n self.manager.ids[removedIdentifier.id] = removedIdentifier.identifier;\n }\n};\n\n// Remove destroyed nipple from the lists\nCollection.prototype.onDestroyed = function(evt, nipple) {\n var self = this;\n if (self.nipples.indexOf(nipple) >= 0) {\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n if (self.idles.indexOf(nipple) >= 0) {\n self.idles.splice(self.idles.indexOf(nipple), 1);\n }\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Remove the identifier from our bank\n self.manager.removeIdentifier(nipple.identifier);\n\n // We unbind move and end.\n self.manager.unbindDocument();\n};\n\n// Cleanly destroy the manager\nCollection.prototype.destroy = function () {\n var self = this;\n self.unbindEvt(self.options.zone, 'start');\n\n // Destroy nipples.\n self.nipples.forEach(function(nipple) {\n nipple.destroy();\n });\n\n // Clean 3DTouch intervals.\n for (var i in self.pressureIntervals) {\n if (self.pressureIntervals.hasOwnProperty(i)) {\n clearInterval(self.pressureIntervals[i]);\n }\n }\n\n // Notify the manager passing the instance\n self.trigger('destroyed', self.nipples);\n // We unbind move and end.\n self.manager.unbindDocument();\n // Unbind everything.\n self.off();\n};\n\n/* global u, Super, Collection */\n\n///////////////////////\n/// MANAGER ///\n///////////////////////\n\nfunction Manager (options) {\n var self = this;\n self.ids = {};\n self.index = 0;\n self.collections = [];\n\n self.config(options);\n self.prepareCollections();\n\n // Listen for resize, to reposition every joysticks\n var resizeTimer;\n u.bindEvt(window, 'resize', function (evt) {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(function () {\n var pos;\n var scroll = u.getScroll();\n self.collections.forEach(function (collection) {\n collection.forEach(function (nipple) {\n pos = nipple.el.getBoundingClientRect();\n nipple.position = {\n x: scroll.x + pos.left,\n y: scroll.y + pos.top\n };\n });\n });\n }, 100);\n });\n\n return self.collections;\n};\n\nManager.prototype = new Super();\nManager.constructor = Manager;\n\nManager.prototype.prepareCollections = function () {\n var self = this;\n // Public API Preparation.\n self.collections.create = self.create.bind(self);\n // Listen to anything\n self.collections.on = self.on.bind(self);\n // Unbind general events\n self.collections.off = self.off.bind(self);\n // Destroy everything\n self.collections.destroy = self.destroy.bind(self);\n // Get any nipple\n self.collections.get = function (id) {\n var nipple;\n self.collections.every(function (collection) {\n if (nipple = collection.get(id)) {\n return false;\n }\n return true;\n });\n return nipple;\n };\n};\n\nManager.prototype.create = function (options) {\n return this.createCollection(options);\n};\n\n// Collection Factory\nManager.prototype.createCollection = function (options) {\n var self = this;\n var collection = new Collection(self, options);\n\n self.bindCollection(collection);\n self.collections.push(collection);\n\n return collection;\n};\n\nManager.prototype.bindCollection = function (collection) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's identifier.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed we clean.\n collection.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n collection.on('shown hidden rested dir plain', handler);\n collection.on('dir:up dir:right dir:down dir:left', handler);\n collection.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nManager.prototype.bindDocument = function () {\n var self = this;\n // Bind only if not already binded\n if (!self.binded) {\n self.bindEvt(document, 'move')\n .bindEvt(document, 'end');\n self.binded = true;\n }\n};\n\nManager.prototype.unbindDocument = function (force) {\n var self = this;\n // If there are no touch left\n // unbind the document.\n if (!Object.keys(self.ids).length || force === true) {\n self.unbindEvt(document, 'move')\n .unbindEvt(document, 'end');\n self.binded = false;\n }\n};\n\nManager.prototype.getIdentifier = function (evt) {\n var id;\n // If no event, simple increment\n if (!evt) {\n id = this.index;\n } else {\n // Extract identifier from event object.\n // Unavailable in mouse events so replaced by latest increment.\n id = evt.identifier === undefined ? evt.pointerId : evt.identifier;\n if (id === undefined) {\n id = this.latest || 0;\n }\n }\n\n if (this.ids[id] === undefined) {\n this.ids[id] = this.index;\n this.index += 1;\n }\n\n // Keep the latest id used in case we're using an unidentified mouseEvent\n this.latest = id;\n return this.ids[id];\n};\n\nManager.prototype.removeIdentifier = function (identifier) {\n var removed = {};\n for (var id in this.ids) {\n if (this.ids[id] === identifier) {\n removed.id = id;\n removed.identifier = this.ids[id];\n delete this.ids[id];\n break;\n }\n }\n return removed;\n};\n\nManager.prototype.onmove = function (evt) {\n var self = this;\n self.onAny('move', evt);\n return false;\n};\n\nManager.prototype.onend = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.oncancel = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.onAny = function (which, evt) {\n var self = this;\n var id;\n var processFn = 'processOn' + which.charAt(0).toUpperCase() +\n which.slice(1);\n evt = u.prepareEvent(evt);\n var processColl = function (e, id, coll) {\n if (coll.ids.indexOf(id) >= 0) {\n coll[processFn](e);\n // Mark the event to avoid cleaning it later.\n e._found_ = true;\n }\n };\n var processEvt = function (e) {\n id = self.getIdentifier(e);\n u.map(self.collections, processColl.bind(null, e, id));\n // If the event isn't handled by any collection,\n // we need to clean its identifier.\n if (!e._found_) {\n self.removeIdentifier(id);\n }\n };\n\n u.map(evt, processEvt);\n\n return false;\n};\n\n// Cleanly destroy the manager\nManager.prototype.destroy = function () {\n var self = this;\n self.unbindDocument(true);\n self.ids = {};\n self.index = 0;\n self.collections.forEach(function(collection) {\n collection.destroy();\n });\n self.off();\n};\n\n// When a collection gets destroyed\n// we clean behind.\nManager.prototype.onDestroyed = function (evt, coll) {\n var self = this;\n if (self.collections.indexOf(coll) < 0) {\n return false;\n }\n self.collections.splice(self.collections.indexOf(coll), 1);\n};\n\nvar factory = new Manager();\nreturn {\n create: function (options) {\n return factory.create(options);\n },\n factory: factory\n};\n\n});\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","/**\r\n * Returns the object type of the given payload\r\n *\r\n * @param {*} payload\r\n * @returns {string}\r\n */\r\nfunction getType(payload) {\r\n return Object.prototype.toString.call(payload).slice(8, -1);\r\n}\r\n/**\r\n * Returns whether the payload is undefined\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isUndefined(payload) {\r\n return getType(payload) === 'Undefined';\r\n}\r\n/**\r\n * Returns whether the payload is null\r\n *\r\n * @param {*} payload\r\n * @returns {payload is null}\r\n */\r\nfunction isNull(payload) {\r\n return getType(payload) === 'Null';\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isPlainObject(payload) {\r\n if (getType(payload) !== 'Object')\r\n return false;\r\n return (payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype);\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isObject(payload) {\r\n return isPlainObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isAnyObject(payload) {\r\n return getType(payload) === 'Object';\r\n}\r\n/**\r\n * Returns whether the payload is an object like a type passed in < >\r\n *\r\n * Usage: isObjectLike<{id: any}>(payload) // will make sure it's an object and has an `id` prop.\r\n *\r\n * @template T this must be passed in < >\r\n * @param {*} payload\r\n * @returns {payload is T}\r\n */\r\nfunction isObjectLike(payload) {\r\n return isAnyObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a function\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Function}\r\n */\r\nfunction isFunction(payload) {\r\n return getType(payload) === 'Function';\r\n}\r\n/**\r\n * Returns whether the payload is an array\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isArray(payload) {\r\n return getType(payload) === 'Array';\r\n}\r\n/**\r\n * Returns whether the payload is a string\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isString(payload) {\r\n return getType(payload) === 'String';\r\n}\r\n/**\r\n * Returns whether the payload is a string, BUT returns false for ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isFullString(payload) {\r\n return isString(payload) && payload !== '';\r\n}\r\n/**\r\n * Returns whether the payload is ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isEmptyString(payload) {\r\n return payload === '';\r\n}\r\n/**\r\n * Returns whether the payload is a number\r\n *\r\n * This will return false for NaN\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\r\nfunction isNumber(payload) {\r\n return (getType(payload) === 'Number' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a boolean\r\n *\r\n * @param {*} payload\r\n * @returns {payload is boolean}\r\n */\r\nfunction isBoolean(payload) {\r\n return getType(payload) === 'Boolean';\r\n}\r\n/**\r\n * Returns whether the payload is a regular expression\r\n *\r\n * @param {*} payload\r\n * @returns {payload is RegExp}\r\n */\r\nfunction isRegExp(payload) {\r\n return getType(payload) === 'RegExp';\r\n}\r\n/**\r\n * Returns whether the payload is a date, and that the date is Valid\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Date}\r\n */\r\nfunction isDate(payload) {\r\n return (getType(payload) === 'Date' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a Symbol\r\n *\r\n * @param {*} payload\r\n * @returns {payload is symbol}\r\n */\r\nfunction isSymbol(payload) {\r\n return (getType(payload) === 'Symbol');\r\n}\r\n/**\r\n * Returns whether the payload is a primitive type (eg. Boolean | Null | Undefined | Number | String | Symbol)\r\n *\r\n * @param {*} payload\r\n * @returns {(payload is boolean | null | undefined | number | string | symbol)}\r\n */\r\nfunction isPrimitive(payload) {\r\n return (isBoolean(payload) ||\r\n isNull(payload) ||\r\n isUndefined(payload) ||\r\n isNumber(payload) ||\r\n isString(payload) ||\r\n isSymbol(payload));\r\n}\r\n/**\r\n * Does a generic check to check that the given payload is of a given type.\r\n * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!);\r\n * It will, however, differentiate between object and null\r\n *\r\n * @template T\r\n * @param {*} payload\r\n * @param {T} type\r\n * @throws {TypeError} Will throw type error if type is an invalid type\r\n * @returns {payload is T}\r\n */\r\nfunction isType(payload, type) {\r\n if (!(type instanceof Function)) {\r\n throw new TypeError('Type must be a function');\r\n }\r\n if (!type.hasOwnProperty('prototype')) {\r\n throw new TypeError('Type is not a class');\r\n }\r\n // Classes usually have names (as functions usually have names)\r\n var name = type.name;\r\n return (getType(payload) === name) || Boolean(payload && (payload.constructor === type));\r\n}\n\nexport { getType, isUndefined, isNull, isPlainObject, isObject, isAnyObject, isObjectLike, isFunction, isArray, isString, isFullString, isEmptyString, isNumber, isBoolean, isRegExp, isDate, isSymbol, isPrimitive, isType };\n","import { isArray, isPlainObject, isSymbol } from 'is-what';\n\nfunction assignProp(carry, key, newVal, originalObject) {\r\n var propType = originalObject.propertyIsEnumerable(key)\r\n ? 'enumerable'\r\n : 'nonenumerable';\r\n if (propType === 'enumerable')\r\n carry[key] = newVal;\r\n if (propType === 'nonenumerable') {\r\n Object.defineProperty(carry, key, {\r\n value: newVal,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n });\r\n }\r\n}\r\nfunction mergeRecursively(origin, newComer, extensions) {\r\n // work directly on newComer if its not an object\r\n if (!isPlainObject(newComer)) {\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newComer = extend(origin, newComer);\r\n });\r\n }\r\n return newComer;\r\n }\r\n // define newObject to merge all values upon\r\n var newObject = {};\r\n if (isPlainObject(origin)) {\r\n var props_1 = Object.getOwnPropertyNames(origin);\r\n var symbols_1 = Object.getOwnPropertySymbols(origin);\r\n newObject = props_1.concat(symbols_1).reduce(function (carry, key) {\r\n // @ts-ignore\r\n var targetVal = origin[key];\r\n if ((!isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key)) ||\r\n (isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key))) {\r\n assignProp(carry, key, targetVal, origin);\r\n }\r\n return carry;\r\n }, {});\r\n }\r\n var props = Object.getOwnPropertyNames(newComer);\r\n var symbols = Object.getOwnPropertySymbols(newComer);\r\n var result = props.concat(symbols).reduce(function (carry, key) {\r\n // re-define the origin and newComer as targetVal and newVal\r\n var newVal = newComer[key];\r\n var targetVal = (isPlainObject(origin))\r\n // @ts-ignore\r\n ? origin[key]\r\n : undefined;\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newVal = extend(targetVal, newVal);\r\n });\r\n }\r\n // When newVal is an object do the merge recursively\r\n if (targetVal !== undefined && isPlainObject(newVal)) {\r\n newVal = mergeRecursively(targetVal, newVal, extensions);\r\n }\r\n assignProp(carry, key, newVal, newComer);\r\n return carry;\r\n }, newObject);\r\n return result;\r\n}\r\n/**\r\n * Merge anything recursively.\r\n * Objects get merged, special objects (classes etc.) are re-assigned \"as is\".\r\n * Basic types overwrite objects or other basic types.\r\n *\r\n * @param {(IConfig | any)} origin\r\n * @param {...any[]} newComers\r\n * @returns the result\r\n */\r\nfunction merge(origin) {\r\n var newComers = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n newComers[_i - 1] = arguments[_i];\r\n }\r\n var extensions = null;\r\n var base = origin;\r\n if (isPlainObject(origin) && origin.extensions && Object.keys(origin).length === 1) {\r\n base = {};\r\n extensions = origin.extensions;\r\n }\r\n return newComers.reduce(function (result, newComer) {\r\n return mergeRecursively(result, newComer, extensions);\r\n }, base);\r\n}\n\nfunction concatArrays(originVal, newVal) {\r\n if (isArray(originVal) && isArray(newVal)) {\r\n // concat logic\r\n return originVal.concat(newVal);\r\n }\r\n return newVal; // always return newVal as fallback!!\r\n}\n\nexport default merge;\nexport { merge, concatArrays };\n","/** @license React v16.8.6\n * react-is.production.min.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'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (colorNames.hasOwnProperty(name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar keyword = /(\\D+)/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\n\t\tif (!rgb) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = (parseFloat(match[1]) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = num.toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function () { /* empty */ };\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","/**\n * @ignore\n * event object for dom\n * @author yiminghe@gmail.com\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventBaseObject = require('./EventBaseObject');\n\nvar _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar TRUE = true;\nvar FALSE = false;\nvar commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];\n\nfunction isNullOrUndefined(w) {\n return w === null || w === undefined;\n}\n\nvar eventNormalizers = [{\n reg: /^key/,\n props: ['char', 'charCode', 'key', 'keyCode', 'which'],\n fix: function fix(event, nativeEvent) {\n if (isNullOrUndefined(event.which)) {\n event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;\n }\n\n // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)\n if (event.metaKey === undefined) {\n event.metaKey = event.ctrlKey;\n }\n }\n}, {\n reg: /^touch/,\n props: ['touches', 'changedTouches', 'targetTouches']\n}, {\n reg: /^hashchange$/,\n props: ['newURL', 'oldURL']\n}, {\n reg: /^gesturechange$/i,\n props: ['rotation', 'scale']\n}, {\n reg: /^(mousewheel|DOMMouseScroll)$/,\n props: [],\n fix: function fix(event, nativeEvent) {\n var deltaX = undefined;\n var deltaY = undefined;\n var delta = undefined;\n var wheelDelta = nativeEvent.wheelDelta;\n var axis = nativeEvent.axis;\n var wheelDeltaY = nativeEvent.wheelDeltaY;\n var wheelDeltaX = nativeEvent.wheelDeltaX;\n var detail = nativeEvent.detail;\n\n // ie/webkit\n if (wheelDelta) {\n delta = wheelDelta / 120;\n }\n\n // gecko\n if (detail) {\n // press control e.detail == 1 else e.detail == 3\n delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);\n }\n\n // Gecko\n if (axis !== undefined) {\n if (axis === event.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = 0 - delta;\n } else if (axis === event.VERTICAL_AXIS) {\n deltaX = 0;\n deltaY = delta;\n }\n }\n\n // Webkit\n if (wheelDeltaY !== undefined) {\n deltaY = wheelDeltaY / 120;\n }\n if (wheelDeltaX !== undefined) {\n deltaX = -1 * wheelDeltaX / 120;\n }\n\n // 默认 deltaY (ie)\n if (!deltaX && !deltaY) {\n deltaY = delta;\n }\n\n if (deltaX !== undefined) {\n /**\n * deltaX of mousewheel event\n * @property deltaX\n * @member Event.DomEvent.Object\n */\n event.deltaX = deltaX;\n }\n\n if (deltaY !== undefined) {\n /**\n * deltaY of mousewheel event\n * @property deltaY\n * @member Event.DomEvent.Object\n */\n event.deltaY = deltaY;\n }\n\n if (delta !== undefined) {\n /**\n * delta of mousewheel event\n * @property delta\n * @member Event.DomEvent.Object\n */\n event.delta = delta;\n }\n }\n}, {\n reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,\n props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],\n fix: function fix(event, nativeEvent) {\n var eventDoc = undefined;\n var doc = undefined;\n var body = undefined;\n var target = event.target;\n var button = nativeEvent.button;\n\n // Calculate pageX/Y if missing and clientX/Y available\n if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {\n eventDoc = target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // which for click: 1 === left; 2 === middle; 3 === right\n // do not use button\n if (!event.which && button !== undefined) {\n if (button & 1) {\n event.which = 1;\n } else if (button & 2) {\n event.which = 3;\n } else if (button & 4) {\n event.which = 2;\n } else {\n event.which = 0;\n }\n }\n\n // add relatedTarget, if necessary\n if (!event.relatedTarget && event.fromElement) {\n event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;\n }\n\n return event;\n }\n}];\n\nfunction retTrue() {\n return TRUE;\n}\n\nfunction retFalse() {\n return FALSE;\n}\n\nfunction DomEventObject(nativeEvent) {\n var type = nativeEvent.type;\n\n var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';\n\n _EventBaseObject2['default'].call(this);\n\n this.nativeEvent = nativeEvent;\n\n // in case dom event has been mark as default prevented by lower dom node\n var isDefaultPrevented = retFalse;\n if ('defaultPrevented' in nativeEvent) {\n isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;\n } else if ('getPreventDefault' in nativeEvent) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=691151\n isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;\n } else if ('returnValue' in nativeEvent) {\n isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;\n }\n\n this.isDefaultPrevented = isDefaultPrevented;\n\n var fixFns = [];\n var fixFn = undefined;\n var l = undefined;\n var prop = undefined;\n var props = commonProps.concat();\n\n eventNormalizers.forEach(function (normalizer) {\n if (type.match(normalizer.reg)) {\n props = props.concat(normalizer.props);\n if (normalizer.fix) {\n fixFns.push(normalizer.fix);\n }\n }\n });\n\n l = props.length;\n\n // clone properties of the original event object\n while (l) {\n prop = props[--l];\n this[prop] = nativeEvent[prop];\n }\n\n // fix target property, if necessary\n if (!this.target && isNative) {\n this.target = nativeEvent.srcElement || document; // srcElement might not be defined either\n }\n\n // check if target is a text node (safari)\n if (this.target && this.target.nodeType === 3) {\n this.target = this.target.parentNode;\n }\n\n l = fixFns.length;\n\n while (l) {\n fixFn = fixFns[--l];\n fixFn(this, nativeEvent);\n }\n\n this.timeStamp = nativeEvent.timeStamp || Date.now();\n}\n\nvar EventBaseObjectProto = _EventBaseObject2['default'].prototype;\n\n(0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {\n constructor: DomEventObject,\n\n preventDefault: function preventDefault() {\n var e = this.nativeEvent;\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n // otherwise set the returnValue property of the original event to FALSE (IE)\n e.returnValue = FALSE;\n }\n\n EventBaseObjectProto.preventDefault.call(this);\n },\n\n stopPropagation: function stopPropagation() {\n var e = this.nativeEvent;\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n } else {\n // otherwise set the cancelBubble property of the original event to TRUE (IE)\n e.cancelBubble = TRUE;\n }\n\n EventBaseObjectProto.stopPropagation.call(this);\n }\n});\n\nexports['default'] = DomEventObject;\nmodule.exports = exports['default'];","/**\n * @ignore\n * base event object for custom and dom event.\n * @author yiminghe@gmail.com\n */\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction returnFalse() {\n return false;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction EventBaseObject() {\n this.timeStamp = Date.now();\n this.target = undefined;\n this.currentTarget = undefined;\n}\n\nEventBaseObject.prototype = {\n isEventObject: 1,\n\n constructor: EventBaseObject,\n\n isDefaultPrevented: returnFalse,\n\n isPropagationStopped: returnFalse,\n\n isImmediatePropagationStopped: returnFalse,\n\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n },\n\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n },\n\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n // fixed 1.2\n // call stopPropagation implicitly\n this.stopPropagation();\n },\n\n halt: function halt(immediate) {\n if (immediate) {\n this.stopImmediatePropagation();\n } else {\n this.stopPropagation();\n }\n this.preventDefault();\n }\n};\n\nexports[\"default\"] = EventBaseObject;\nmodule.exports = exports[\"default\"];","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\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","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n","var api = require(\"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../css-loader/dist/cjs.js!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function insertAtTop(element) {\n\t\t\t\t document.head.insertBefore(element, document.head.firstElementChild);\n\t\t\t\t};\noptions.singleton = false;\n\nvar update = api(content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;","\"use strict\";\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 = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\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 && btoa) {\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 "}},te=function(e,t){return function(){var n,r=((n={})[j]=$(t),n["data-styled-version"]="4.4.0",n),o=G();return o&&(r.nonce=o),l.a.createElement("style",g({},r,{dangerouslySetInnerHTML:{__html:e()}}))}},ne=function(e){return function(){return Object.keys(e)}},re=function(e,t){return e.createTextNode(J(t))},oe=function e(t,n){var r=void 0===t?Object.create(null):t,o=void 0===n?Object.create(null):n,a=function(e){var t=o[e];return void 0!==t?t:o[e]=[""]},i=function(){var e="";for(var t in o){var n=o[t][0];n&&(e+=J(t)+n)}return e};return{clone:function(){var t=function(e){var t=Object.create(null);for(var n in e)t[n]=g({},e[n]);return t}(r),n=Object.create(null);for(var a in o)n[a]=[o[a][0]];return e(t,n)},css:i,getIds:ne(o),hasNameForId:K(r),insertMarker:a,insertRules:function(e,t,n){a(e)[0]+=t.join(" "),Y(r,e,n)},removeRules:function(e){var t=o[e];void 0!==t&&(t[0]="",X(r,e))},sealed:!1,styleTag:null,toElement:te(i,r),toHTML:ee(i,r)}},ae=function(e,t,n,r,o){if(C&&!n){var a=function(e,t,n){var r=document;e?r=e.ownerDocument:t&&(r=t.ownerDocument);var o=r.createElement("style");o.setAttribute(j,""),o.setAttribute("data-styled-version","4.4.0");var a=G();if(a&&o.setAttribute("nonce",a),o.appendChild(r.createTextNode("")),e&&!t)e.appendChild(o);else{if(!t||!e||!t.parentNode)throw new M(6);t.parentNode.insertBefore(o,n?t:t.nextSibling)}return o}(e,t,r);return P?function(e,t){var n=Object.create(null),r=Object.create(null),o=void 0!==t,a=!1,i=function(t){var o=r[t];return void 0!==o?o:(r[t]=re(e.ownerDocument,t),e.appendChild(r[t]),n[t]=Object.create(null),r[t])},s=function(){var e="";for(var t in r)e+=r[t].data;return e};return{clone:function(){throw new M(5)},css:s,getIds:ne(r),hasNameForId:K(n),insertMarker:i,insertRules:function(e,r,s){for(var l=i(e),c=[],u=r.length,f=0;f0&&(a=!0,t().insertRules(e+"-import",c))},removeRules:function(i){var s=r[i];if(void 0!==s){var l=re(e.ownerDocument,i);e.replaceChild(l,s),r[i]=l,X(n,i),o&&a&&t().removeRules(i+"-import")}},sealed:!1,styleTag:e,toElement:te(s,n),toHTML:ee(s,n)}}(a,o):function(e,t){var n=Object.create(null),r=Object.create(null),o=[],a=void 0!==t,i=!1,s=function(e){var t=r[e];return void 0!==t?t:(r[e]=o.length,o.push(0),X(n,e),r[e])},l=function(){var t=q(e).cssRules,n="";for(var a in r){n+=J(a);for(var i=r[a],s=Q(o,i),l=s-o[i];l0&&(i=!0,t().insertRules(r+"-import",h)),o[u]+=d,Y(n,r,c)},removeRules:function(s){var l=r[s];if(void 0!==l&&!1!==e.isConnected){var c=o[l];!function(e,t,n){for(var r=t-n,o=t;o>r;o-=1)e.deleteRule(o)}(q(e),Q(o,l)-1,c),o[l]=0,X(n,s),a&&i&&t().removeRules(s+"-import")}},sealed:!1,styleTag:e,toElement:te(l,n),toHTML:ee(l,n)}}(a,o)}return oe()},ie=/\s+/,se=void 0;se=C?P?40:1e3:-1;var le=0,ce=void 0,ue=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C?document.head:null,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];b(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var n=t.tags[0];return t.importRuleTag=ae(t.target,n?n.styleTag:null,t.forceServer,!0)},le+=1,this.id=le,this.forceServer=r,this.target=r?null:n,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!C||this.forceServer)return this;var e=[],t=[],n=!1,r=document.querySelectorAll("style["+j+'][data-styled-version="4.4.0"]'),o=r.length;if(!o)return this;for(var a=0;a0&&void 0!==arguments[0]&&arguments[0];ce=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map((function(e){for(var n=e.getIds(),r=e.clone(),o=0;o1?t-1:0),r=1;r=4;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),n-=4,++o;switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+((1540483477*(r>>>16)&65535)<<16)}return((r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16))^r>>>15)>>>0}var xe=function(e){return String.fromCharCode(e+(e>25?39:97))};function we(e){var t="",n=void 0;for(n=e;n>52;n=Math.floor(n/52))t=xe(n%52)+t;return xe(n%52)+t}function Oe(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:k,r=!!n&&e.theme===n.theme,o=e.theme&&!r?e.theme:t||n.theme;return o},je=/[[\].#*$><+~=|^:(),"'`-]+/g,Ce=/(^-|-$)/g;function Pe(e){return e.replace(je,"-").replace(Ce,"")}function Me(e){return"string"==typeof e&&!0}var Ae={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},Te={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},De=((ke={})[u.ForwardRef]={$$typeof:!0,render:!0},ke),Ne=Object.defineProperty,Ie=Object.getOwnPropertyNames,Le=Object.getOwnPropertySymbols,Re=void 0===Le?function(){return[]}:Le,Fe=Object.getOwnPropertyDescriptor,He=Object.getPrototypeOf,ze=Object.prototype,Be=Array.prototype;function Ue(e,t,n){if("string"!=typeof t){var r=He(t);r&&r!==ze&&Ue(e,r,n);for(var o=Be.concat(Ie(t),Re(t)),a=De[e.$$typeof]||Ae,i=De[t.$$typeof]||Ae,s=o.length,l=void 0,c=void 0;s--;)if(c=o[s],!(Te[c]||n&&n[c]||i&&i[c]||a&&a[c])&&(l=Fe(t,c)))try{Ne(e,c,l)}catch(e){}return e}return e}var Ve=Object(s.createContext)(),We=Ve.Consumer,Ge=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext.bind(r)),r.renderInner=r.renderInner.bind(r),r}return y(t,e),t.prototype.render=function(){return this.props.children?l.a.createElement(Ve.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return l.a.createElement(Ve.Provider,{value:t},this.props.children)},t.prototype.getTheme=function(e,t){if(E(e))return e(t);if(null===e||Array.isArray(e)||"object"!==(void 0===e?"undefined":m(e)))throw new M(8);return g({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)},t}(s.Component),Ye=(function(){function e(){b(this,e),this.masterSheet=ue.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new M(2);return l.a.createElement(Ke,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new M(3)}}(),Object(s.createContext)()),Xe=Ye.Consumer,Ke=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext),r}return y(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new ue(t);throw new M(4)},t.prototype.render=function(){var e=this.props,t=e.children,n=e.sheet,r=e.target;return l.a.createElement(Ye.Provider,{value:this.getContext(n,r)},t)},t}(s.Component),$e={};var qe=function(e){function t(){b(this,t);var n=x(this,e.call(this));return n.attrs={},n.renderOuter=n.renderOuter.bind(n),n.renderInner=n.renderInner.bind(n),n}return y(t,e),t.prototype.render=function(){return l.a.createElement(Xe,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ue.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():l.a.createElement(We,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,n=t.componentStyle,r=t.defaultProps,o=(t.displayName,t.foldedComponentIds),a=t.styledComponentId,i=t.target,l=(t.usesTheme,void 0),c=void 0;n.isStatic?l=this.generateAndInjectStyles(k,this.props):(c=_e(this.props,e,r),l=this.generateAndInjectStyles(c||k,this.props));var u=this.props.as||this.attrs.as||i,f=Me(u),d={},h=g({},this.props,this.attrs),m=void 0;for(m in h)"forwardedComponent"!==m&&"as"!==m&&("forwardedRef"===m?d.ref=h[m]:"forwardedAs"===m?d.as=h[m]:f&&!Object(p.a)(m)||(d[m]=h[m]));return this.props.style&&this.attrs.style&&(d.style=g({},this.attrs.style,this.props.style)),d.className=Array.prototype.concat(o,a,l!==a?l:null,this.props.className,this.attrs.className).filter(Boolean).join(" "),Object(s.createElement)(u,d)},t.prototype.buildExecutionContext=function(e,t,n){var r=this,o=g({},t,{theme:e});return n.length?(this.attrs={},n.forEach((function(e){var t,n=e,a=!1,i=void 0,s=void 0;for(s in E(n)&&(n=n(o),a=!0),n)i=n[s],a||!E(i)||(t=i)&&t.prototype&&t.prototype.isReactComponent||_(i)||(i=i(o)),r.attrs[s]=i,o[s]=i})),o):o},t.prototype.generateAndInjectStyles=function(e,t){var n=t.forwardedComponent,r=n.attrs,o=n.componentStyle;n.warnTooManyClasses;return o.isStatic&&!r.length?o.generateAndInjectStyles(k,this.styleSheet):o.generateAndInjectStyles(this.buildExecutionContext(e,t,r),this.styleSheet)},t}(s.Component);function Ze(e,t,n){var r=_(e),o=!Me(e),a=t.displayName,i=void 0===a?function(e){return Me(e)?"styled."+e:"Styled("+S(e)+")"}(e):a,s=t.componentId,c=void 0===s?function(e,t,n){var r="string"!=typeof t?"sc":Pe(t),o=($e[r]||0)+1;$e[r]=o;var a=r+"-"+e.generateName(r+o);return n?n+"-"+a:a}(Se,t.displayName,t.parentComponentId):s,u=t.ParentComponent,f=void 0===u?qe:u,p=t.attrs,h=void 0===p?O:p,m=t.displayName&&t.componentId?Pe(t.displayName)+"-"+t.componentId:t.componentId||c,b=r&&e.attrs?Array.prototype.concat(e.attrs,h).filter(Boolean):h,v=new Se(r?e.componentStyle.rules.concat(n):n,b,m),y=void 0,x=function(e,t){return l.a.createElement(f,g({},e,{forwardedComponent:y,forwardedRef:t}))};return x.displayName=i,(y=l.a.forwardRef(x)).displayName=i,y.attrs=b,y.componentStyle=v,y.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):O,y.styledComponentId=m,y.target=r?e.target:e,y.withComponent=function(e){var r=t.componentId,o=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(t,["componentId"]),a=r&&r+"-"+(Me(e)?e:Pe(S(e)));return Ze(e,g({},o,{attrs:b,componentId:a,ParentComponent:f}),n)},Object.defineProperty(y,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Object(d.a)(e.defaultProps,t):t}}),y.toString=function(){return"."+y.styledComponentId},o&&Ue(y,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),y}var Je=function(e){return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:k;if(!Object(u.isValidElementType)(n))throw new M(1,String(n));var o=function(){return t(n,r,ge.apply(void 0,arguments))};return o.withConfig=function(o){return e(t,n,g({},r,o))},o.attrs=function(o){return e(t,n,g({},r,{attrs:Array.prototype.concat(r.attrs,o).filter(Boolean)}))},o}(Ze,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){Je[e]=Je(e)}));!function(){function e(t,n){b(this,e),this.rules=t,this.componentId=n,this.isStatic=Oe(t,O),ue.master.hasId(n)||ue.master.deferredInject(n,[])}e.prototype.createStyles=function(e,t){var n=W(ve(this.rules,e,t),"");t.inject(this.componentId,n)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)}}();C&&(window.scCGSHMRCache={});var Qe=function(e){var t=l.a.forwardRef((function(t,n){return l.a.createElement(We,null,(function(r){var o=e.defaultProps,a=_e(t,r,o);return l.a.createElement(e,g({},t,{theme:a,ref:n}))}))}));return Ue(t,e),t.displayName="WithTheme("+S(e)+")",t};t.c=Je}).call(this,n(63))},function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a})),n.d(t,"e",(function(){return i})),n.d(t,"d",(function(){return s}));var r={PRIMARY:"#ABE2FB",SECONDARY:"#E6E6E6",DARKER_PRIMARY:"#87ceeb",OFF_WHITE:"#15181A",GREY:"#D3D3D3",RED:"#FF5E5E",DARK_GREY:"#535D63"},o=270,a=Math.PI/180,i={primary:r.PRIMARY,secondary:r.SECONDARY,detail:r.GREY,dark:!1},s={primary:r.PRIMARY,secondary:r.DARK_GREY,detail:r.DARK_GREY,dark:!0}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return a}));var r=n(30),o=function(e,t){return"daq-"+e+(t&&t.dark?"--dark":"--light")},a=function(e){return Object(r.a)(["className","id","setProps","style"],e)}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(71),a=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,a.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(95),a=(r=o)&&r.__esModule?r:{default:r};t.default=a.default||function(e){for(var t=1;t1?r-1:0),a=1;a0?" Additional arguments: "+o.join(", "):"")));return x(i)}return y(t,e),t}(Error),A=/^[^\S\n]*?\/\* sc-component-id:\s*(\S+)\s+\*\//gm,T=function(e){var t=""+(e||""),n=[];return t.replace(A,(function(e,t,r){return n.push({componentId:t,matchIndex:r}),e})),n.map((function(e,r){var o=e.componentId,a=e.matchIndex,i=n[r+1];return{componentId:o,cssFromDOM:i?t.slice(a,i.matchIndex):t.slice(a)}}))},D=/^\s*\/\/.*$/gm,N=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!1,compress:!1,semicolon:!0}),I=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!0,compress:!1,semicolon:!1}),L=[],R=function(e){if(-2===e){var t=L;return L=[],t}},F=i()((function(e){L.push(e)})),H=void 0,z=void 0,B=void 0,U=function(e,t,n){return t>0&&-1!==n.slice(0,t).indexOf(z)&&n.slice(t-z.length,t)!==z?"."+H:e};I.use([function(e,t,n){2===e&&n.length&&n[0].lastIndexOf(z)>0&&(n[0]=n[0].replace(B,U))},F,R]),N.use([F,R]);var V=function(e){return N("",e)};function W(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"&",o=e.join("").replace(D,""),a=t&&n?n+" "+t+" { "+o+" }":o;return H=r,z=t,B=new RegExp("\\"+z+"\\b","g"),I(n||!t?"":t,a)}var G=function(){return n.nc},Y=function(e,t,n){n&&((e[t]||(e[t]=Object.create(null)))[n]=!0)},X=function(e,t){e[t]=Object.create(null)},K=function(e){return function(t,n){return void 0!==e[t]&&e[t][n]}},$=function(e){var t="";for(var n in e)t+=Object.keys(e[n]).join(" ")+" ";return t.trim()},q=function(e){if(e.sheet)return e.sheet;for(var t=e.ownerDocument.styleSheets.length,n=0;n"+e()+""}},te=function(e,t){return function(){var n,r=((n={})[j]=$(t),n["data-styled-version"]="4.4.0",n),o=G();return o&&(r.nonce=o),l.a.createElement("style",g({},r,{dangerouslySetInnerHTML:{__html:e()}}))}},ne=function(e){return function(){return Object.keys(e)}},re=function(e,t){return e.createTextNode(J(t))},oe=function e(t,n){var r=void 0===t?Object.create(null):t,o=void 0===n?Object.create(null):n,a=function(e){var t=o[e];return void 0!==t?t:o[e]=[""]},i=function(){var e="";for(var t in o){var n=o[t][0];n&&(e+=J(t)+n)}return e};return{clone:function(){var t=function(e){var t=Object.create(null);for(var n in e)t[n]=g({},e[n]);return t}(r),n=Object.create(null);for(var a in o)n[a]=[o[a][0]];return e(t,n)},css:i,getIds:ne(o),hasNameForId:K(r),insertMarker:a,insertRules:function(e,t,n){a(e)[0]+=t.join(" "),Y(r,e,n)},removeRules:function(e){var t=o[e];void 0!==t&&(t[0]="",X(r,e))},sealed:!1,styleTag:null,toElement:te(i,r),toHTML:ee(i,r)}},ae=function(e,t,n,r,o){if(C&&!n){var a=function(e,t,n){var r=document;e?r=e.ownerDocument:t&&(r=t.ownerDocument);var o=r.createElement("style");o.setAttribute(j,""),o.setAttribute("data-styled-version","4.4.0");var a=G();if(a&&o.setAttribute("nonce",a),o.appendChild(r.createTextNode("")),e&&!t)e.appendChild(o);else{if(!t||!e||!t.parentNode)throw new M(6);t.parentNode.insertBefore(o,n?t:t.nextSibling)}return o}(e,t,r);return P?function(e,t){var n=Object.create(null),r=Object.create(null),o=void 0!==t,a=!1,i=function(t){var o=r[t];return void 0!==o?o:(r[t]=re(e.ownerDocument,t),e.appendChild(r[t]),n[t]=Object.create(null),r[t])},s=function(){var e="";for(var t in r)e+=r[t].data;return e};return{clone:function(){throw new M(5)},css:s,getIds:ne(r),hasNameForId:K(n),insertMarker:i,insertRules:function(e,r,s){for(var l=i(e),c=[],u=r.length,f=0;f0&&(a=!0,t().insertRules(e+"-import",c))},removeRules:function(i){var s=r[i];if(void 0!==s){var l=re(e.ownerDocument,i);e.replaceChild(l,s),r[i]=l,X(n,i),o&&a&&t().removeRules(i+"-import")}},sealed:!1,styleTag:e,toElement:te(s,n),toHTML:ee(s,n)}}(a,o):function(e,t){var n=Object.create(null),r=Object.create(null),o=[],a=void 0!==t,i=!1,s=function(e){var t=r[e];return void 0!==t?t:(r[e]=o.length,o.push(0),X(n,e),r[e])},l=function(){var t=q(e).cssRules,n="";for(var a in r){n+=J(a);for(var i=r[a],s=Q(o,i),l=s-o[i];l0&&(i=!0,t().insertRules(r+"-import",h)),o[u]+=d,Y(n,r,c)},removeRules:function(s){var l=r[s];if(void 0!==l&&!1!==e.isConnected){var c=o[l];!function(e,t,n){for(var r=t-n,o=t;o>r;o-=1)e.deleteRule(o)}(q(e),Q(o,l)-1,c),o[l]=0,X(n,s),a&&i&&t().removeRules(s+"-import")}},sealed:!1,styleTag:e,toElement:te(l,n),toHTML:ee(l,n)}}(a,o)}return oe()},ie=/\s+/,se=void 0;se=C?P?40:1e3:-1;var le=0,ce=void 0,ue=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C?document.head:null,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];b(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var n=t.tags[0];return t.importRuleTag=ae(t.target,n?n.styleTag:null,t.forceServer,!0)},le+=1,this.id=le,this.forceServer=r,this.target=r?null:n,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!C||this.forceServer)return this;var e=[],t=[],n=!1,r=document.querySelectorAll("style["+j+'][data-styled-version="4.4.0"]'),o=r.length;if(!o)return this;for(var a=0;a0&&void 0!==arguments[0]&&arguments[0];ce=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map((function(e){for(var n=e.getIds(),r=e.clone(),o=0;o1?t-1:0),r=1;r=4;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),n-=4,++o;switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+((1540483477*(r>>>16)&65535)<<16)}return((r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16))^r>>>15)>>>0}var xe=function(e){return String.fromCharCode(e+(e>25?39:97))};function we(e){var t="",n=void 0;for(n=e;n>52;n=Math.floor(n/52))t=xe(n%52)+t;return xe(n%52)+t}function Oe(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:k,r=!!n&&e.theme===n.theme,o=e.theme&&!r?e.theme:t||n.theme;return o},je=/[[\].#*$><+~=|^:(),"'`-]+/g,Ce=/(^-|-$)/g;function Pe(e){return e.replace(je,"-").replace(Ce,"")}function Me(e){return"string"==typeof e&&!0}var Ae={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},Te={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},De=((ke={})[u.ForwardRef]={$$typeof:!0,render:!0},ke),Ne=Object.defineProperty,Ie=Object.getOwnPropertyNames,Le=Object.getOwnPropertySymbols,Re=void 0===Le?function(){return[]}:Le,Fe=Object.getOwnPropertyDescriptor,He=Object.getPrototypeOf,ze=Object.prototype,Be=Array.prototype;function Ue(e,t,n){if("string"!=typeof t){var r=He(t);r&&r!==ze&&Ue(e,r,n);for(var o=Be.concat(Ie(t),Re(t)),a=De[e.$$typeof]||Ae,i=De[t.$$typeof]||Ae,s=o.length,l=void 0,c=void 0;s--;)if(c=o[s],!(Te[c]||n&&n[c]||i&&i[c]||a&&a[c])&&(l=Fe(t,c)))try{Ne(e,c,l)}catch(e){}return e}return e}var Ve=Object(s.createContext)(),We=Ve.Consumer,Ge=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext.bind(r)),r.renderInner=r.renderInner.bind(r),r}return y(t,e),t.prototype.render=function(){return this.props.children?l.a.createElement(Ve.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return l.a.createElement(Ve.Provider,{value:t},this.props.children)},t.prototype.getTheme=function(e,t){if(E(e))return e(t);if(null===e||Array.isArray(e)||"object"!==(void 0===e?"undefined":m(e)))throw new M(8);return g({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)},t}(s.Component),Ye=(function(){function e(){b(this,e),this.masterSheet=ue.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new M(2);return l.a.createElement(Ke,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new M(3)}}(),Object(s.createContext)()),Xe=Ye.Consumer,Ke=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext),r}return y(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new ue(t);throw new M(4)},t.prototype.render=function(){var e=this.props,t=e.children,n=e.sheet,r=e.target;return l.a.createElement(Ye.Provider,{value:this.getContext(n,r)},t)},t}(s.Component),$e={};var qe=function(e){function t(){b(this,t);var n=x(this,e.call(this));return n.attrs={},n.renderOuter=n.renderOuter.bind(n),n.renderInner=n.renderInner.bind(n),n}return y(t,e),t.prototype.render=function(){return l.a.createElement(Xe,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ue.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():l.a.createElement(We,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,n=t.componentStyle,r=t.defaultProps,o=(t.displayName,t.foldedComponentIds),a=t.styledComponentId,i=t.target,l=(t.usesTheme,void 0),c=void 0;n.isStatic?l=this.generateAndInjectStyles(k,this.props):(c=_e(this.props,e,r),l=this.generateAndInjectStyles(c||k,this.props));var u=this.props.as||this.attrs.as||i,f=Me(u),d={},h=g({},this.props,this.attrs),m=void 0;for(m in h)"forwardedComponent"!==m&&"as"!==m&&("forwardedRef"===m?d.ref=h[m]:"forwardedAs"===m?d.as=h[m]:f&&!Object(p.a)(m)||(d[m]=h[m]));return this.props.style&&this.attrs.style&&(d.style=g({},this.attrs.style,this.props.style)),d.className=Array.prototype.concat(o,a,l!==a?l:null,this.props.className,this.attrs.className).filter(Boolean).join(" "),Object(s.createElement)(u,d)},t.prototype.buildExecutionContext=function(e,t,n){var r=this,o=g({},t,{theme:e});return n.length?(this.attrs={},n.forEach((function(e){var t,n=e,a=!1,i=void 0,s=void 0;for(s in E(n)&&(n=n(o),a=!0),n)i=n[s],a||!E(i)||(t=i)&&t.prototype&&t.prototype.isReactComponent||_(i)||(i=i(o)),r.attrs[s]=i,o[s]=i})),o):o},t.prototype.generateAndInjectStyles=function(e,t){var n=t.forwardedComponent,r=n.attrs,o=n.componentStyle;n.warnTooManyClasses;return o.isStatic&&!r.length?o.generateAndInjectStyles(k,this.styleSheet):o.generateAndInjectStyles(this.buildExecutionContext(e,t,r),this.styleSheet)},t}(s.Component);function Ze(e,t,n){var r=_(e),o=!Me(e),a=t.displayName,i=void 0===a?function(e){return Me(e)?"styled."+e:"Styled("+S(e)+")"}(e):a,s=t.componentId,c=void 0===s?function(e,t,n){var r="string"!=typeof t?"sc":Pe(t),o=($e[r]||0)+1;$e[r]=o;var a=r+"-"+e.generateName(r+o);return n?n+"-"+a:a}(Se,t.displayName,t.parentComponentId):s,u=t.ParentComponent,f=void 0===u?qe:u,p=t.attrs,h=void 0===p?O:p,m=t.displayName&&t.componentId?Pe(t.displayName)+"-"+t.componentId:t.componentId||c,b=r&&e.attrs?Array.prototype.concat(e.attrs,h).filter(Boolean):h,v=new Se(r?e.componentStyle.rules.concat(n):n,b,m),y=void 0,x=function(e,t){return l.a.createElement(f,g({},e,{forwardedComponent:y,forwardedRef:t}))};return x.displayName=i,(y=l.a.forwardRef(x)).displayName=i,y.attrs=b,y.componentStyle=v,y.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):O,y.styledComponentId=m,y.target=r?e.target:e,y.withComponent=function(e){var r=t.componentId,o=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(t,["componentId"]),a=r&&r+"-"+(Me(e)?e:Pe(S(e)));return Ze(e,g({},o,{attrs:b,componentId:a,ParentComponent:f}),n)},Object.defineProperty(y,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Object(d.a)(e.defaultProps,t):t}}),y.toString=function(){return"."+y.styledComponentId},o&&Ue(y,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),y}var Je=function(e){return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:k;if(!Object(u.isValidElementType)(n))throw new M(1,String(n));var o=function(){return t(n,r,ge.apply(void 0,arguments))};return o.withConfig=function(o){return e(t,n,g({},r,o))},o.attrs=function(o){return e(t,n,g({},r,{attrs:Array.prototype.concat(r.attrs,o).filter(Boolean)}))},o}(Ze,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){Je[e]=Je(e)}));!function(){function e(t,n){b(this,e),this.rules=t,this.componentId=n,this.isStatic=Oe(t,O),ue.master.hasId(n)||ue.master.deferredInject(n,[])}e.prototype.createStyles=function(e,t){var n=W(ve(this.rules,e,t),"");t.inject(this.componentId,n)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)}}();C&&(window.scCGSHMRCache={});var Qe=function(e){var t=l.a.forwardRef((function(t,n){return l.a.createElement(We,null,(function(r){var o=e.defaultProps,a=_e(t,r,o);return l.a.createElement(e,g({},t,{theme:a,ref:n}))}))}));return Ue(t,e),t.displayName="WithTheme("+S(e)+")",t};t.c=Je}).call(this,n(63))},function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a})),n.d(t,"e",(function(){return i})),n.d(t,"d",(function(){return s}));var r={PRIMARY:"#ABE2FB",SECONDARY:"#E6E6E6",DARKER_PRIMARY:"#87ceeb",OFF_WHITE:"#15181A",GREY:"#D3D3D3",RED:"#FF5E5E",DARK_GREY:"#535D63"},o=270,a=Math.PI/180,i={primary:r.PRIMARY,secondary:r.SECONDARY,detail:r.GREY,dark:!1},s={primary:r.PRIMARY,secondary:r.DARK_GREY,detail:r.DARK_GREY,dark:!0}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return a}));var r=n(30),o=function(e,t){return"daq-"+e+(t&&t.dark?"--dark":"--light")},a=function(e){return Object(r.a)(["className","id","setProps","style"],e)}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(71),a=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,a.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(95),a=(r=o)&&r.__esModule?r:{default:r};t.default=a.default||function(e){for(var t=1;t1?arguments[1]:void 0,b=void 0!==m,v=0,g=u(p);if(b&&(m=r(m,h>2?arguments[2]:void 0,2)),null==g||d==Array&&s(g))for(n=new d(t=l(p.length));t>v;v++)c(n,v,b?m(p[v],v):p[v]);else for(f=g.call(p),n=new d;!(o=f.next()).done;v++)c(n,v,b?i(f,m,[o.value,v],!0):o.value);return n.length=v,n}})},function(e,t,n){var r=n(26);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var a=e.return;throw void 0!==a&&r(a.call(e)),t}}},function(e,t,n){var r=n(35),o=n(16)("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||a[o]===e)}},function(e,t,n){"use strict";var r=n(19),o=n(33);e.exports=function(e,t,n){t in e?r.f(e,t,o(0,n)):e[t]=n}},function(e,t,n){var r=n(147),o=n(16)("iterator"),a=n(35);e.exports=n(10).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||a[r(e)]}},function(e,t,n){var r=n(45),o=n(16)("toStringTag"),a="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,i;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:a?r(t):"Object"==(i=r(t))&&"function"==typeof t.callee?"Arguments":i}},function(e,t,n){var r=n(16)("iterator"),o=!1;try{var a=[7][r]();a.return=function(){o=!0},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var a=[7],i=a[r]();i.next=function(){return{done:n=!0}},a[r]=function(){return i},e(a)}catch(e){}return n}},function(e,t,n){(function(t){(function(){var n,r,o,a,i,s;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:null!=t&&t.hrtime?(e.exports=function(){return(n()-i)/1e6},r=t.hrtime,a=(n=function(){var e;return 1e9*(e=r())[0]+e[1]})(),s=1e9*t.uptime(),i=a-s):Date.now?(e.exports=function(){return Date.now()-o},o=Date.now()):(e.exports=function(){return(new Date).getTime()-o},o=(new Date).getTime())}).call(this)}).call(this,n(63))},function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}(e.exports="function"==typeof Object.keys?Object.keys:n).shim=n},function(e,t){var n="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();function r(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function o(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}(t=e.exports=n?r:o).supported=r,t.unsupported=o},function(e,t,n){var r=n(153),o=n(154);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[e.i,o,""]]);var a={insert:function(e){document.head.insertBefore(e,document.head.firstElementChild)},singleton:!1},i=(r(o,a),o.locals?o.locals:{});e.exports=i},function(e,t,n){"use strict";var r,o=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},a=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),i=[];function s(e){for(var t=-1,n=0;n0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;if(isNaN(e))return e;var n=t.toString().split("."),r=ke(n,2),o=(r[0],r[1]),a=o?o.length:0;return e.toFixed(a)},_e=function(e){var t=e.min,n=e.max,r=e.value;return null==r||rn?n:r},je=function(e){var t=e.min,n=e.max,r=e.value,o=e.progressionTarget,a=void 0===o?100:o;return r=Number(r),1*Math.abs(r-t)/Math.abs(n-t)*a},Ce=function(e,t){return Number(Math.round(e+"e"+t)+"e-"+t)},Pe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9999;return Math.floor(Math.random()*(t-e+1))+e},Me=n(81),Ae=n.n(Me);function Te(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e))&&"[object Arguments]"!==Object.prototype.toString.call(e))return;var n=[],r=!0,o=!1,a=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function De(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);ta&&f.push({key:p,subKey:o,index:0}),n[p][1]>a&&f.push({key:p,subKey:o,index:1}),n[p][0]i&&(n[p][0]=i),s[0]==n[p][1]&&n[p][1]>i&&(n[p][1]=i),s[s.length-1]==n[p][0]&&n[p][0]1&&void 0!==arguments[1]?arguments[1]:10;return"e"===t&&(t=Math.exp(1)),Math.log(e)/Math.log(t)},generateLogFormatter:function(e){var t=e.base,n=void 0===t?10:t,r=e.isSVG,a=void 0!==r&&r;return function(e){return a?o.a.createElement("tspan",null,n,o.a.createElement("tspan",{dy:"-6px"},e)):o.a.createElement("span",null,n,o.a.createElement("sup",null,e))}},formatValue:function(e,t){return o.a.createElement(Yt,null,"~",t,o.a.createElement("sup",null,Ce(e,2)))},genLogMarks:function(e,t){var n=e.min,r=e.max,a=e.step,i=void 0===a?1:a,s=e.base,l=void 0===s?10:s,c=e.marks;if(!c){var u=n;for(c={};u<=r;)c[u]=!0,u+=i}return Object.keys(c).forEach((function(e){"boolean"==typeof c[e]&&(c[e]=t?o.a.createElement("tspan",null,l,o.a.createElement("tspan",{dy:"-6px"},e)):o.a.createElement("span",null,l,o.a.createElement("sup",null,e)))})),c}};function Kt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qt(e){var t=function(e){var t=e.min,n=e.max,r=e.scale,o=void 0===r?{}:r,a=e.formatter,i={},s=null!=o.start,l=null!=o.interval,c=null!=o.labelInterval;i.min=t,i.max=n,i.start=s?o.start:t,i.interval=l?o.interval:function(e,t){var n=Math.ceil,r=1*Math.abs(t-e)/10;return r>1?n(r):(o=r,Number(o.toFixed(2)));var o}(i.start,n),i.labelInterval=c?o.labelInterval:2,i.custom=o.custom||{},i.formatter=a||Zt;var u=!s&&!l&&!c,f=Object.keys(i.custom).length;return i.onlyRenderCustom=f&&u,i.start=i.start!=t?t:i.start,i}(e),n=function(e){for(var t=1;to){h.current.innerHTML=e.exceedMessage?"string"==typeof e.exceedMessage?e.exceedMessage:e.exceedMessage(r,o)||"":""}else if(r=10?.05*n:.5,o=n-2*r;return Object(s.b)(cn(),e.vertical?"".concat(o,"px"):"100%",e.vertical?"100%":"".concat(o,"px"),e.vertical?"".concat(r,"px 0"):"0 ".concat(r,"px"))}),(function(e){return e.theme.dark&&Sn}));En.defaultProps={theme:c.e};var Sn=Object(s.b)(ln(),(function(e){var t=e.color,n=e.theme;if(!e.gradient)return Object(s.b)(sn(),t||n.primary)}),(function(e){var t=e.color,n=e.theme;return"2px 2px 6px 1px rgba(0, 0, 0, 0.45), inset 1px 1px 2px 0 rgba(255, 255, 255, 0.3),\n 1px 1px 1px 0px rgba(0, 0, 0, 0.6), 0 0 3px 0px ".concat(t||n.primary)})),_n=s.c.div(an(),(function(e){return e.vertical?Object(s.b)(on()):""}));function jn(){return(jn=Object.assign||function(e){for(var t=1;t=n[0]&&e<=n[1]}))[0];return n&&n[0]},Dn=function(e){var t=e.step,n=e.min,r=e.max,a=e.label,i=e.labelPosition,s=e.id,l=e.className,c=e.color,u=e.size,f=e.style,p=e.showCurrentValue,d=e.vertical,h=e.theme,m=e.value||n,b=null,v=[],g=Math.max(Math.min(r,m),n);c.gradient&&Re({color:c,min:n,max:r})&&(b=function(e){var t=e.color,n=e.min,r=e.max,o=0,a=Be(t.ranges).map((function(e){var t=Te(e,2),a=t[0],i=t[1],s=1*(i[1]-i[0])/(r-n),l=o;return o=o+s,{color:a,pos:l}}));return Ae()(a)}({color:c,min:n,max:r}));for(var y=Object(q.a)("graduatedbar",h),x=Object(q.b)(e),w=n;wthis.props.min&&ee?this.props.min:this.props.max}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){void 0!==e.value&&this.setState({value:e.value}),this.state.max!=e.max&&this.setState({max:e.max instanceof Number?e.max:this.state.max}),this.state.min!=e.min&&this.setState({min:e.min instanceof Number?e.min:this.state.min})}},{key:"componentDidMount",value:function(){window.addEventListener("mouseup",this.onMouseUp,!1),n(42)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("mouseup",this.onMouseUp,!1)}},{key:"onMouseDown",value:function(){this.setState({isDragging:!0})}},{key:"onMouseUp",value:function(){this.state.isDragging&&this.setState((function(e){return{rotation:e.currentDeg,isDragging:!1,startAngle:-1}}))}},{key:"onMouseMove",value:function(e){if(this.state.isDragging){var t=this.props,n=t.min,r=t.max,o=this.state.rotation,a=this.state.startAngle;e.touches&&(e=e.touches[0]);var i=this.knobElement.getBoundingClientRect(),s=i.width/2+i.left,l=i.height/2+i.top,u=Math.atan2(e.clientX-s,e.clientY-l)*(180/Math.PI);e.clientX-s>=0?u=Math.abs(360-u)+180:u-=180,u=Math.abs(u),-1===a&&(a=u,this.setState({startAngle:a}));var f=Math.floor(u-a+o);f=Math.min(f,c.b),f=Math.max(f,0),this.setState({currentDeg:f}),this.setValue(Ce(function(e){var t=e.min,n=e.max,r=e.deg;return je({min:0,max:c.b,value:r,progressionTarget:n-t})+t}({min:n,max:r,deg:f}),2))}}},{key:"setValue",value:function(e){this.setState({value:e}),this.props.setProps&&this.props.setProps({value:e})}},{key:"render",value:function(){var e=this,t=this.props,n=t.min,r=t.max,a=t.value,i=void 0===a?this.props.min:a,s=this.props,l=s.id,c=s.className,u=s.labelPosition,f=s.color,p=s.style,d=s.disabled,h=s.theme,m=s.textColor,b=je({min:n,max:r,value:this.getValue(i),progressionTarget:1}),v=m||Ve(f),g=Object(q.a)("knob",h),y=Object(q.b)(this.props),x=o.a.createElement(o.a.Fragment,null,o.a.createElement(gt,{className:g+"__current-value",valueColor:v,valueSize:Math.min(13.3333*(this.props.size+32)/100,32),units:!1,css:"transform: translateY(0%); top: 0;"},i.toFixed(this.props.digits)));return o.a.createElement("div",{id:l,className:g+(c?" "+c:""),style:p},o.a.createElement($.a,Kn({className:g+"__label"},y,{labelCSS:"top"===u?null:"transform: translateY(-40px);"}),o.a.createElement(Yn,{className:g+"__container",colorValue:v,color:Ve(f)},this.props.showCurrentValue&&x,o.a.createElement(Fn,Kn({progress:b},y,this.state,{min:this.props.min!=this.state.min?this.props.min:this.state.min,max:this.props.max!=this.state.max?this.props.max:this.state.max,value:this.getValue(i),scale:qt(this.props),currentDeg:Qn({min:this.props.min,max:this.props.max,value:this.getValue(i)}),refFunc:function(t){return e.knobElement=t},onMouseDown:d?this.noop:this.onMouseDown,onMouseUp:d?this.noop:this.onMouseUp,onMouseMove:d?this.noop:this.onMouseMove})))))}}])&&$n(r.prototype,a),i&&$n(r,i),t}(r.Component);er.defaultProps={min:0,max:10,theme:c.e,labelPosition:"top",persisted_props:["value"],persistence_type:"local",size:114},er.propTypes={id:i.a.string,value:i.a.number,color:i.a.oneOfType([i.a.string,i.a.shape({default:i.a.string,gradient:i.a.bool,ranges:i.a.shape({color:i.a.arrayOf(i.a.number)})})]),size:i.a.number,min:i.a.number,max:i.a.number,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),scale:i.a.shape({start:i.a.number,interval:i.a.number,labelInterval:i.a.number,custom:i.a.oneOfType([i.a.number,i.a.shape({style:i.a.string,label:i.a.string})])}),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"]),showCurrentValue:i.a.bool,textColor:i.a.string,digits:i.a.number};var tr=Object(s.d)(er);tr.defaultProps=er.defaultProps;var nr=tr;function rr(){var e=lr(["\n & .darkLED-fill {\n fill: ",";\n }\n"]);return rr=function(){return e},e}function or(){var e=lr(["\n border-radius: 3px;\n padding: 12px 8px 12px 14px;\n border: 1px solid ",";\n background: ",";\n"]);return or=function(){return e},e}function ar(){var e=lr(["\n padding: 12px 8px 4px 16px;\n background-color: #22272a;\n background-image: linear-gradient(145deg, rgba(255, 255, 255, 0.05) 0%, rgba(0, 0, 0, 0.5) 100%);\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1);\n"]);return ar=function(){return e},e}function ir(){var e=lr(["\n background-color: ",";\n "]);return ir=function(){return e},e}function sr(){var e=lr(["\n display: inline-flex;\n flex-direction: row;\n ",";\n ","\n"]);return sr=function(){return e},e}function lr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var cr=s.c.div(sr(),(function(e){return e.theme.dark?ur:fr}),(function(e){var t=e.backgroundColor;return Object(s.b)(ir(),t)})),ur=Object(s.b)(ar()),fr=Object(s.b)(or(),(function(e){return e.theme.detail}),(function(e){return e.backgroundColor}));cr.defaultProps={theme:c.e};var pr=s.c.div(rr(),(function(e){return e.color})),dr={0:["A","B","C","D","E","F"],1:["B","C"],2:["A","B","G","E","D"],3:["A","B","G","C","D"],4:["F","G","B","C"],5:["A","F","G","C","D"],6:["A","F","G","C","D","E"],7:["A","B","C"],8:["A","B","C","D","E","F","G"],9:["A","B","C","D","F","G"],"-":["G"]},hr={A:{base:"M3.778 3.778L6.555 1h16.667L26 3.778l-2.778 2.778H6.555L3.778 3.778z",stroke:"M3.778 3.778L6.555 1h16.667L26 3.778l-2.778 2.778H6.555L3.778 3.778z"},B:{base:"M26 3.778l2.778 2.777v16.667L26 26l-2.778-2.778V6.555L26 3.778z",stroke:"M26 3.778l2.778 2.777v16.667L26 26l-2.778-2.778V6.555L26 3.778z"},C:{base:"M26 26l2.778 2.778v16.666L26 48.222l-2.778-2.778V28.778L26 26z",stroke:"M26 26l2.778 2.778v16.666L26 48.222l-2.778-2.778V28.778L26 26z"},D:{base:"M26 48.222L23.222 51H6.555l-2.777-2.778 2.777-2.778h16.667L26 48.222z",stroke:"M26 48.222L23.222 51H6.555l-2.777-2.778 2.777-2.778h16.667L26 48.222z"},E:{base:"M3.778 48.222L1 45.444V28.778L3.778 26l2.778 2.778v16.666l-2.778 2.778z",stroke:"M3.778 48.222L1 45.444V28.778L3.778 26l2.778 2.778v16.666l-2.778 2.778z"},F:{base:"M3.778 26L1 23.222V6.555l2.778-2.777 2.778 2.777v16.667L3.778 26z",stroke:"M3.778 26L1 23.222V6.555l2.778-2.777 2.778 2.777v16.667L3.778 26z"},G:{base:"M3.778 26l2.777-2.778h16.667L26 26l-2.778 2.778H6.555L3.778 26z",stroke:"M3.778 26l2.777-2.778h16.667L26 26l-2.778 2.778H6.555L3.778 26z"}},mr=function(e){var t=e.paths,n=t.base,r=t.stroke,a=e.fillColor,i=e.strokeColor;return o.a.createElement("g",null,o.a.createElement("path",{fill:a,fillRule:"evenodd",d:n,clipRule:"evenodd"}),o.a.createElement("path",{stroke:i,strokeWidth:".75",d:r}))},br=function(e){var t=e.fillColor,n=e.strokeColor;return o.a.createElement("g",{transform:"translate(29 46)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"}))},vr=function(e){var t=e.fillColor,n=e.strokeColor;return o.a.createElement("g",null,o.a.createElement("g",{transform:"translate(32 36)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"})),o.a.createElement("g",{transform:"translate(32 9)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"})))},gr=function(e){var t=e.value,n=e.hasColon,r=e.hasDecimal,a=e.color,i=e.backgroundColor,s=e.size,l=e.className,c=xt()(i).darken(.2).fade(.85),u=dr[t].map((function(e){return o.a.createElement(mr,{key:e,fillColor:a,strokeColor:i,paths:hr[e]})})),f=["A","B","C","D","E","F","G"].map((function(e){return o.a.createElement(mr,{key:e,fillColor:c,strokeColor:i,paths:hr[e]})})),p=n?s:s*(6/7),d=s*(9/7);return o.a.createElement("div",{className:l},o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:p,height:d},o.a.createElement("g",{fill:"none",style:{transform:"scale(".concat(Number(s)/42,")")}},f,u,n&&o.a.createElement(vr,{fillColor:a,strokeColor:i}),r&&o.a.createElement(br,{fillColor:a,strokeColor:i}))))},yr=function(e){var t=e.value,n=e.hasColon,r=e.hasDecimal,a=e.color,i=e.size,s=e.className,l=dr[t].map((function(e){return ye[e]})),c=n?i:i*(6/7),u=i*(9/7);return o.a.createElement(pr,{className:s,color:a},o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:c,height:u},ge,o.a.createElement("g",{fill:"none",fillRule:"evenodd",filter:"url(#darkLED-a)",style:{transform:"scale(".concat(Number(i)/42,")")}},l,n&&we,r&&xe)))},xr=function(e){return e.theme.dark?o.a.createElement(yr,e):o.a.createElement(gr,e)},wr=/^(\-)?((\.|:)?[0-9])*$/,Or=wr.test.bind(wr),kr=function(e){var t=Object(q.a)("leddisplay",e.theme),n=Or(e.value)?function(e,t){var n=e.value,r=e.color,a=e.backgroundColor,i=e.theme,s=e.size,l=n.toString().split("").reverse(),c=[];!function(e){var t=!1;"-"===e[e.length-1]&&(t=!0,e.pop());var n=e[e.length-1];[".",":"].includes(n)&&e.push("0");t&&e.push("-")}(l);var u=0;for(;l.length;){var f=l.pop(),p=l.pop();c.push(o.a.createElement(xr,{className:t+"__digit",theme:i,key:u++,value:f,hasColon:":"===p,hasDecimal:"."===p,color:r,backgroundColor:a,size:s})),p&&"."!==p&&":"!==p&&l.push(p)}return c}(e,t):null,r=o.a.createElement(cr,{backgroundColor:e.backgroundColor},n),a=Object(q.b)(e);return o.a.createElement("div",{id:e.id,className:t+(e.className?" "+e.className:""),style:e.style},o.a.createElement($.a,a,n?r:"Invalid Input"))};kr.defaultProps={color:c.c.PRIMARY,backgroundColor:"#fff",size:42,theme:c.e,labelPosition:"top"},kr.propTypes={id:i.a.string,value:i.a.oneOfType([i.a.number,i.a.string]),color:i.a.string,backgroundColor:i.a.string,size:i.a.number,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object};var Er=Object(s.d)(kr),Sr=n(15),_r=n.n(Sr);_r.a.prototype.UNSAFE_componentWillMount=_r.a.prototype.componentWillMount,_r.a.prototype.UNSAFE_componentWillReceiveProps=_r.a.prototype.componentWillReceiveProps,_r.a.prototype.UNSAFE_componentWillUpdate=_r.a.prototype.componentWillUpdate,delete _r.a.prototype.componentWillMount,delete _r.a.prototype.componentWillReceiveProps,delete _r.a.prototype.componentWillUpdate;var jr=_r.a;function Cr(e){return(Cr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Pr(){return(Pr=Object.assign||function(e){for(var t=1;t=this.props.min&&e<=this.props.max&&(this.setState({value:e}),this.props.setProps&&this.props.setProps({value:e}))}},{key:"render",value:function(){var e=this.props,t=e.size,n=e.theme,r=e.style,a=e.className,i=e.id,s=e.disabled,l=e.min,u=e.max,f={background:"none",boxShadow:"none",border:"none",color:n.secondary,cursor:"pointer"},p=Math.max(this.state.value?16-2*this.state.value.toString().length:16,10),d={borderRadius:3,border:n.dark?"none":"1px solid ".concat(c.c.GREY),outline:"none",paddingRight:p,paddingLeft:p,paddingTop:8,paddingBottom:8,width:t||56,color:n.dark?"#fff":c.c.OFF_WHITE,backgroundColor:n.dark?"#22272a":"#fff",fontSize:14,boxSizing:"border-box"},h=Object(q.a)("numericinput",n),m=Object(q.b)(this.props);return o.a.createElement("div",{id:i,className:h+(a?" "+a:""),style:r},o.a.createElement($.a,Pr({className:h+"__label"},m),o.a.createElement(jr,{className:h+"__input",disabled:s,style:{input:d,"input:not(.form-control)":d,btn:f,"btn:hover":f,"btn:active":f,"input:disabled":{opacity:.65,cursor:"not-allowed"}},min:l,max:u,value:this.state.value,onChange:this.setValue,mobile:!1})))}}])&&Mr(n.prototype,r),a&&Mr(n,a),t}(r.Component);Nr.defaultProps={min:0,max:10,theme:c.e,labelPosition:"top",persisted_props:["value"],persistence_type:"local",style:{display:"flex",justifyContent:"center"}},Nr.propTypes={id:i.a.string,value:i.a.number,size:i.a.number,min:i.a.number,max:i.a.number,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"])};var Ir=Object(s.d)(Nr);Ir.defaultProps=Nr.defaultProps;var Lr=Ir;function Rr(){var e=Wr(["\n box-shadow: 0 0 8px 2px ",";\n "]);return Rr=function(){return e},e}function Fr(){var e=Wr(["\n width: ","px;\n height: ","px;\n "]);return Fr=function(){return e},e}function Hr(){var e=Wr(["\n "," border-radius: 100%;\n padding: 0;\n margin-bottom: 8px;\n\n &::before,\n &::after {\n left: 4%;\n border-radius: 100%;\n transition: all 0.1s ease-in;\n }\n\n &::before {\n top: 8%;\n width: 86%;\n height: 86%;\n }\n\n &::after {\n top: 4%;\n width: 92%;\n height: 92%;\n\n ",";\n }\n\n &:hover::before {\n background-color: rgba(0, 0, 0, 0.8);\n }\n\n &:hover::after {\n box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.66);\n }\n\n &:focus::after,\n &:active::after {\n box-shadow: ",";\n }\n"]);return Hr=function(){return e},e}function zr(){var e=Wr(["\n width: ","px;\n height: ","px;\n "]);return zr=function(){return e},e}function Br(){var e=Wr(["\n border-radius: 50%;\n box-sizing: border-box;\n background: #fff;\n border: 1px solid ",";\n "," margin-bottom: ",";\n padding: 0;\n\n &:focus,\n &:hover {\n border-color: ",";\n }\n"]);return Br=function(){return e},e}function Ur(){var e=Wr(["\n cursor: pointer;\n outline: none;\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:disabled {\n opacity: ",";\n cursor: not-allowed;\n }\n\n ",";\n"]);return Ur=function(){return e},e}function Vr(){var e=Wr(["\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n\n & svg {\n margin: 0 auto;\n }\n"]);return Vr=function(){return e},e}function Wr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Gr=Object(s.c)("div")(Vr()),Yr=s.c.button(Ur(),(function(e){return e.theme.dark?1:.65}),(function(e){return e.theme.dark?Kr:Xr})),Xr=Object(s.b)(Br(),(function(e){return e.theme.secondary}),(function(e){var t=e.size;return Object(s.b)(zr(),t,t)}),(function(e){var t=e.size;return"".concat(.0625*t,"px")}),(function(e){return e.theme.secondary})),Kr=Object(s.b)(Hr(),(function(e){var t=e.size;return Object(s.b)(Fr(),t,t)}),(function(e){var t=e.on,n=e.color,r=e.theme;return t?Object(s.b)(Rr(),n||r.primary):""}),(function(e){var t=e.on,n=e.color,r=e.theme;return t?"0 0 8px 2px ".concat(n||r.primary):"0 0 3px 0 rgba(0,0,0,0.66)"}));Yr.defaultProps={theme:c.e};var $r=function(e){var t=e.color,n=e.theme,r=e.on,a=e.size;return o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:a,height:a,viewBox:"0 0 14 14"},o.a.createElement("path",{fill:r?t||n.primary:n.secondary,fillRule:"evenodd",d:"M24.5173333,14.68 C25.2764482,15.3271143 25.8799978,16.1111065 26.328,17.032 C26.7760022,17.9777825 27,18.9671059 27,20 C27,21.2693397 26.6826698,22.4453279 26.048,23.528 C25.4257747,24.5857831 24.5857831,25.4257747 23.528,26.048 C22.4453279,26.6826698 21.2693397,27 20,27 C18.7306603,27 17.5546721,26.6826698 16.472,26.048 C15.4142169,25.4257747 14.5742253,24.5857831 13.952,23.528 C13.3173302,22.4453279 13,21.2693397 13,20 C13,18.9671059 13.2302199,17.9777825 13.6906667,17.032 C14.1262244,16.1111065 14.7235518,15.3271143 15.4826667,14.68 L16.5653333,15.7626667 C15.9555525,16.2728914 15.4764462,16.8888853 15.128,17.6106667 C14.7546648,18.3697816 14.568,19.1662181 14.568,20 C14.568,20.9955605 14.8106642,21.9102181 15.296,22.744 C15.7813358,23.5653374 16.4346626,24.2186642 17.256,24.704 C18.0897819,25.1893358 19.0044395,25.432 20,25.432 C20.9955605,25.432 21.9102181,25.1893358 22.744,24.704 C23.5653374,24.2186642 24.2186642,23.5653374 24.704,22.744 C25.1893358,21.9102181 25.432,20.9955605 25.432,20 C25.432,19.1537735 25.2546684,18.3666703 24.9,17.6386667 C24.5453316,16.910663 24.056892,16.2977803 23.4346667,15.8 L24.5173333,14.68 Z M20.7653333,13 L20.7653333,20.7653333 L19.2346667,20.7653333 L19.2346667,13 L20.7653333,13 Z",transform:"translate(-13 -13)"}))};$r.defaultProps={theme:c.e};var qr=$r;function Zr(e){return(Zr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Jr(){return(Jr=Object.assign||function(e){for(var t=1;t=this.props.min&&e<=this.props.max){var t=this.formatPrecision(e);this.setState({value:t}),this.props.setProps&&this.props.setProps({value:t})}}},{key:"toggleInput",value:function(){if(!this.props.disabled){var e=!this.state.isInput;this.setState({isInput:e}),e&&this.setState({tempValue:this.state.value})}}},{key:"setTempValue",value:function(e){this.setState({tempValue:e})}},{key:"blur",value:function(){null!=this.state.tempValue&&this.setValue(this.state.tempValue),this.setState({tempValue:null}),this.toggleInput()}},{key:"render",value:function(){var e,t=this.props,n=t.id,r=t.className,a=t.style,i=t.size,s=t.theme,l=t.disabled,u=t.precision,f=t.min,p=t.max,d={background:"none",boxShadow:"none",border:"none",color:s.secondary,cursor:"pointer"},h=this.state.value?16-2*this.state.value.toString().length:16,m=Math.max(h,10),b={borderRadius:3,border:s.dark?"none":"1px solid ".concat(c.c.GREY),outline:"none",paddingRight:m,paddingLeft:m,paddingTop:4,paddingBottom:4,width:i||56+20*u,height:36,backgroundColor:s.dark?"#22272a":"#fff",color:s.dark?"#fff":"#000",fontSize:14,lineHeight:14,boxSizing:"border-box"},v=Object(q.a)("precisioninput",s.dark),g=Object(q.b)(this.props);return e=this.state.isInput?o.a.createElement(jr,{autoFocus:!0,className:v+"__input",disabled:l,style:{input:b,"input:not(.form-control)":b,btn:d,"btn:hover":d,"btn:active":d,"input:disabled":{opacity:.65,cursor:"not-allowed"}},min:f,max:p,value:this.state.tempValue,onChange:this.setTempValue,onBlur:this.blur}):o.a.createElement(No,{elementName:v+"__output",value:this.state.value,size:i,onClick:this.toggleInput,color:s.dark?"#fff":c.c.OFF_WHITE}),o.a.createElement("div",{id:n,className:v+(r?" "+r:""),style:Object.assign({},Ao,a)},o.a.createElement($.a,_o({className:v+"__label"},g),e))}}])&&jo(n.prototype,r),a&&jo(n,a),t}(r.Component),Do=function(e){if("-"===e[0]){e.shift();var t=e.shift();e.unshift("-".concat(t))}return e},No=function(e){var t=e.value,n=e.onClick,r=e.size,a=e.elementName,i=Eo(function(e){return Number(e).toExponential().replace("+","")}(t).split("e"),2),s=i[0],l=i[1],c=Do(s.split("")),u=Do(l.split(""));return o.a.createElement(vo,{size:r,onClick:n,className:a},c.map((function(e,t){return o.a.createElement(xo,{className:a+"__digit",key:"d".concat(t)},e)})),o.a.createElement(ko,{className:a+"__exp"},"E"),u.map((function(e,t){return o.a.createElement(ko,{className:a+"__expdigit",key:"e".concat(t)},e)})))};To.defaultProps={min:0,max:Number.MAX_SAFE_INTEGER,theme:c.e,labelPosition:"top",precision:2,persisted_props:["value"],persistence_type:"local"},To.propTypes={id:i.a.string,value:i.a.number,size:i.a.number,min:i.a.number,max:i.a.number,precision:i.a.number.isRequired,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"])};var Io=Object(s.d)(To);Io.defaultProps=To.defaultProps;var Lo=Io;function Ro(){var e=zo(["\n color: #ff6e6e;\n background-color: #22272a;\n\n text-shadow: 0 0 2px rgba(0, 0, 0, 0.9), 0 0 9px #ff6e6e;\n\n background-image: linear-gradient(145deg, rgba(255, 255, 255, 0.05) 0%, rgba(0, 0, 0, 0.5) 100%);\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1);\n\n display: block;\n box-sizing: border-box;\n border: none;\n border-radius: 2px;\n font-weight: bold;\n font-size: 12px;\n text-transform: uppercase;\n padding: 0;\n width: ",";\n height: ",";\n text-align: center;\n cursor: pointer;\n letter-spacing: 0.1;\n line-height: 1;\n\n background-color: #22272a;\n color: #ff1a1a;\n\n &::before,\n &::after {\n transition: all 0.1s ease-in;\n background-color: #e03a3a;\n }\n\n &:hover::before,\n &:hover::after {\n background-color: #e64545;\n }\n\n &:active::before,\n &:active::after {\n background-color: #c72121;\n }\n\n &:hover::after,\n &:active::after,\n &:focus::after {\n box-shadow: none;\n }\n"]);return Ro=function(){return e},e}function Fo(){var e=zo(["\n color: white;\n background-color: #ff5e5e;\n\n display: block;\n box-sizing: border-box;\n border: none;\n border-radius: 2px;\n font-weight: bold;\n font-size: 12px;\n text-transform: uppercase;\n padding: 0;\n width: ",";\n min-height: ",";\n text-align: center;\n cursor: pointer;\n letter-spacing: 0.1;\n line-height: 1;\n\n &:hover,\n &:focus,\n &:active {\n color: #fff;\n }\n\n &:hover {\n background-color: #ff8585;\n }\n\n &:active {\n background-color: #e64545;\n }\n"]);return Fo=function(){return e},e}function Ho(){var e=zo(["\n outline: none;\n transition: all 0.1s ease-in;\n ",";\n\n &:disabled {\n opacity: ",";\n cursor: not-allowed;\n }\n"]);return Ho=function(){return e},e}function zo(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Bo=s.c.button(Ho(),(function(e){return e.theme.dark?Vo:Uo}),(function(e){return e.theme.dark?1:.65}));Bo.defaultProps={theme:c.e};var Uo=Object(s.b)(Fo(),(function(e){var t=e.size;return"".concat(t,"px")}),(function(e){var t=e.size;return"".concat(.42*t,"px")})),Vo=Object(s.b)(Ro(),(function(e){var t=e.size;return"".concat(t,"px")}),(function(e){var t=e.size;return"".concat(.42*t,"px")})),Wo=function(e){var t=e.id,n=e.className,r=e.style,a=e.size,i=e.disabled,s=e.children,l=e.n_clicks,c=e.buttonText,u=e.theme,f=Object(q.a)("stopbutton",u),p=Object(q.b)(e);return o.a.createElement("div",{id:t,className:f+(n?" "+n:""),style:r},o.a.createElement($.a,p,o.a.createElement(Bo,{className:f+"__button",size:a,disabled:i,onClick:function(){e.setProps&&e.setProps({n_clicks:l+1})}},s||c)))};Wo.defaultProps={buttonText:"Stop",n_clicks:0,size:92,labelPosition:"top"},Wo.propTypes={id:i.a.string,size:i.a.number,buttonText:i.a.string,n_clicks:i.a.number,disabled:i.a.bool,children:i.a.node,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func};var Go=Object(s.d)(Wo),Yo=n(6),Xo=n.n(Yo),Ko=n(11),$o=n.n(Ko),qo=n(12),Zo=n.n(qo),Jo=n(9),Qo=n.n(Jo),ea=n(13),ta=n.n(ea),na=n(23),ra=n.n(na),oa=n(5),aa=n.n(oa),ia=function(e){var t,n,r=e.className,a=e.included,i=e.vertical,s=e.style,l=e.length,c=e.offset,u=e.reverse;l<0&&(u=!u,l=Math.abs(l),c=100-c);var f=i?(t={},aa()(t,u?"top":"bottom",c+"%"),aa()(t,u?"bottom":"top","auto"),aa()(t,"height",l+"%"),t):(n={},aa()(n,u?"right":"left",c+"%"),aa()(n,u?"left":"right","auto"),aa()(n,"width",l+"%"),n),p=Xo()({},s,f);return a?o.a.createElement("div",{className:r,style:p}):null},sa=n(24),la=n.n(sa),ca=n(41),ua=n.n(ca),fa=n(82),pa=n.n(fa),da=n(14),ha=n.n(da);function ma(e,t,n,r){var o=ha.a.unstable_batchedUpdates?function(e){ha.a.unstable_batchedUpdates(n,e)}:n;return pa()(e,t,o,r)}var ba=n(8),va=n.n(ba),ga=function(e){var t=e.prefixCls,n=e.vertical,r=e.reverse,a=e.marks,i=e.dots,s=e.step,l=e.included,c=e.lowerBound,u=e.upperBound,f=e.max,p=e.min,d=e.dotStyle,h=e.activeDotStyle,m=f-p,b=function(e,t,n,r,o,a){ra()(!n||r>0,"`Slider[step]` should be a positive number in order to make Slider[dots] work.");var i=Object.keys(t).map(parseFloat).sort((function(e,t){return e-t}));if(n&&r)for(var s=o;s<=a;s+=r)-1===i.indexOf(s)&&i.push(s);return i}(0,a,i,s,p,f).map((function(e){var a,i=Math.abs(e-p)/m*100+"%",s=!l&&e===u||l&&e<=u&&e>=c,f=n?Xo()({},d,aa()({},r?"top":"bottom",i)):Xo()({},d,aa()({},r?"right":"left",i));s&&(f=Xo()({},f,h));var b=va()((a={},aa()(a,t+"-dot",!0),aa()(a,t+"-dot-active",s),aa()(a,t+"-dot-reverse",r),a));return o.a.createElement("span",{className:b,style:f,key:e})}));return o.a.createElement("div",{className:t+"-step"},b)};ga.propTypes={prefixCls:i.a.string,activeDotStyle:i.a.object,dotStyle:i.a.object,min:i.a.number,max:i.a.number,upperBound:i.a.number,lowerBound:i.a.number,included:i.a.bool,dots:i.a.bool,step:i.a.number,marks:i.a.object,vertical:i.a.bool,reverse:i.a.bool};var ya=ga,xa=function(e){var t=e.className,n=e.vertical,r=e.reverse,a=e.marks,i=e.included,s=e.upperBound,l=e.lowerBound,c=e.max,u=e.min,f=e.onClickLabel,p=Object.keys(a),d=c-u,h=p.map(parseFloat).sort((function(e,t){return e-t})).map((function(e){var c,p=a[e],h="object"==typeof p&&!o.a.isValidElement(p),m=h?p.label:p;if(!m&&0!==m)return null;var b=!i&&e===s||i&&e<=s&&e>=l,v=va()((c={},aa()(c,t+"-text",!0),aa()(c,t+"-text-active",b),c)),g=aa()({marginBottom:"-50%"},r?"top":"bottom",(e-u)/d*100+"%"),y=aa()({transform:"translateX(-50%)",msTransform:"translateX(-50%)"},r?"right":"left",r?(e-u/4)/d*100+"%":(e-u)/d*100+"%"),x=n?g:y,w=h?Xo()({},x,p.style):x;return o.a.createElement("span",{className:v,style:w,key:e,onMouseDown:function(t){return f(t,e)},onTouchStart:function(t){return f(t,e)}},m)}));return o.a.createElement("div",{className:t},h)};xa.propTypes={className:i.a.string,vertical:i.a.bool,reverse:i.a.bool,marks:i.a.object,included:i.a.bool,upperBound:i.a.number,lowerBound:i.a.number,max:i.a.number,min:i.a.number,onClickLabel:i.a.func};var wa=xa,Oa=function(e){function t(){var e,n,r,o;$o()(this,t);for(var a=arguments.length,i=Array(a),s=0;s=_a.F1&&t<=_a.F12)return!1;switch(t){case _a.ALT:case _a.CAPS_LOCK:case _a.CONTEXT_MENU:case _a.CTRL:case _a.DOWN:case _a.END:case _a.ESC:case _a.HOME:case _a.INSERT:case _a.LEFT:case _a.MAC_FF_META:case _a.META:case _a.NUMLOCK:case _a.NUM_CENTER:case _a.PAGE_DOWN:case _a.PAGE_UP:case _a.PAUSE:case _a.PRINT_SCREEN:case _a.RIGHT:case _a.SHIFT:case _a.UP:case _a.WIN_KEY:case _a.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=_a.ZERO&&e<=_a.NINE)return!0;if(e>=_a.NUM_ZERO&&e<=_a.NUM_MULTIPLY)return!0;if(e>=_a.A&&e<=_a.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case _a.SPACE:case _a.QUESTION_MARK:case _a.NUM_PLUS:case _a.NUM_MINUS:case _a.NUM_PERIOD:case _a.NUM_DIVISION:case _a.SEMICOLON:case _a.DASH:case _a.EQUALS:case _a.COMMA:case _a.PERIOD:case _a.SLASH:case _a.APOSTROPHE:case _a.SINGLE_QUOTE:case _a.OPEN_SQUARE_BRACKET:case _a.BACKSLASH:case _a.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},ja=_a;function Ca(e,t){try{return Object.keys(t).some((function(n){return e.target===Object(da.findDOMNode)(t[n])}))}catch(e){return!1}}function Pa(e,t){var n=t.min,r=t.max;return er}function Ma(e){return e.touches.length>1||"touchend"===e.type.toLowerCase()&&e.touches.length>0}function Aa(e,t){var n=t.marks,r=t.step,o=t.min,a=t.max,i=Object.keys(n).map(parseFloat);if(null!==r){var s=Math.floor((a-o)/r),l=Math.min((e-o)/r,s),c=Math.round(l)*r+o;i.push(c)}var u=i.map((function(t){return Math.abs(e-t)}));return i[u.indexOf(Math.min.apply(Math,Sa()(u)))]}function Ta(e,t){return e?t.clientY:t.pageX}function Da(e,t){return e?t.touches[0].clientY:t.touches[0].pageX}function Na(e,t){var n=t.getBoundingClientRect();return e?n.top+.5*n.height:window.pageXOffset+n.left+.5*n.width}function Ia(e,t){var n=t.max,r=t.min;return e<=r?r:e>=n?n:e}function La(e,t){var n=t.step,r=isFinite(Aa(e,t))?Aa(e,t):0;return null===n?r:parseFloat(r.toFixed(function(e){var t=e.toString(),n=0;return t.indexOf(".")>=0&&(n=t.length-t.indexOf(".")-1),n}(n)))}function Ra(e){e.stopPropagation(),e.preventDefault()}function Fa(e,t,n){var r="increase";switch(e.keyCode){case ja.UP:r=t&&n?"decrease":"increase";break;case ja.RIGHT:r=!t&&n?"decrease":"increase";break;case ja.DOWN:r=t&&n?"increase":"decrease";break;case ja.LEFT:r=!t&&n?"increase":"decrease";break;case ja.END:return function(e,t){return t.max};case ja.HOME:return function(e,t){return t.min};case ja.PAGE_UP:return function(e,t){return e+2*t.step};case ja.PAGE_DOWN:return function(e,t){return e-2*t.step};default:return}return function(e,t){return function(e,t,n){var r={increase:function(e,t){return e+t},decrease:function(e,t){return e-t}},o=r[e](Object.keys(n.marks).indexOf(JSON.stringify(t)),1),a=Object.keys(n.marks)[o];return n.step?r[e](t,n.step):Object.keys(n.marks).length&&n.marks[a]?n.marks[a]:t}(r,e,t)}}function Ha(){}function za(e){var t,n;return n=t=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onMouseDown=function(e){if(0===e.button){var t=n.props.vertical,r=Ta(t,e);if(Ca(e,n.handlesRefs)){var o=Na(t,e.target);n.dragOffset=r-o,r=o}else n.dragOffset=0;n.removeDocumentEvents(),n.onStart(r),n.addDocumentMouseEvents()}},n.onTouchStart=function(e){if(!Ma(e)){var t=n.props.vertical,r=Da(t,e);if(Ca(e,n.handlesRefs)){var o=Na(t,e.target);n.dragOffset=r-o,r=o}else n.dragOffset=0;n.onStart(r),n.addDocumentTouchEvents(),Ra(e)}},n.onFocus=function(e){var t=n.props,r=t.onFocus,o=t.vertical;if(Ca(e,n.handlesRefs)){var a=Na(o,e.target);n.dragOffset=0,n.onStart(a),Ra(e),r&&r(e)}},n.onBlur=function(e){var t=n.props.onBlur;n.onEnd(),t&&t(e)},n.onMouseUp=function(){n.handlesRefs[n.prevMovedHandleIndex]&&n.handlesRefs[n.prevMovedHandleIndex].clickFocus()},n.onMouseMove=function(e){if(n.sliderRef){var t=Ta(n.props.vertical,e);n.onMove(e,t-n.dragOffset)}else n.onEnd()},n.onTouchMove=function(e){if(!Ma(e)&&n.sliderRef){var t=Da(n.props.vertical,e);n.onMove(e,t-n.dragOffset)}else n.onEnd()},n.onKeyDown=function(e){n.sliderRef&&Ca(e,n.handlesRefs)&&n.onKeyboard(e)},n.onClickMarkLabel=function(e,t){e.stopPropagation(),n.onChange({value:t}),n.setState({value:t},(function(){return n.onEnd(!0)}))},n.saveSlider=function(e){n.sliderRef=e};var r=e.step,o=e.max,a=e.min,i=!isFinite(o-a)||(o-a)%r==0;return ra()(!r||Math.floor(r)!==r||i,"Slider[max] - Slider[min] (%s) should be a multiple of Slider[step] (%s)",o-a,r),n.handlesRefs={},n}return ta()(t,e),Zo()(t,[{key:"componentDidMount",value:function(){this.document=this.sliderRef&&this.sliderRef.ownerDocument;var e=this.props,t=e.autoFocus,n=e.disabled;t&&!n&&this.focus()}},{key:"componentWillUnmount",value:function(){ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"componentWillUnmount",this)&&ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"componentWillUnmount",this).call(this),this.removeDocumentEvents()}},{key:"getSliderStart",value:function(){var e=this.sliderRef,t=this.props,n=t.vertical,r=t.reverse,o=e.getBoundingClientRect();return n?r?o.bottom:o.top:window.pageXOffset+(r?o.right:o.left)}},{key:"getSliderLength",value:function(){var e=this.sliderRef;if(!e)return 0;var t=e.getBoundingClientRect();return this.props.vertical?t.height:t.width}},{key:"addDocumentTouchEvents",value:function(){this.onTouchMoveListener=ma(this.document,"touchmove",this.onTouchMove),this.onTouchUpListener=ma(this.document,"touchend",this.onEnd)}},{key:"addDocumentMouseEvents",value:function(){this.onMouseMoveListener=ma(this.document,"mousemove",this.onMouseMove),this.onMouseUpListener=ma(this.document,"mouseup",this.onEnd)}},{key:"removeDocumentEvents",value:function(){this.onTouchMoveListener&&this.onTouchMoveListener.remove(),this.onTouchUpListener&&this.onTouchUpListener.remove(),this.onMouseMoveListener&&this.onMouseMoveListener.remove(),this.onMouseUpListener&&this.onMouseUpListener.remove()}},{key:"focus",value:function(){this.props.disabled||this.handlesRefs[0].focus()}},{key:"blur",value:function(){var e=this;this.props.disabled||Object.keys(this.handlesRefs).forEach((function(t){e.handlesRefs[t]&&e.handlesRefs[t].blur&&e.handlesRefs[t].blur()}))}},{key:"calcValue",value:function(e){var t=this.props,n=t.vertical,r=t.min,o=t.max,a=Math.abs(Math.max(e,0)/this.getSliderLength());return n?(1-a)*(o-r)+r:a*(o-r)+r}},{key:"calcValueByPos",value:function(e){var t=(this.props.reverse?-1:1)*(e-this.getSliderStart());return this.trimAlignValue(this.calcValue(t))}},{key:"calcOffset",value:function(e){var t=this.props,n=t.min;return 100*((e-n)/(t.max-n))}},{key:"saveHandle",value:function(e,t){this.handlesRefs[e]=t}},{key:"render",value:function(){var e,n=this.props,r=n.prefixCls,a=n.className,i=n.marks,s=n.dots,l=n.step,c=n.included,u=n.disabled,f=n.vertical,p=n.reverse,d=n.min,h=n.max,m=n.children,b=n.maximumTrackStyle,v=n.style,g=n.railStyle,y=n.dotStyle,x=n.activeDotStyle,w=ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"render",this).call(this),O=w.tracks,k=w.handles,E=va()(r,(e={},aa()(e,r+"-with-marks",Object.keys(i).length),aa()(e,r+"-disabled",u),aa()(e,r+"-vertical",f),aa()(e,a,a),e));return o.a.createElement("div",{ref:this.saveSlider,className:E,onTouchStart:u?Ha:this.onTouchStart,onMouseDown:u?Ha:this.onMouseDown,onMouseUp:u?Ha:this.onMouseUp,onKeyDown:u?Ha:this.onKeyDown,onFocus:u?Ha:this.onFocus,onBlur:u?Ha:this.onBlur,style:v},o.a.createElement("div",{className:r+"-rail",style:Xo()({},b,g)}),O,o.a.createElement(ya,{prefixCls:r,vertical:f,reverse:p,marks:i,dots:s,step:l,included:c,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:h,min:d,dotStyle:y,activeDotStyle:x}),k,o.a.createElement(wa,{className:r+"-mark",onClickLabel:u?Ha:this.onClickMarkLabel,vertical:f,marks:i,included:c,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:h,min:d,reverse:p}),m)}}]),t}(e),t.displayName="ComponentEnhancer("+e.displayName+")",t.propTypes=Xo()({},e.propTypes,{min:i.a.number,max:i.a.number,startPoint:i.a.number,step:i.a.number,marks:i.a.object,included:i.a.bool,className:i.a.string,prefixCls:i.a.string,disabled:i.a.bool,children:i.a.any,onBeforeChange:i.a.func,onChange:i.a.func,onAfterChange:i.a.func,handle:i.a.func,dots:i.a.bool,vertical:i.a.bool,style:i.a.object,reverse:i.a.bool,minimumTrackStyle:i.a.object,maximumTrackStyle:i.a.object,handleStyle:i.a.oneOfType([i.a.object,i.a.arrayOf(i.a.object)]),trackStyle:i.a.oneOfType([i.a.object,i.a.arrayOf(i.a.object)]),railStyle:i.a.object,dotStyle:i.a.object,activeDotStyle:i.a.object,autoFocus:i.a.bool,onFocus:i.a.func,onBlur:i.a.func}),t.defaultProps=Xo()({},e.defaultProps,{prefixCls:"rc-slider",className:"",min:0,max:100,step:1,marks:{},handle:function(e){var t=e.index,n=la()(e,["index"]);return delete n.dragging,null===n.value?null:o.a.createElement(ka,Xo()({},n,{key:t}))},onBeforeChange:Ha,onChange:Ha,onAfterChange:Ha,included:!0,disabled:!1,dots:!1,vertical:!1,reverse:!1,trackStyle:[{}],handleStyle:[{}],railStyle:{},dotStyle:{},activeDotStyle:{}}),n}var Ba=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onEnd=function(e){var t=n.state.dragging;n.removeDocumentEvents(),(t||e)&&n.props.onAfterChange(n.getValue()),n.setState({dragging:!1})};var r=void 0!==e.defaultValue?e.defaultValue:e.min,o=void 0!==e.value?e.value:r;return n.state={value:n.trimAlignValue(o),dragging:!1},ra()(!("minimumTrackStyle"in e),"minimumTrackStyle will be deprecated, please use trackStyle instead."),ra()(!("maximumTrackStyle"in e),"maximumTrackStyle will be deprecated, please use railStyle instead."),n}return ta()(t,e),Zo()(t,[{key:"componentDidUpdate",value:function(e,t){if("value"in this.props||"min"in this.props||"max"in this.props){var n=this.props,r=n.value,o=n.onChange,a=void 0!==r?r:t.value,i=this.trimAlignValue(a,this.props);i!==t.value&&(this.setState({value:i}),Pa(a,this.props)&&o(i))}}},{key:"onChange",value:function(e){var t=this.props,n=!("value"in t),r=e.value>this.props.max?Xo()({},e,{value:this.props.max}):e;n&&this.setState(r);var o=r.value;t.onChange(o)}},{key:"onStart",value:function(e){this.setState({dragging:!0});var t=this.props,n=this.getValue();t.onBeforeChange(n);var r=this.calcValueByPos(e);this.startValue=r,this.startPosition=e,r!==n&&(this.prevMovedHandleIndex=0,this.onChange({value:r}))}},{key:"onMove",value:function(e,t){Ra(e);var n=this.state.value,r=this.calcValueByPos(t);r!==n&&this.onChange({value:r})}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,r=Fa(e,t.vertical,n);if(r){Ra(e);var o=this.state.value,a=r(o,this.props),i=this.trimAlignValue(a);if(i===o)return;this.onChange({value:i}),this.props.onAfterChange(i),this.onEnd()}}},{key:"getValue",value:function(){return this.state.value}},{key:"getLowerBound",value:function(){return this.props.min}},{key:"getUpperBound",value:function(){return this.state.value}},{key:"trimAlignValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null===e)return null;var n=Xo()({},this.props,t),r=Ia(e,n);return La(r,n)}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,r=t.vertical,a=t.included,i=t.disabled,s=t.minimumTrackStyle,l=t.trackStyle,c=t.handleStyle,u=t.tabIndex,f=t.ariaLabelForHandle,p=t.ariaLabelledByForHandle,d=t.ariaValueTextFormatterForHandle,h=t.min,m=t.max,b=t.startPoint,v=t.reverse,g=t.handle,y=this.state,x=y.value,w=y.dragging,O=this.calcOffset(x),k=g({className:n+"-handle",prefixCls:n,vertical:r,offset:O,value:x,dragging:w,disabled:i,min:h,max:m,reverse:v,index:0,tabIndex:u,ariaLabel:f,ariaLabelledBy:p,ariaValueTextFormatter:d,style:c[0]||c,ref:function(t){return e.saveHandle(0,t)}}),E=void 0!==b?this.calcOffset(b):0,S=l[0]||l;return{tracks:o.a.createElement(ia,{className:n+"-track",vertical:r,included:a,offset:E,reverse:v,length:O-E,style:Xo()({},s,S)}),handles:k}}}]),t}(o.a.Component);Ba.propTypes={defaultValue:i.a.number,value:i.a.number,disabled:i.a.bool,autoFocus:i.a.bool,tabIndex:i.a.number,reverse:i.a.bool,min:i.a.number,max:i.a.number,startPoint:i.a.number,ariaLabelForHandle:i.a.string,ariaLabelledByForHandle:i.a.string,ariaValueTextFormatterForHandle:i.a.func};var Ua=za(Ba),Va=n(83),Wa=n.n(Va),Ga=function(e){var t=e.value,n=e.handle,r=e.bounds,o=e.props,a=o.allowCross,i=o.pushable,s=Number(i),l=Ia(t,o),c=l;return a||null==n||void 0===r||(n>0&&l<=r[n-1]+s&&(c=r[n-1]+s),n=r[n+1]-s&&(c=r[n+1]-s)),La(c,o)},Ya=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onEnd=function(e){var t=n.state.handle;n.removeDocumentEvents(),(null!==t||e)&&n.props.onAfterChange(n.getValue()),n.setState({handle:null})};var r=e.count,o=e.min,a=e.max,i=Array.apply(void 0,Sa()(Array(r+1))).map((function(){return o})),s="defaultValue"in e?e.defaultValue:i,l=(void 0!==e.value?e.value:s).map((function(t,n){return Ga({value:t,handle:n,props:e})})),c=l[0]===a?0:l.length-1;return n.state={handle:null,recent:c,bounds:l},n}return ta()(t,e),Zo()(t,[{key:"componentDidUpdate",value:function(e,t){var n=this;if(("value"in this.props||"min"in this.props||"max"in this.props)&&(this.props.min!==e.min||this.props.max!==e.max||!Wa()(this.props.value,e.value))){var r=this.props,o=r.onChange,a=r.value||t.bounds;if(a.some((function(e){return Pa(e,n.props)})))o(a.map((function(e){return Ia(e,n.props)})))}}},{key:"onChange",value:function(e){var t=this.props;if(!("value"in t))this.setState(e);else{var n={};["handle","recent"].forEach((function(t){void 0!==e[t]&&(n[t]=e[t])})),Object.keys(n).length&&this.setState(n)}var r=Xo()({},this.state,e).bounds;t.onChange(r)}},{key:"onStart",value:function(e){var t=this.props,n=this.state,r=this.getValue();t.onBeforeChange(r);var o=this.calcValueByPos(e);this.startValue=o,this.startPosition=e;var a=this.getClosestBound(o);if(this.prevMovedHandleIndex=this.getBoundNeedMoving(o,a),this.setState({handle:this.prevMovedHandleIndex,recent:this.prevMovedHandleIndex}),o!==r[this.prevMovedHandleIndex]){var i=[].concat(Sa()(n.bounds));i[this.prevMovedHandleIndex]=o,this.onChange({bounds:i})}}},{key:"onMove",value:function(e,t){Ra(e);var n=this.state,r=this.calcValueByPos(t);r!==n.bounds[n.handle]&&this.moveTo(r)}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,r=Fa(e,t.vertical,n);if(r){Ra(e);var o=this.state,a=this.props,i=o.bounds,s=o.handle,l=i[null===s?o.recent:s],c=r(l,a),u=Ga({value:c,handle:s,bounds:o.bounds,props:a});if(u===l)return;this.moveTo(u,!0)}}},{key:"getValue",value:function(){return this.state.bounds}},{key:"getClosestBound",value:function(e){for(var t=this.state.bounds,n=0,r=1;r=t[r]&&(n=r);return Math.abs(t[n+1]-e)=r.length||o<0)return!1;var a=t+n,i=r[o],s=this.props.pushable,l=n*(e[a]-i);return!!this.pushHandle(e,a,n,s-l)&&(e[t]=i,!0)}},{key:"trimAlignValue",value:function(e){var t=this.state,n=t.handle,r=t.bounds;return Ga({value:e,handle:n,bounds:r,props:this.props})}},{key:"render",value:function(){var e=this,t=this.state,n=t.handle,r=t.bounds,a=this.props,i=a.prefixCls,s=a.vertical,l=a.included,c=a.disabled,u=a.min,f=a.max,p=a.reverse,d=a.handle,h=a.trackStyle,m=a.handleStyle,b=a.tabIndex,v=a.ariaLabelGroupForHandles,g=a.ariaLabelledByGroupForHandles,y=a.ariaValueTextFormatterGroupForHandles,x=r.map((function(t){return e.calcOffset(t)})),w=i+"-handle",O=r.map((function(t,r){var o,a=b[r]||0;return(c||null===b[r])&&(a=null),d({className:va()((o={},aa()(o,w,!0),aa()(o,w+"-"+(r+1),!0),o)),prefixCls:i,vertical:s,offset:x[r],value:t,dragging:n===r,index:r,tabIndex:a,min:u,max:f,reverse:p,disabled:c,style:m[r],ref:function(t){return e.saveHandle(r,t)},ariaLabel:v[r],ariaLabelledBy:g[r],ariaValueTextFormatter:y[r]})}));return{tracks:r.slice(0,-1).map((function(e,t){var n,r=t+1,a=va()((n={},aa()(n,i+"-track",!0),aa()(n,i+"-track-"+r,!0),n));return o.a.createElement(ia,{className:a,vertical:s,reverse:p,included:l,offset:x[r-1],length:x[r]-x[r-1],style:h[t],key:r})})),handles:O}}}],[{key:"getDerivedStateFromProps",value:function(e,t){if("value"in e||"min"in e||"max"in e){var n=(e.value||t.bounds).map((function(n,r){return Ga({value:n,handle:r,bounds:t.bounds,props:e})}));return n.length===t.bounds.length&&n.every((function(e,n){return e===t.bounds[n]}))?null:Xo()({},t,{bounds:n})}return null}}]),t}(o.a.Component);Ya.displayName="Range",Ya.propTypes={autoFocus:i.a.bool,defaultValue:i.a.arrayOf(i.a.number),value:i.a.arrayOf(i.a.number),count:i.a.number,pushable:i.a.oneOfType([i.a.bool,i.a.number]),allowCross:i.a.bool,disabled:i.a.bool,reverse:i.a.bool,tabIndex:i.a.arrayOf(i.a.number),min:i.a.number,max:i.a.number,ariaLabelGroupForHandles:i.a.arrayOf(i.a.string),ariaLabelledByGroupForHandles:i.a.arrayOf(i.a.string),ariaValueTextFormatterGroupForHandles:i.a.arrayOf(i.a.func)},Ya.defaultProps={count:1,allowCross:!0,pushable:!1,tabIndex:[],ariaLabelGroupForHandles:[],ariaLabelledByGroupForHandles:[],ariaValueTextFormatterGroupForHandles:[]};var Xa=za(Ya);function Ka(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}function $a(e){return e instanceof HTMLElement?e:ha.a.findDOMNode(e)}function qa(e){return(qa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Za(e,t){"function"==typeof e?e(t):"object"===qa(e)&&e&&"current"in e&&(e.current=t)}function Ja(){for(var e=arguments.length,t=new Array(e),n=0;n=0&&t.left>=0&&t.bottom>t.top&&t.right>t.left?t:null}function ts(e){var t,n,r;if(qi.isWindow(e)||9===e.nodeType){var o=qi.getWindow(e);t={left:qi.getWindowScrollLeft(o),top:qi.getWindowScrollTop(o)},n=qi.viewportWidth(o),r=qi.viewportHeight(o)}else t=qi.offset(e),n=qi.outerWidth(e),r=qi.outerHeight(e);return t.width=n,t.height=r,t}function ns(e,t){var n=t.charAt(0),r=t.charAt(1),o=e.width,a=e.height,i=e.left,s=e.top;return"c"===n?s+=a/2:"b"===n&&(s+=a),"c"===r?i+=o/2:"r"===r&&(i+=o),{left:i,top:s}}function rs(e,t,n,r,o){var a=ns(t,n[1]),i=ns(e,n[0]),s=[i.left-a.left,i.top-a.top];return{left:Math.round(e.left-s[0]+r[0]-o[0]),top:Math.round(e.top-s[1]+r[1]-o[1])}}function os(e,t,n){return e.leftn.right}function as(e,t,n){return e.topn.bottom}function is(e,t,n){var r=[];return qi.each(e,(function(e){r.push(e.replace(t,(function(e){return n[e]})))})),r}function ss(e,t){return e[t]=-e[t],e}function ls(e,t){return(/%$/.test(e)?parseInt(e.substring(0,e.length-1),10)/100*t:parseInt(e,10))||0}function cs(e,t){e[0]=ls(e[0],t.width),e[1]=ls(e[1],t.height)}function us(e,t,n,r){var o=n.points,a=n.offset||[0,0],i=n.targetOffset||[0,0],s=n.overflow,l=n.source||e;a=[].concat(a),i=[].concat(i),s=s||{};var c={},u=0,f=es(l),p=ts(l);cs(a,p),cs(i,t);var d=rs(p,t,o,a,i),h=qi.merge(p,d);if(f&&(s.adjustX||s.adjustY)&&r){if(s.adjustX&&os(d,p,f)){var m=is(o,/[lr]/gi,{l:"r",r:"l"}),b=ss(a,0),v=ss(i,0);(function(e,t,n){return e.left>n.right||e.left+t.widthn.bottom||e.top+t.height=n.left&&o.left+a.width>n.right&&(a.width-=o.left+a.width-n.right),r.adjustX&&o.left+a.width>n.right&&(o.left=Math.max(n.right-a.width,n.left)),r.adjustY&&o.top=n.top&&o.top+a.height>n.bottom&&(a.height-=o.top+a.height-n.bottom),r.adjustY&&o.top+a.height>n.bottom&&(o.top=Math.max(n.bottom-a.height,n.top)),qi.mix(o,a)}(d,p,f,c))}return h.width!==p.width&&qi.css(l,"width",qi.width(l)+h.width-p.width),h.height!==p.height&&qi.css(l,"height",qi.height(l)+h.height-p.height),qi.offset(l,{left:h.left,top:h.top},{useCssRight:n.useCssRight,useCssBottom:n.useCssBottom,useCssTransform:n.useCssTransform,ignoreShake:n.ignoreShake}),{points:o,offset:a,targetOffset:i,overflow:c}}function fs(e,t,n){var r=n.target||t;return us(e,ts(r),n,!function(e){var t=es(e),n=ts(e);return!t||n.left+n.width<=t.left||n.top+n.height<=t.top||n.left>=t.right||n.top>=t.bottom}(r))}function ps(e,t,n){var r,o,a=qi.getDocument(e),i=a.defaultView||a.parentWindow,s=qi.getWindowScrollLeft(i),l=qi.getWindowScrollTop(i),c=qi.viewportWidth(i),u=qi.viewportHeight(i);r="pageX"in t?t.pageX:s+t.clientX,o="pageY"in t?t.pageY:l+t.clientY;var f=r>=0&&r<=s+c&&o>=0&&o<=l+u;return us(e,{left:r,top:o,width:0,height:0},function(e){for(var t=1;t1&&(p=o.a.createElement("div",{className:"".concat(n,"-content")},s)),o.a.createElement("div",{ref:t,className:va()(r,!a&&"".concat(e.hiddenClassName)),onMouseEnter:l,onMouseLeave:c,onMouseDown:u,onTouchStart:f,style:i},p)}));zs.displayName="PopupInner";var Bs=zs;function Us(e){var t=e.prefixCls,n=e.motion,r=e.animation,o=e.transitionName;return n||(r?{motionName:"".concat(t,"-").concat(r)}:o?{motionName:o}:null)}function Vs(e){return(Vs="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ws(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Gs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ys(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var El=Object(r.forwardRef)((function(e,t){var n=e.overlayClassName,a=e.trigger,i=void 0===a?["hover"]:a,s=e.mouseEnterDelay,l=void 0===s?0:s,c=e.mouseLeaveDelay,u=void 0===c?.1:c,f=e.overlayStyle,p=e.prefixCls,d=void 0===p?"rc-tooltip":p,h=e.children,m=e.onVisibleChange,b=e.afterVisibleChange,v=e.transitionName,g=e.animation,y=e.placement,x=void 0===y?"right":y,w=e.align,O=void 0===w?{}:w,k=e.destroyTooltipOnHide,E=void 0!==k&&k,S=e.defaultVisible,_=e.getTooltipContainer,j=kl(e,["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer"]),C=Object(r.useRef)(null);Object(r.useImperativeHandle)(t,(function(){return C.current}));var P=function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},n=t.isTarget,r=t.showLabel,a=o.a.createElement(vc,Ac({isTarget:n},e),o.a.createElement("div",{className:"label"},e.label),o.a.createElement("div",{className:"value"},e.value));return o.a.createElement(lc,Ac({isTarget:n},e),r&&a,o.a.createElement(fc,Ac({isTarget:n,showLabel:r},e)))},Dc=function(e){if(!e.color.ranges||!Re(e)){var t=Ve(e.color);return{trackStyle:{backgroundColor:t},activeDotStyle:e.theme.dark?{background:t,boxShadow:"0 0 6px 1px ".concat(t)}:{borderColor:t}}}return{railStyle:{backgroundImage:"".concat(Ue(e),", linear-gradient(0deg, #000, #000)"),backgroundBlendMode:e.theme.dark?"none":"overlay"},trackStyle:{mixBlendMode:"overlay",background:e.theme.dark?"#fff":"#000"},dotStyle:{display:"none"}}},Nc=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=function(e,t){return!t||"object"!==Oc(t)&&"function"!=typeof t?Pc(e):t}(this,Cc(t).call(this,e))).state={value:null!=e.value?e.value:e.min,trackStyle:Dc(e)},n.onChange=n.onChange.bind(Pc(n)),n.onAfterChange=n.onAfterChange.bind(Pc(n)),n.renderSliderHandle=n.renderSliderHandle.bind(Pc(n)),n.renderTargets=n.renderTargets.bind(Pc(n)),n.calcLabelOffset=n.calcLabelOffset.bind(Pc(n)),n}var n,r,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Mc(e,t)}(t,e),n=t,(r=[{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t={},n=Object(q.b)(this.props);void 0!==e.value&&e.value!==this.state.value&&(t.value=e.value),jl()(e.color,this.props.color)||(t.trackStyle=Dc(Sc({},n,{},e))),this.setState(t)}},{key:"onChange",value:function(e){var t=this.props,n=t.updatemode,r=t.setProps;this.props.value&&"drag"===n||this.setState({value:e}),"drag"===n&&r&&r({value:e})}},{key:"onAfterChange",value:function(e){var t=this.props,n=t.updatemode,r=t.setProps;"mouseup"===n&&r&&r({value:e})}},{key:"renderSliderHandle",value:function(e){var t=this.props.handleLabel,n=Sc({},Object(q.b)(this.props),{},e);return t?(n=Sc({},n,{value:t.showCurrentValue&&this.state.value,label:t.label||(t instanceof Object?" ":t),color:t.color||Ve(this.props.color),style:t.style}),Tc(n,{showLabel:!0})):Tc(n)}},{key:"renderTargets",value:function(){var e=Object(q.b)(this.props);return Object.entries(this.props.targets).reduce((function(t,n){var r=kc(n,2),o=r[0],a=r[1],i=Sc({},e,{label:a.label||a,value:a.showCurrentValue&&o,color:a.color,style:a.style}),s=Tc(i,{isTarget:!0,showLabel:!!a});return t[o]={style:bc,label:s},t}),{})}},{key:"calcLabelOffset",value:function(e){var t=e.vertical,n=e.labelPosition,r=e.marks,o=e.targets,a=e.handleLabel;if(t)return null;if("bottom"===n)return"transform: translateY(".concat(r?20:0,"px);");var i=!1;return Object.values(o).map((function(e){e.showCurrentValue&&(i=!0)})),a&&a.showCurrentValue&&(i=!0),"transform: translateY(".concat(i?-38:-16,"px);")}},{key:"render",value:function(){var e=this.state.value,t=this.props,n=t.className,r=t.id,a=t.theme,i=t.label,s=t.size,c=t.vertical,u=t.style,f=t.marks,p=Object(q.a)("slider",a.dark),d=Object(q.b)(this.props),h=this.props.vertical?Sc({},u,{marginLeft:"45px"}):Sc({},u,{marginTop:"45px"});return h=this.props.fullSize?this.props.vertical?Sc({},h,{height:"100%"}):Sc({},h,{width:"100%"}):h,o.a.createElement("div",{id:r,style:h,className:p+(n?" "+n:"")},o.a.createElement($.a,Ac({className:p+"__label",labelCSS:i?this.calcLabelOffset(this.props):null},d),o.a.createElement(sc,{fullSize:this.props.fullSize,size:s,vertical:c},o.a.createElement(Sl,Ac({className:p+"__slider",onChange:this.onChange,onAfterChange:this.onAfterChange,value:e,handle:this.renderSliderHandle,marks:Sc({},f,{},this.renderTargets())},this.state.trackStyle,Object(l.a)(["setProps","updatemode","value","marks"],d))))))}}])&&jc(n.prototype,r),a&&jc(n,a),t}(r.Component);Nc.defaultProps=Vc,Nc.propTypes=Wc;var Ic=Object(s.d)(Nc);function Lc(e){return(Lc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Rc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Fc(e,t){for(var n=0;no){b.current.innerHTML=e.exceedMessage?"string"==typeof e.exceedMessage?e.exceedMessage:e.exceedMessage(r,o)||"":""}else if(r div {\n margin-top: 56px;\n line-height: 28px;\n }\n"]);return Zc=function(){return e},e}function Jc(){var e=eu(["\n width: ","px;\n height: ","px;\n border-radius: 50%;\n background-color: ",";\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n bottom: -","px;\n z-index: -1;\n"]);return Jc=function(){return e},e}function Qc(){var e=eu(["\n display: flex;\n flex-direction: column;\n align-items: center;\n"]);return Qc=function(){return e},e}function eu(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var tu=s.c.div(Qc()),nu=s.c.div(Jc(),30,30,(function(e){return e.on?e.color||e.theme.primary:e.theme.secondary}),20);nu.defaultProps={theme:c.e};var ru=s.c.div(Zc());function ou(){return(ou=Object.assign||function(e){for(var t=1;t1?arguments[1]:void 0,b=void 0!==m,v=0,g=u(p);if(b&&(m=r(m,h>2?arguments[2]:void 0,2)),null==g||d==Array&&s(g))for(n=new d(t=l(p.length));t>v;v++)c(n,v,b?m(p[v],v):p[v]);else for(f=g.call(p),n=new d;!(o=f.next()).done;v++)c(n,v,b?i(f,m,[o.value,v],!0):o.value);return n.length=v,n}})},function(e,t,n){var r=n(26);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var a=e.return;throw void 0!==a&&r(a.call(e)),t}}},function(e,t,n){var r=n(35),o=n(16)("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||a[o]===e)}},function(e,t,n){"use strict";var r=n(19),o=n(33);e.exports=function(e,t,n){t in e?r.f(e,t,o(0,n)):e[t]=n}},function(e,t,n){var r=n(147),o=n(16)("iterator"),a=n(35);e.exports=n(10).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||a[r(e)]}},function(e,t,n){var r=n(45),o=n(16)("toStringTag"),a="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,i;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:a?r(t):"Object"==(i=r(t))&&"function"==typeof t.callee?"Arguments":i}},function(e,t,n){var r=n(16)("iterator"),o=!1;try{var a=[7][r]();a.return=function(){o=!0},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var a=[7],i=a[r]();i.next=function(){return{done:n=!0}},a[r]=function(){return i},e(a)}catch(e){}return n}},function(e,t,n){(function(t){(function(){var n,r,o,a,i,s;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:null!=t&&t.hrtime?(e.exports=function(){return(n()-i)/1e6},r=t.hrtime,a=(n=function(){var e;return 1e9*(e=r())[0]+e[1]})(),s=1e9*t.uptime(),i=a-s):Date.now?(e.exports=function(){return Date.now()-o},o=Date.now()):(e.exports=function(){return(new Date).getTime()-o},o=(new Date).getTime())}).call(this)}).call(this,n(63))},function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}(e.exports="function"==typeof Object.keys?Object.keys:n).shim=n},function(e,t){var n="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();function r(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function o(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}(t=e.exports=n?r:o).supported=r,t.unsupported=o},function(e,t,n){var r=n(153),o=n(154);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[e.i,o,""]]);var a={insert:function(e){document.head.insertBefore(e,document.head.firstElementChild)},singleton:!1},i=(r(o,a),o.locals?o.locals:{});e.exports=i},function(e,t,n){"use strict";var r,o=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},a=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),i=[];function s(e){for(var t=-1,n=0;n0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;if(isNaN(e))return e;var n=t.toString().split("."),r=ke(n,2),o=(r[0],r[1]),a=o?o.length:0;return e.toFixed(a)},_e=function(e){var t=e.min,n=e.max,r=e.value;return null==r||rn?n:r},je=function(e){var t=e.min,n=e.max,r=e.value,o=e.progressionTarget,a=void 0===o?100:o;return r=Number(r),1*Math.abs(r-t)/Math.abs(n-t)*a},Ce=function(e,t){return Number(Math.round(e+"e"+t)+"e-"+t)},Pe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9999;return Math.floor(Math.random()*(t-e+1))+e},Me=n(81),Ae=n.n(Me);function Te(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e))&&"[object Arguments]"!==Object.prototype.toString.call(e))return;var n=[],r=!0,o=!1,a=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function De(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);ta&&f.push({key:p,subKey:o,index:0}),n[p][1]>a&&f.push({key:p,subKey:o,index:1}),n[p][0]i&&(n[p][0]=i),s[0]==n[p][1]&&n[p][1]>i&&(n[p][1]=i),s[s.length-1]==n[p][0]&&n[p][0]1&&void 0!==arguments[1]?arguments[1]:10;return"e"===t&&(t=Math.exp(1)),Math.log(e)/Math.log(t)},generateLogFormatter:function(e){var t=e.base,n=void 0===t?10:t,r=e.isSVG,a=void 0!==r&&r;return function(e){return a?o.a.createElement("tspan",null,n,o.a.createElement("tspan",{dy:"-6px"},e)):o.a.createElement("span",null,n,o.a.createElement("sup",null,e))}},formatValue:function(e,t){return o.a.createElement(Yt,null,"~",t,o.a.createElement("sup",null,Ce(e,2)))},genLogMarks:function(e,t){var n=e.min,r=e.max,a=e.step,i=void 0===a?1:a,s=e.base,l=void 0===s?10:s,c=e.marks;if(!c){var u=n;for(c={};u<=r;)c[u]=!0,u+=i}return Object.keys(c).forEach((function(e){"boolean"==typeof c[e]&&(c[e]=t?o.a.createElement("tspan",null,l,o.a.createElement("tspan",{dy:"-6px"},e)):o.a.createElement("span",null,l,o.a.createElement("sup",null,e)))})),c}};function Kt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qt(e){var t=function(e){var t=e.min,n=e.max,r=e.scale,o=void 0===r?{}:r,a=e.formatter,i={},s=null!=o.start,l=null!=o.interval,c=null!=o.labelInterval;i.min=t,i.max=n,i.start=s?o.start:t,i.interval=l?o.interval:function(e,t){var n=Math.ceil,r=1*Math.abs(t-e)/10;return r>1?n(r):(o=r,Number(o.toFixed(2)));var o}(i.start,n),i.labelInterval=c?o.labelInterval:2,i.custom=o.custom||{},i.formatter=a||Zt;var u=!s&&!l&&!c,f=Object.keys(i.custom).length;return i.onlyRenderCustom=f&&u,i.start=i.start!=t?t:i.start,i}(e),n=function(e){for(var t=1;to){h.current.innerHTML=e.exceedMessage?"string"==typeof e.exceedMessage?e.exceedMessage:e.exceedMessage(r,o)||"":""}else if(r=10?.05*n:.5,o=n-2*r;return Object(s.b)(cn(),e.vertical?"".concat(o,"px"):"100%",e.vertical?"100%":"".concat(o,"px"),e.vertical?"".concat(r,"px 0"):"0 ".concat(r,"px"))}),(function(e){return e.theme.dark&&Sn}));En.defaultProps={theme:c.e};var Sn=Object(s.b)(ln(),(function(e){var t=e.color,n=e.theme;if(!e.gradient)return Object(s.b)(sn(),t||n.primary)}),(function(e){var t=e.color,n=e.theme;return"2px 2px 6px 1px rgba(0, 0, 0, 0.45), inset 1px 1px 2px 0 rgba(255, 255, 255, 0.3),\n 1px 1px 1px 0px rgba(0, 0, 0, 0.6), 0 0 3px 0px ".concat(t||n.primary)})),_n=s.c.div(an(),(function(e){return e.vertical?Object(s.b)(on()):""}));function jn(){return(jn=Object.assign||function(e){for(var t=1;t=n[0]&&e<=n[1]}))[0];return n&&n[0]},Dn=function(e){var t=e.step,n=e.min,r=e.max,a=e.label,i=e.labelPosition,s=e.id,l=e.className,c=e.color,u=e.size,f=e.style,p=e.showCurrentValue,d=e.vertical,h=e.theme,m=e.value||n,b=null,v=[],g=Math.max(Math.min(r,m),n);c.gradient&&Re({color:c,min:n,max:r})&&(b=function(e){var t=e.color,n=e.min,r=e.max,o=0,a=Be(t.ranges).map((function(e){var t=Te(e,2),a=t[0],i=t[1],s=1*(i[1]-i[0])/(r-n),l=o;return o=o+s,{color:a,pos:l}}));return Ae()(a)}({color:c,min:n,max:r}));for(var y=Object(q.a)("graduatedbar",h),x=Object(q.b)(e),w=n;w=this.props.min&&e<=this.props.max?e:this.props.min>e?this.props.min:this.props.max}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){void 0!==e.value&&this.setState({value:e.value}),this.state.max!=e.max&&this.setState({max:e.max instanceof Number?e.max:this.state.max}),this.state.min!=e.min&&this.setState({min:e.min instanceof Number?e.min:this.state.min})}},{key:"componentDidMount",value:function(){window.addEventListener("mouseup",this.onMouseUp,!1),n(42)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("mouseup",this.onMouseUp,!1)}},{key:"onMouseDown",value:function(){this.setState({isDragging:!0})}},{key:"onMouseUp",value:function(){this.state.isDragging&&this.setState((function(e){return{rotation:e.currentDeg,isDragging:!1,startAngle:-1}}))}},{key:"onMouseMove",value:function(e){if(this.state.isDragging){var t=this.props,n=t.min,r=t.max,o=this.state.rotation,a=this.state.startAngle;e.touches&&(e=e.touches[0]);var i=this.knobElement.getBoundingClientRect(),s=i.width/2+i.left,l=i.height/2+i.top,u=Math.atan2(e.clientX-s,e.clientY-l)*(180/Math.PI);e.clientX-s>=0?u=Math.abs(360-u)+180:u-=180,u=Math.abs(u),-1===a&&(a=u,this.setState({startAngle:a}));var f=Math.floor(u-a+o);f=Math.min(f,c.b),f=Math.max(f,0),this.setState({currentDeg:f}),this.setValue(Ce(function(e){var t=e.min,n=e.max,r=e.deg;return je({min:0,max:c.b,value:r,progressionTarget:n-t})+t}({min:n,max:r,deg:f}),2))}}},{key:"setValue",value:function(e){this.setState({value:e}),this.props.setProps&&this.props.setProps({value:e})}},{key:"render",value:function(){var e=this,t=this.props,n=t.min,r=t.max,a=t.value,i=void 0===a?this.props.min:a,s=this.props,l=s.id,c=s.className,u=s.labelPosition,f=s.color,p=s.style,d=s.disabled,h=s.theme,m=s.textColor,b=je({min:n,max:r,value:this.getValue(i),progressionTarget:1}),v=m||Ve(f),g=Object(q.a)("knob",h),y=Object(q.b)(this.props),x=o.a.createElement(o.a.Fragment,null,o.a.createElement(gt,{className:g+"__current-value",valueColor:v,valueSize:Math.min(13.3333*(this.props.size+32)/100,32),units:!1,css:"transform: translateY(0%); top: 0;"},i.toFixed(this.props.digits)));return o.a.createElement("div",{id:l,className:g+(c?" "+c:""),style:p},o.a.createElement($.a,Kn({className:g+"__label"},y,{labelCSS:"top"===u?null:"transform: translateY(-40px);"}),o.a.createElement(Yn,{className:g+"__container",colorValue:v,color:Ve(f)},this.props.showCurrentValue&&x,o.a.createElement(Fn,Kn({progress:b},y,this.state,{min:this.props.min!=this.state.min?this.props.min:this.state.min,max:this.props.max!=this.state.max?this.props.max:this.state.max,value:this.getValue(i),scale:qt(this.props),currentDeg:Qn({min:this.props.min,max:this.props.max,value:this.getValue(i)}),refFunc:function(t){return e.knobElement=t},onMouseDown:d?this.noop:this.onMouseDown,onMouseUp:d?this.noop:this.onMouseUp,onMouseMove:d?this.noop:this.onMouseMove})))))}}])&&$n(r.prototype,a),i&&$n(r,i),t}(r.Component);er.defaultProps={min:0,max:10,theme:c.e,labelPosition:"top",persisted_props:["value"],persistence_type:"local",size:114},er.propTypes={id:i.a.string,value:i.a.number,color:i.a.oneOfType([i.a.string,i.a.shape({default:i.a.string,gradient:i.a.bool,ranges:i.a.shape({color:i.a.arrayOf(i.a.number)})})]),size:i.a.number,min:i.a.number,max:i.a.number,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),scale:i.a.shape({start:i.a.number,interval:i.a.number,labelInterval:i.a.number,custom:i.a.oneOfType([i.a.number,i.a.shape({style:i.a.string,label:i.a.string})])}),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"]),showCurrentValue:i.a.bool,textColor:i.a.string,digits:i.a.number};var tr=Object(s.d)(er);tr.defaultProps=er.defaultProps;var nr=tr;function rr(){var e=lr(["\n & .darkLED-fill {\n fill: ",";\n }\n"]);return rr=function(){return e},e}function or(){var e=lr(["\n border-radius: 3px;\n padding: 12px 8px 12px 14px;\n border: 1px solid ",";\n background: ",";\n"]);return or=function(){return e},e}function ar(){var e=lr(["\n padding: 12px 8px 4px 16px;\n background-color: #22272a;\n background-image: linear-gradient(145deg, rgba(255, 255, 255, 0.05) 0%, rgba(0, 0, 0, 0.5) 100%);\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1);\n"]);return ar=function(){return e},e}function ir(){var e=lr(["\n background-color: ",";\n "]);return ir=function(){return e},e}function sr(){var e=lr(["\n display: inline-flex;\n flex-direction: row;\n ",";\n ","\n"]);return sr=function(){return e},e}function lr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var cr=s.c.div(sr(),(function(e){return e.theme.dark?ur:fr}),(function(e){var t=e.backgroundColor;return Object(s.b)(ir(),t)})),ur=Object(s.b)(ar()),fr=Object(s.b)(or(),(function(e){return e.theme.detail}),(function(e){return e.backgroundColor}));cr.defaultProps={theme:c.e};var pr=s.c.div(rr(),(function(e){return e.color})),dr={0:["A","B","C","D","E","F"],1:["B","C"],2:["A","B","G","E","D"],3:["A","B","G","C","D"],4:["F","G","B","C"],5:["A","F","G","C","D"],6:["A","F","G","C","D","E"],7:["A","B","C"],8:["A","B","C","D","E","F","G"],9:["A","B","C","D","F","G"],"-":["G"]},hr={A:{base:"M3.778 3.778L6.555 1h16.667L26 3.778l-2.778 2.778H6.555L3.778 3.778z",stroke:"M3.778 3.778L6.555 1h16.667L26 3.778l-2.778 2.778H6.555L3.778 3.778z"},B:{base:"M26 3.778l2.778 2.777v16.667L26 26l-2.778-2.778V6.555L26 3.778z",stroke:"M26 3.778l2.778 2.777v16.667L26 26l-2.778-2.778V6.555L26 3.778z"},C:{base:"M26 26l2.778 2.778v16.666L26 48.222l-2.778-2.778V28.778L26 26z",stroke:"M26 26l2.778 2.778v16.666L26 48.222l-2.778-2.778V28.778L26 26z"},D:{base:"M26 48.222L23.222 51H6.555l-2.777-2.778 2.777-2.778h16.667L26 48.222z",stroke:"M26 48.222L23.222 51H6.555l-2.777-2.778 2.777-2.778h16.667L26 48.222z"},E:{base:"M3.778 48.222L1 45.444V28.778L3.778 26l2.778 2.778v16.666l-2.778 2.778z",stroke:"M3.778 48.222L1 45.444V28.778L3.778 26l2.778 2.778v16.666l-2.778 2.778z"},F:{base:"M3.778 26L1 23.222V6.555l2.778-2.777 2.778 2.777v16.667L3.778 26z",stroke:"M3.778 26L1 23.222V6.555l2.778-2.777 2.778 2.777v16.667L3.778 26z"},G:{base:"M3.778 26l2.777-2.778h16.667L26 26l-2.778 2.778H6.555L3.778 26z",stroke:"M3.778 26l2.777-2.778h16.667L26 26l-2.778 2.778H6.555L3.778 26z"}},mr=function(e){var t=e.paths,n=t.base,r=t.stroke,a=e.fillColor,i=e.strokeColor;return o.a.createElement("g",null,o.a.createElement("path",{fill:a,fillRule:"evenodd",d:n,clipRule:"evenodd"}),o.a.createElement("path",{stroke:i,strokeWidth:".75",d:r}))},br=function(e){var t=e.fillColor,n=e.strokeColor;return o.a.createElement("g",{transform:"translate(29 46)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"}))},vr=function(e){var t=e.fillColor,n=e.strokeColor;return o.a.createElement("g",null,o.a.createElement("g",{transform:"translate(32 36)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"})),o.a.createElement("g",{transform:"translate(32 9)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"})))},gr=function(e){var t=e.value,n=e.hasColon,r=e.hasDecimal,a=e.color,i=e.backgroundColor,s=e.size,l=e.className,c=xt()(i).darken(.2).fade(.85),u=dr[t].map((function(e){return o.a.createElement(mr,{key:e,fillColor:a,strokeColor:i,paths:hr[e]})})),f=["A","B","C","D","E","F","G"].map((function(e){return o.a.createElement(mr,{key:e,fillColor:c,strokeColor:i,paths:hr[e]})})),p=n?s:s*(6/7),d=s*(9/7);return o.a.createElement("div",{className:l},o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:p,height:d},o.a.createElement("g",{fill:"none",style:{transform:"scale(".concat(Number(s)/42,")")}},f,u,n&&o.a.createElement(vr,{fillColor:a,strokeColor:i}),r&&o.a.createElement(br,{fillColor:a,strokeColor:i}))))},yr=function(e){var t=e.value,n=e.hasColon,r=e.hasDecimal,a=e.color,i=e.size,s=e.className,l=dr[t].map((function(e){return ye[e]})),c=n?i:i*(6/7),u=i*(9/7);return o.a.createElement(pr,{className:s,color:a},o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:c,height:u},ge,o.a.createElement("g",{fill:"none",fillRule:"evenodd",filter:"url(#darkLED-a)",style:{transform:"scale(".concat(Number(i)/42,")")}},l,n&&we,r&&xe)))},xr=function(e){return e.theme.dark?o.a.createElement(yr,e):o.a.createElement(gr,e)},wr=/^(\-)?((\.|:)?[0-9])*$/,Or=wr.test.bind(wr),kr=function(e){var t=Object(q.a)("leddisplay",e.theme),n=Or(e.value)?function(e,t){var n=e.value,r=e.color,a=e.backgroundColor,i=e.theme,s=e.size,l=n.toString().split("").reverse(),c=[];!function(e){var t=!1;"-"===e[e.length-1]&&(t=!0,e.pop());var n=e[e.length-1];[".",":"].includes(n)&&e.push("0");t&&e.push("-")}(l);var u=0;for(;l.length;){var f=l.pop(),p=l.pop();c.push(o.a.createElement(xr,{className:t+"__digit",theme:i,key:u++,value:f,hasColon:":"===p,hasDecimal:"."===p,color:r,backgroundColor:a,size:s})),p&&"."!==p&&":"!==p&&l.push(p)}return c}(e,t):null,r=o.a.createElement(cr,{backgroundColor:e.backgroundColor},n),a=Object(q.b)(e);return o.a.createElement("div",{id:e.id,className:t+(e.className?" "+e.className:""),style:e.style},o.a.createElement($.a,a,n?r:"Invalid Input"))};kr.defaultProps={color:c.c.PRIMARY,backgroundColor:"#fff",size:42,theme:c.e,labelPosition:"top"},kr.propTypes={id:i.a.string,value:i.a.oneOfType([i.a.number,i.a.string]),color:i.a.string,backgroundColor:i.a.string,size:i.a.number,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object};var Er=Object(s.d)(kr),Sr=n(15),_r=n.n(Sr);_r.a.prototype.UNSAFE_componentWillMount=_r.a.prototype.componentWillMount,_r.a.prototype.UNSAFE_componentWillReceiveProps=_r.a.prototype.componentWillReceiveProps,_r.a.prototype.UNSAFE_componentWillUpdate=_r.a.prototype.componentWillUpdate,delete _r.a.prototype.componentWillMount,delete _r.a.prototype.componentWillReceiveProps,delete _r.a.prototype.componentWillUpdate;var jr=_r.a;function Cr(e){return(Cr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Pr(){return(Pr=Object.assign||function(e){for(var t=1;t=this.props.min&&e<=this.props.max&&(this.setState({value:e}),this.props.setProps&&this.props.setProps({value:e}))}},{key:"render",value:function(){var e=this.props,t=e.size,n=e.theme,r=e.style,a=e.className,i=e.id,s=e.disabled,l=e.min,u=e.max,f={background:"none",boxShadow:"none",border:"none",color:n.secondary,cursor:"pointer"},p=Math.max(this.state.value?16-2*this.state.value.toString().length:16,10),d={borderRadius:3,border:n.dark?"none":"1px solid ".concat(c.c.GREY),outline:"none",paddingRight:p,paddingLeft:p,paddingTop:8,paddingBottom:8,width:t||56,color:n.dark?"#fff":c.c.OFF_WHITE,backgroundColor:n.dark?"#22272a":"#fff",fontSize:14,boxSizing:"border-box"},h=Object(q.a)("numericinput",n),m=Object(q.b)(this.props);return o.a.createElement("div",{id:i,className:h+(a?" "+a:""),style:r},o.a.createElement($.a,Pr({className:h+"__label"},m),o.a.createElement(jr,{className:h+"__input",disabled:s,style:{input:d,"input:not(.form-control)":d,btn:f,"btn:hover":f,"btn:active":f,"input:disabled":{opacity:.65,cursor:"not-allowed"}},min:l,max:u,value:this.state.value,onChange:this.setValue,mobile:!1})))}}])&&Mr(n.prototype,r),a&&Mr(n,a),t}(r.Component);Nr.defaultProps={min:0,max:10,theme:c.e,labelPosition:"top",persisted_props:["value"],persistence_type:"local",style:{display:"flex",justifyContent:"center"}},Nr.propTypes={id:i.a.string,value:i.a.number,size:i.a.number,min:i.a.number,max:i.a.number,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"])};var Ir=Object(s.d)(Nr);Ir.defaultProps=Nr.defaultProps;var Lr=Ir;function Rr(){var e=Wr(["\n box-shadow: 0 0 8px 2px ",";\n "]);return Rr=function(){return e},e}function Fr(){var e=Wr(["\n width: ","px;\n height: ","px;\n "]);return Fr=function(){return e},e}function Hr(){var e=Wr(["\n "," border-radius: 100%;\n padding: 0;\n margin-bottom: 8px;\n\n &::before,\n &::after {\n left: 4%;\n border-radius: 100%;\n transition: all 0.1s ease-in;\n }\n\n &::before {\n top: 8%;\n width: 86%;\n height: 86%;\n }\n\n &::after {\n top: 4%;\n width: 92%;\n height: 92%;\n\n ",";\n }\n\n &:hover::before {\n background-color: rgba(0, 0, 0, 0.8);\n }\n\n &:hover::after {\n box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.66);\n }\n\n &:focus::after,\n &:active::after {\n box-shadow: ",";\n }\n"]);return Hr=function(){return e},e}function zr(){var e=Wr(["\n width: ","px;\n height: ","px;\n "]);return zr=function(){return e},e}function Br(){var e=Wr(["\n border-radius: 50%;\n box-sizing: border-box;\n background: #fff;\n border: 1px solid ",";\n "," margin-bottom: ",";\n padding: 0;\n\n &:focus,\n &:hover {\n border-color: ",";\n }\n"]);return Br=function(){return e},e}function Ur(){var e=Wr(["\n cursor: pointer;\n outline: none;\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:disabled {\n opacity: ",";\n cursor: not-allowed;\n }\n\n ",";\n"]);return Ur=function(){return e},e}function Vr(){var e=Wr(["\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n\n & svg {\n margin: 0 auto;\n }\n"]);return Vr=function(){return e},e}function Wr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Gr=Object(s.c)("div")(Vr()),Yr=s.c.button(Ur(),(function(e){return e.theme.dark?1:.65}),(function(e){return e.theme.dark?Kr:Xr})),Xr=Object(s.b)(Br(),(function(e){return e.theme.secondary}),(function(e){var t=e.size;return Object(s.b)(zr(),t,t)}),(function(e){var t=e.size;return"".concat(.0625*t,"px")}),(function(e){return e.theme.secondary})),Kr=Object(s.b)(Hr(),(function(e){var t=e.size;return Object(s.b)(Fr(),t,t)}),(function(e){var t=e.on,n=e.color,r=e.theme;return t?Object(s.b)(Rr(),n||r.primary):""}),(function(e){var t=e.on,n=e.color,r=e.theme;return t?"0 0 8px 2px ".concat(n||r.primary):"0 0 3px 0 rgba(0,0,0,0.66)"}));Yr.defaultProps={theme:c.e};var $r=function(e){var t=e.color,n=e.theme,r=e.on,a=e.size;return o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:a,height:a,viewBox:"0 0 14 14"},o.a.createElement("path",{fill:r?t||n.primary:n.secondary,fillRule:"evenodd",d:"M24.5173333,14.68 C25.2764482,15.3271143 25.8799978,16.1111065 26.328,17.032 C26.7760022,17.9777825 27,18.9671059 27,20 C27,21.2693397 26.6826698,22.4453279 26.048,23.528 C25.4257747,24.5857831 24.5857831,25.4257747 23.528,26.048 C22.4453279,26.6826698 21.2693397,27 20,27 C18.7306603,27 17.5546721,26.6826698 16.472,26.048 C15.4142169,25.4257747 14.5742253,24.5857831 13.952,23.528 C13.3173302,22.4453279 13,21.2693397 13,20 C13,18.9671059 13.2302199,17.9777825 13.6906667,17.032 C14.1262244,16.1111065 14.7235518,15.3271143 15.4826667,14.68 L16.5653333,15.7626667 C15.9555525,16.2728914 15.4764462,16.8888853 15.128,17.6106667 C14.7546648,18.3697816 14.568,19.1662181 14.568,20 C14.568,20.9955605 14.8106642,21.9102181 15.296,22.744 C15.7813358,23.5653374 16.4346626,24.2186642 17.256,24.704 C18.0897819,25.1893358 19.0044395,25.432 20,25.432 C20.9955605,25.432 21.9102181,25.1893358 22.744,24.704 C23.5653374,24.2186642 24.2186642,23.5653374 24.704,22.744 C25.1893358,21.9102181 25.432,20.9955605 25.432,20 C25.432,19.1537735 25.2546684,18.3666703 24.9,17.6386667 C24.5453316,16.910663 24.056892,16.2977803 23.4346667,15.8 L24.5173333,14.68 Z M20.7653333,13 L20.7653333,20.7653333 L19.2346667,20.7653333 L19.2346667,13 L20.7653333,13 Z",transform:"translate(-13 -13)"}))};$r.defaultProps={theme:c.e};var qr=$r;function Zr(e){return(Zr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Jr(){return(Jr=Object.assign||function(e){for(var t=1;t=this.props.min&&e<=this.props.max){var t=this.formatPrecision(e);this.setState({value:t}),this.props.setProps&&this.props.setProps({value:t})}}},{key:"toggleInput",value:function(){if(!this.props.disabled){var e=!this.state.isInput;this.setState({isInput:e}),e&&this.setState({tempValue:this.state.value})}}},{key:"setTempValue",value:function(e){this.setState({tempValue:e})}},{key:"blur",value:function(){null!=this.state.tempValue&&this.setValue(this.state.tempValue),this.setState({tempValue:null}),this.toggleInput()}},{key:"render",value:function(){var e,t=this.props,n=t.id,r=t.className,a=t.style,i=t.size,s=t.theme,l=t.disabled,u=t.precision,f=t.min,p=t.max,d={background:"none",boxShadow:"none",border:"none",color:s.secondary,cursor:"pointer"},h=this.state.value?16-2*this.state.value.toString().length:16,m=Math.max(h,10),b={borderRadius:3,border:s.dark?"none":"1px solid ".concat(c.c.GREY),outline:"none",paddingRight:m,paddingLeft:m,paddingTop:4,paddingBottom:4,width:i||56+20*u,height:36,backgroundColor:s.dark?"#22272a":"#fff",color:s.dark?"#fff":"#000",fontSize:14,lineHeight:14,boxSizing:"border-box"},v=Object(q.a)("precisioninput",s.dark),g=Object(q.b)(this.props);return e=this.state.isInput?o.a.createElement(jr,{autoFocus:!0,className:v+"__input",disabled:l,style:{input:b,"input:not(.form-control)":b,btn:d,"btn:hover":d,"btn:active":d,"input:disabled":{opacity:.65,cursor:"not-allowed"}},min:f,max:p,value:this.state.tempValue,onChange:this.setTempValue,onBlur:this.blur}):o.a.createElement(No,{elementName:v+"__output",value:this.state.value,size:i,onClick:this.toggleInput,color:s.dark?"#fff":c.c.OFF_WHITE}),o.a.createElement("div",{id:n,className:v+(r?" "+r:""),style:Object.assign({},Ao,a)},o.a.createElement($.a,_o({className:v+"__label"},g),e))}}])&&jo(n.prototype,r),a&&jo(n,a),t}(r.Component),Do=function(e){if("-"===e[0]){e.shift();var t=e.shift();e.unshift("-".concat(t))}return e},No=function(e){var t=e.value,n=e.onClick,r=e.size,a=e.elementName,i=Eo(function(e){return Number(e).toExponential().replace("+","")}(t).split("e"),2),s=i[0],l=i[1],c=Do(s.split("")),u=Do(l.split(""));return o.a.createElement(vo,{size:r,onClick:n,className:a},c.map((function(e,t){return o.a.createElement(xo,{className:a+"__digit",key:"d".concat(t)},e)})),o.a.createElement(ko,{className:a+"__exp"},"E"),u.map((function(e,t){return o.a.createElement(ko,{className:a+"__expdigit",key:"e".concat(t)},e)})))};To.defaultProps={min:0,max:Number.MAX_SAFE_INTEGER,theme:c.e,labelPosition:"top",precision:2,persisted_props:["value"],persistence_type:"local"},To.propTypes={id:i.a.string,value:i.a.number,size:i.a.number,min:i.a.number,max:i.a.number,precision:i.a.number.isRequired,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"])};var Io=Object(s.d)(To);Io.defaultProps=To.defaultProps;var Lo=Io;function Ro(){var e=zo(["\n color: #ff6e6e;\n background-color: #22272a;\n\n text-shadow: 0 0 2px rgba(0, 0, 0, 0.9), 0 0 9px #ff6e6e;\n\n background-image: linear-gradient(145deg, rgba(255, 255, 255, 0.05) 0%, rgba(0, 0, 0, 0.5) 100%);\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1);\n\n display: block;\n box-sizing: border-box;\n border: none;\n border-radius: 2px;\n font-weight: bold;\n font-size: 12px;\n text-transform: uppercase;\n padding: 0;\n width: ",";\n height: ",";\n text-align: center;\n cursor: pointer;\n letter-spacing: 0.1;\n line-height: 1;\n\n background-color: #22272a;\n color: #ff1a1a;\n\n &::before,\n &::after {\n transition: all 0.1s ease-in;\n background-color: #e03a3a;\n }\n\n &:hover::before,\n &:hover::after {\n background-color: #e64545;\n }\n\n &:active::before,\n &:active::after {\n background-color: #c72121;\n }\n\n &:hover::after,\n &:active::after,\n &:focus::after {\n box-shadow: none;\n }\n"]);return Ro=function(){return e},e}function Fo(){var e=zo(["\n color: white;\n background-color: #ff5e5e;\n\n display: block;\n box-sizing: border-box;\n border: none;\n border-radius: 2px;\n font-weight: bold;\n font-size: 12px;\n text-transform: uppercase;\n padding: 0;\n width: ",";\n min-height: ",";\n text-align: center;\n cursor: pointer;\n letter-spacing: 0.1;\n line-height: 1;\n\n &:hover,\n &:focus,\n &:active {\n color: #fff;\n }\n\n &:hover {\n background-color: #ff8585;\n }\n\n &:active {\n background-color: #e64545;\n }\n"]);return Fo=function(){return e},e}function Ho(){var e=zo(["\n outline: none;\n transition: all 0.1s ease-in;\n ",";\n\n &:disabled {\n opacity: ",";\n cursor: not-allowed;\n }\n"]);return Ho=function(){return e},e}function zo(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Bo=s.c.button(Ho(),(function(e){return e.theme.dark?Vo:Uo}),(function(e){return e.theme.dark?1:.65}));Bo.defaultProps={theme:c.e};var Uo=Object(s.b)(Fo(),(function(e){var t=e.size;return"".concat(t,"px")}),(function(e){var t=e.size;return"".concat(.42*t,"px")})),Vo=Object(s.b)(Ro(),(function(e){var t=e.size;return"".concat(t,"px")}),(function(e){var t=e.size;return"".concat(.42*t,"px")})),Wo=function(e){var t=e.id,n=e.className,r=e.style,a=e.size,i=e.disabled,s=e.children,l=e.n_clicks,c=e.buttonText,u=e.theme,f=Object(q.a)("stopbutton",u),p=Object(q.b)(e);return o.a.createElement("div",{id:t,className:f+(n?" "+n:""),style:r},o.a.createElement($.a,p,o.a.createElement(Bo,{className:f+"__button",size:a,disabled:i,onClick:function(){e.setProps&&e.setProps({n_clicks:l+1})}},s||c)))};Wo.defaultProps={buttonText:"Stop",n_clicks:0,size:92,labelPosition:"top"},Wo.propTypes={id:i.a.string,size:i.a.number,buttonText:i.a.string,n_clicks:i.a.number,disabled:i.a.bool,children:i.a.node,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func};var Go=Object(s.d)(Wo),Yo=n(6),Xo=n.n(Yo),Ko=n(11),$o=n.n(Ko),qo=n(12),Zo=n.n(qo),Jo=n(9),Qo=n.n(Jo),ea=n(13),ta=n.n(ea),na=n(23),ra=n.n(na),oa=n(5),aa=n.n(oa),ia=function(e){var t,n,r=e.className,a=e.included,i=e.vertical,s=e.style,l=e.length,c=e.offset,u=e.reverse;l<0&&(u=!u,l=Math.abs(l),c=100-c);var f=i?(t={},aa()(t,u?"top":"bottom",c+"%"),aa()(t,u?"bottom":"top","auto"),aa()(t,"height",l+"%"),t):(n={},aa()(n,u?"right":"left",c+"%"),aa()(n,u?"left":"right","auto"),aa()(n,"width",l+"%"),n),p=Xo()({},s,f);return a?o.a.createElement("div",{className:r,style:p}):null},sa=n(24),la=n.n(sa),ca=n(41),ua=n.n(ca),fa=n(82),pa=n.n(fa),da=n(14),ha=n.n(da);function ma(e,t,n,r){var o=ha.a.unstable_batchedUpdates?function(e){ha.a.unstable_batchedUpdates(n,e)}:n;return pa()(e,t,o,r)}var ba=n(8),va=n.n(ba),ga=function(e){var t=e.prefixCls,n=e.vertical,r=e.reverse,a=e.marks,i=e.dots,s=e.step,l=e.included,c=e.lowerBound,u=e.upperBound,f=e.max,p=e.min,d=e.dotStyle,h=e.activeDotStyle,m=f-p,b=function(e,t,n,r,o,a){ra()(!n||r>0,"`Slider[step]` should be a positive number in order to make Slider[dots] work.");var i=Object.keys(t).map(parseFloat).sort((function(e,t){return e-t}));if(n&&r)for(var s=o;s<=a;s+=r)-1===i.indexOf(s)&&i.push(s);return i}(0,a,i,s,p,f).map((function(e){var a,i=Math.abs(e-p)/m*100+"%",s=!l&&e===u||l&&e<=u&&e>=c,f=n?Xo()({},d,aa()({},r?"top":"bottom",i)):Xo()({},d,aa()({},r?"right":"left",i));s&&(f=Xo()({},f,h));var b=va()((a={},aa()(a,t+"-dot",!0),aa()(a,t+"-dot-active",s),aa()(a,t+"-dot-reverse",r),a));return o.a.createElement("span",{className:b,style:f,key:e})}));return o.a.createElement("div",{className:t+"-step"},b)};ga.propTypes={prefixCls:i.a.string,activeDotStyle:i.a.object,dotStyle:i.a.object,min:i.a.number,max:i.a.number,upperBound:i.a.number,lowerBound:i.a.number,included:i.a.bool,dots:i.a.bool,step:i.a.number,marks:i.a.object,vertical:i.a.bool,reverse:i.a.bool};var ya=ga,xa=function(e){var t=e.className,n=e.vertical,r=e.reverse,a=e.marks,i=e.included,s=e.upperBound,l=e.lowerBound,c=e.max,u=e.min,f=e.onClickLabel,p=Object.keys(a),d=c-u,h=p.map(parseFloat).sort((function(e,t){return e-t})).map((function(e){var c,p=a[e],h="object"==typeof p&&!o.a.isValidElement(p),m=h?p.label:p;if(!m&&0!==m)return null;var b=!i&&e===s||i&&e<=s&&e>=l,v=va()((c={},aa()(c,t+"-text",!0),aa()(c,t+"-text-active",b),c)),g=aa()({marginBottom:"-50%"},r?"top":"bottom",(e-u)/d*100+"%"),y=aa()({transform:"translateX(-50%)",msTransform:"translateX(-50%)"},r?"right":"left",r?(e-u/4)/d*100+"%":(e-u)/d*100+"%"),x=n?g:y,w=h?Xo()({},x,p.style):x;return o.a.createElement("span",{className:v,style:w,key:e,onMouseDown:function(t){return f(t,e)},onTouchStart:function(t){return f(t,e)}},m)}));return o.a.createElement("div",{className:t},h)};xa.propTypes={className:i.a.string,vertical:i.a.bool,reverse:i.a.bool,marks:i.a.object,included:i.a.bool,upperBound:i.a.number,lowerBound:i.a.number,max:i.a.number,min:i.a.number,onClickLabel:i.a.func};var wa=xa,Oa=function(e){function t(){var e,n,r,o;$o()(this,t);for(var a=arguments.length,i=Array(a),s=0;s=_a.F1&&t<=_a.F12)return!1;switch(t){case _a.ALT:case _a.CAPS_LOCK:case _a.CONTEXT_MENU:case _a.CTRL:case _a.DOWN:case _a.END:case _a.ESC:case _a.HOME:case _a.INSERT:case _a.LEFT:case _a.MAC_FF_META:case _a.META:case _a.NUMLOCK:case _a.NUM_CENTER:case _a.PAGE_DOWN:case _a.PAGE_UP:case _a.PAUSE:case _a.PRINT_SCREEN:case _a.RIGHT:case _a.SHIFT:case _a.UP:case _a.WIN_KEY:case _a.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=_a.ZERO&&e<=_a.NINE)return!0;if(e>=_a.NUM_ZERO&&e<=_a.NUM_MULTIPLY)return!0;if(e>=_a.A&&e<=_a.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case _a.SPACE:case _a.QUESTION_MARK:case _a.NUM_PLUS:case _a.NUM_MINUS:case _a.NUM_PERIOD:case _a.NUM_DIVISION:case _a.SEMICOLON:case _a.DASH:case _a.EQUALS:case _a.COMMA:case _a.PERIOD:case _a.SLASH:case _a.APOSTROPHE:case _a.SINGLE_QUOTE:case _a.OPEN_SQUARE_BRACKET:case _a.BACKSLASH:case _a.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},ja=_a;function Ca(e,t){try{return Object.keys(t).some((function(n){return e.target===Object(da.findDOMNode)(t[n])}))}catch(e){return!1}}function Pa(e,t){var n=t.min,r=t.max;return er}function Ma(e){return e.touches.length>1||"touchend"===e.type.toLowerCase()&&e.touches.length>0}function Aa(e,t){var n=t.marks,r=t.step,o=t.min,a=t.max,i=Object.keys(n).map(parseFloat);if(null!==r){var s=Math.floor((a-o)/r),l=Math.min((e-o)/r,s),c=Math.round(l)*r+o;i.push(c)}var u=i.map((function(t){return Math.abs(e-t)}));return i[u.indexOf(Math.min.apply(Math,Sa()(u)))]}function Ta(e,t){return e?t.clientY:t.pageX}function Da(e,t){return e?t.touches[0].clientY:t.touches[0].pageX}function Na(e,t){var n=t.getBoundingClientRect();return e?n.top+.5*n.height:window.pageXOffset+n.left+.5*n.width}function Ia(e,t){var n=t.max,r=t.min;return e<=r?r:e>=n?n:e}function La(e,t){var n=t.step,r=isFinite(Aa(e,t))?Aa(e,t):0;return null===n?r:parseFloat(r.toFixed(function(e){var t=e.toString(),n=0;return t.indexOf(".")>=0&&(n=t.length-t.indexOf(".")-1),n}(n)))}function Ra(e){e.stopPropagation(),e.preventDefault()}function Fa(e,t,n){var r="increase";switch(e.keyCode){case ja.UP:r=t&&n?"decrease":"increase";break;case ja.RIGHT:r=!t&&n?"decrease":"increase";break;case ja.DOWN:r=t&&n?"increase":"decrease";break;case ja.LEFT:r=!t&&n?"increase":"decrease";break;case ja.END:return function(e,t){return t.max};case ja.HOME:return function(e,t){return t.min};case ja.PAGE_UP:return function(e,t){return e+2*t.step};case ja.PAGE_DOWN:return function(e,t){return e-2*t.step};default:return}return function(e,t){return function(e,t,n){var r={increase:function(e,t){return e+t},decrease:function(e,t){return e-t}},o=r[e](Object.keys(n.marks).indexOf(JSON.stringify(t)),1),a=Object.keys(n.marks)[o];return n.step?r[e](t,n.step):Object.keys(n.marks).length&&n.marks[a]?n.marks[a]:t}(r,e,t)}}function Ha(){}function za(e){var t,n;return n=t=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onMouseDown=function(e){if(0===e.button){var t=n.props.vertical,r=Ta(t,e);if(Ca(e,n.handlesRefs)){var o=Na(t,e.target);n.dragOffset=r-o,r=o}else n.dragOffset=0;n.removeDocumentEvents(),n.onStart(r),n.addDocumentMouseEvents()}},n.onTouchStart=function(e){if(!Ma(e)){var t=n.props.vertical,r=Da(t,e);if(Ca(e,n.handlesRefs)){var o=Na(t,e.target);n.dragOffset=r-o,r=o}else n.dragOffset=0;n.onStart(r),n.addDocumentTouchEvents(),Ra(e)}},n.onFocus=function(e){var t=n.props,r=t.onFocus,o=t.vertical;if(Ca(e,n.handlesRefs)){var a=Na(o,e.target);n.dragOffset=0,n.onStart(a),Ra(e),r&&r(e)}},n.onBlur=function(e){var t=n.props.onBlur;n.onEnd(),t&&t(e)},n.onMouseUp=function(){n.handlesRefs[n.prevMovedHandleIndex]&&n.handlesRefs[n.prevMovedHandleIndex].clickFocus()},n.onMouseMove=function(e){if(n.sliderRef){var t=Ta(n.props.vertical,e);n.onMove(e,t-n.dragOffset)}else n.onEnd()},n.onTouchMove=function(e){if(!Ma(e)&&n.sliderRef){var t=Da(n.props.vertical,e);n.onMove(e,t-n.dragOffset)}else n.onEnd()},n.onKeyDown=function(e){n.sliderRef&&Ca(e,n.handlesRefs)&&n.onKeyboard(e)},n.onClickMarkLabel=function(e,t){e.stopPropagation(),n.onChange({value:t}),n.setState({value:t},(function(){return n.onEnd(!0)}))},n.saveSlider=function(e){n.sliderRef=e};var r=e.step,o=e.max,a=e.min,i=!isFinite(o-a)||(o-a)%r==0;return ra()(!r||Math.floor(r)!==r||i,"Slider[max] - Slider[min] (%s) should be a multiple of Slider[step] (%s)",o-a,r),n.handlesRefs={},n}return ta()(t,e),Zo()(t,[{key:"componentDidMount",value:function(){this.document=this.sliderRef&&this.sliderRef.ownerDocument;var e=this.props,t=e.autoFocus,n=e.disabled;t&&!n&&this.focus()}},{key:"componentWillUnmount",value:function(){ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"componentWillUnmount",this)&&ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"componentWillUnmount",this).call(this),this.removeDocumentEvents()}},{key:"getSliderStart",value:function(){var e=this.sliderRef,t=this.props,n=t.vertical,r=t.reverse,o=e.getBoundingClientRect();return n?r?o.bottom:o.top:window.pageXOffset+(r?o.right:o.left)}},{key:"getSliderLength",value:function(){var e=this.sliderRef;if(!e)return 0;var t=e.getBoundingClientRect();return this.props.vertical?t.height:t.width}},{key:"addDocumentTouchEvents",value:function(){this.onTouchMoveListener=ma(this.document,"touchmove",this.onTouchMove),this.onTouchUpListener=ma(this.document,"touchend",this.onEnd)}},{key:"addDocumentMouseEvents",value:function(){this.onMouseMoveListener=ma(this.document,"mousemove",this.onMouseMove),this.onMouseUpListener=ma(this.document,"mouseup",this.onEnd)}},{key:"removeDocumentEvents",value:function(){this.onTouchMoveListener&&this.onTouchMoveListener.remove(),this.onTouchUpListener&&this.onTouchUpListener.remove(),this.onMouseMoveListener&&this.onMouseMoveListener.remove(),this.onMouseUpListener&&this.onMouseUpListener.remove()}},{key:"focus",value:function(){this.props.disabled||this.handlesRefs[0].focus()}},{key:"blur",value:function(){var e=this;this.props.disabled||Object.keys(this.handlesRefs).forEach((function(t){e.handlesRefs[t]&&e.handlesRefs[t].blur&&e.handlesRefs[t].blur()}))}},{key:"calcValue",value:function(e){var t=this.props,n=t.vertical,r=t.min,o=t.max,a=Math.abs(Math.max(e,0)/this.getSliderLength());return n?(1-a)*(o-r)+r:a*(o-r)+r}},{key:"calcValueByPos",value:function(e){var t=(this.props.reverse?-1:1)*(e-this.getSliderStart());return this.trimAlignValue(this.calcValue(t))}},{key:"calcOffset",value:function(e){var t=this.props,n=t.min;return 100*((e-n)/(t.max-n))}},{key:"saveHandle",value:function(e,t){this.handlesRefs[e]=t}},{key:"render",value:function(){var e,n=this.props,r=n.prefixCls,a=n.className,i=n.marks,s=n.dots,l=n.step,c=n.included,u=n.disabled,f=n.vertical,p=n.reverse,d=n.min,h=n.max,m=n.children,b=n.maximumTrackStyle,v=n.style,g=n.railStyle,y=n.dotStyle,x=n.activeDotStyle,w=ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"render",this).call(this),O=w.tracks,k=w.handles,E=va()(r,(e={},aa()(e,r+"-with-marks",Object.keys(i).length),aa()(e,r+"-disabled",u),aa()(e,r+"-vertical",f),aa()(e,a,a),e));return o.a.createElement("div",{ref:this.saveSlider,className:E,onTouchStart:u?Ha:this.onTouchStart,onMouseDown:u?Ha:this.onMouseDown,onMouseUp:u?Ha:this.onMouseUp,onKeyDown:u?Ha:this.onKeyDown,onFocus:u?Ha:this.onFocus,onBlur:u?Ha:this.onBlur,style:v},o.a.createElement("div",{className:r+"-rail",style:Xo()({},b,g)}),O,o.a.createElement(ya,{prefixCls:r,vertical:f,reverse:p,marks:i,dots:s,step:l,included:c,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:h,min:d,dotStyle:y,activeDotStyle:x}),k,o.a.createElement(wa,{className:r+"-mark",onClickLabel:u?Ha:this.onClickMarkLabel,vertical:f,marks:i,included:c,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:h,min:d,reverse:p}),m)}}]),t}(e),t.displayName="ComponentEnhancer("+e.displayName+")",t.propTypes=Xo()({},e.propTypes,{min:i.a.number,max:i.a.number,startPoint:i.a.number,step:i.a.number,marks:i.a.object,included:i.a.bool,className:i.a.string,prefixCls:i.a.string,disabled:i.a.bool,children:i.a.any,onBeforeChange:i.a.func,onChange:i.a.func,onAfterChange:i.a.func,handle:i.a.func,dots:i.a.bool,vertical:i.a.bool,style:i.a.object,reverse:i.a.bool,minimumTrackStyle:i.a.object,maximumTrackStyle:i.a.object,handleStyle:i.a.oneOfType([i.a.object,i.a.arrayOf(i.a.object)]),trackStyle:i.a.oneOfType([i.a.object,i.a.arrayOf(i.a.object)]),railStyle:i.a.object,dotStyle:i.a.object,activeDotStyle:i.a.object,autoFocus:i.a.bool,onFocus:i.a.func,onBlur:i.a.func}),t.defaultProps=Xo()({},e.defaultProps,{prefixCls:"rc-slider",className:"",min:0,max:100,step:1,marks:{},handle:function(e){var t=e.index,n=la()(e,["index"]);return delete n.dragging,null===n.value?null:o.a.createElement(ka,Xo()({},n,{key:t}))},onBeforeChange:Ha,onChange:Ha,onAfterChange:Ha,included:!0,disabled:!1,dots:!1,vertical:!1,reverse:!1,trackStyle:[{}],handleStyle:[{}],railStyle:{},dotStyle:{},activeDotStyle:{}}),n}var Ba=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onEnd=function(e){var t=n.state.dragging;n.removeDocumentEvents(),(t||e)&&n.props.onAfterChange(n.getValue()),n.setState({dragging:!1})};var r=void 0!==e.defaultValue?e.defaultValue:e.min,o=void 0!==e.value?e.value:r;return n.state={value:n.trimAlignValue(o),dragging:!1},ra()(!("minimumTrackStyle"in e),"minimumTrackStyle will be deprecated, please use trackStyle instead."),ra()(!("maximumTrackStyle"in e),"maximumTrackStyle will be deprecated, please use railStyle instead."),n}return ta()(t,e),Zo()(t,[{key:"componentDidUpdate",value:function(e,t){if("value"in this.props||"min"in this.props||"max"in this.props){var n=this.props,r=n.value,o=n.onChange,a=void 0!==r?r:t.value,i=this.trimAlignValue(a,this.props);i!==t.value&&(this.setState({value:i}),Pa(a,this.props)&&o(i))}}},{key:"onChange",value:function(e){var t=this.props,n=!("value"in t),r=e.value>this.props.max?Xo()({},e,{value:this.props.max}):e;n&&this.setState(r);var o=r.value;t.onChange(o)}},{key:"onStart",value:function(e){this.setState({dragging:!0});var t=this.props,n=this.getValue();t.onBeforeChange(n);var r=this.calcValueByPos(e);this.startValue=r,this.startPosition=e,r!==n&&(this.prevMovedHandleIndex=0,this.onChange({value:r}))}},{key:"onMove",value:function(e,t){Ra(e);var n=this.state.value,r=this.calcValueByPos(t);r!==n&&this.onChange({value:r})}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,r=Fa(e,t.vertical,n);if(r){Ra(e);var o=this.state.value,a=r(o,this.props),i=this.trimAlignValue(a);if(i===o)return;this.onChange({value:i}),this.props.onAfterChange(i),this.onEnd()}}},{key:"getValue",value:function(){return this.state.value}},{key:"getLowerBound",value:function(){return this.props.min}},{key:"getUpperBound",value:function(){return this.state.value}},{key:"trimAlignValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null===e)return null;var n=Xo()({},this.props,t),r=Ia(e,n);return La(r,n)}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,r=t.vertical,a=t.included,i=t.disabled,s=t.minimumTrackStyle,l=t.trackStyle,c=t.handleStyle,u=t.tabIndex,f=t.ariaLabelForHandle,p=t.ariaLabelledByForHandle,d=t.ariaValueTextFormatterForHandle,h=t.min,m=t.max,b=t.startPoint,v=t.reverse,g=t.handle,y=this.state,x=y.value,w=y.dragging,O=this.calcOffset(x),k=g({className:n+"-handle",prefixCls:n,vertical:r,offset:O,value:x,dragging:w,disabled:i,min:h,max:m,reverse:v,index:0,tabIndex:u,ariaLabel:f,ariaLabelledBy:p,ariaValueTextFormatter:d,style:c[0]||c,ref:function(t){return e.saveHandle(0,t)}}),E=void 0!==b?this.calcOffset(b):0,S=l[0]||l;return{tracks:o.a.createElement(ia,{className:n+"-track",vertical:r,included:a,offset:E,reverse:v,length:O-E,style:Xo()({},s,S)}),handles:k}}}]),t}(o.a.Component);Ba.propTypes={defaultValue:i.a.number,value:i.a.number,disabled:i.a.bool,autoFocus:i.a.bool,tabIndex:i.a.number,reverse:i.a.bool,min:i.a.number,max:i.a.number,startPoint:i.a.number,ariaLabelForHandle:i.a.string,ariaLabelledByForHandle:i.a.string,ariaValueTextFormatterForHandle:i.a.func};var Ua=za(Ba),Va=n(83),Wa=n.n(Va),Ga=function(e){var t=e.value,n=e.handle,r=e.bounds,o=e.props,a=o.allowCross,i=o.pushable,s=Number(i),l=Ia(t,o),c=l;return a||null==n||void 0===r||(n>0&&l<=r[n-1]+s&&(c=r[n-1]+s),n=r[n+1]-s&&(c=r[n+1]-s)),La(c,o)},Ya=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onEnd=function(e){var t=n.state.handle;n.removeDocumentEvents(),(null!==t||e)&&n.props.onAfterChange(n.getValue()),n.setState({handle:null})};var r=e.count,o=e.min,a=e.max,i=Array.apply(void 0,Sa()(Array(r+1))).map((function(){return o})),s="defaultValue"in e?e.defaultValue:i,l=(void 0!==e.value?e.value:s).map((function(t,n){return Ga({value:t,handle:n,props:e})})),c=l[0]===a?0:l.length-1;return n.state={handle:null,recent:c,bounds:l},n}return ta()(t,e),Zo()(t,[{key:"componentDidUpdate",value:function(e,t){var n=this;if(("value"in this.props||"min"in this.props||"max"in this.props)&&(this.props.min!==e.min||this.props.max!==e.max||!Wa()(this.props.value,e.value))){var r=this.props,o=r.onChange,a=r.value||t.bounds;if(a.some((function(e){return Pa(e,n.props)})))o(a.map((function(e){return Ia(e,n.props)})))}}},{key:"onChange",value:function(e){var t=this.props;if(!("value"in t))this.setState(e);else{var n={};["handle","recent"].forEach((function(t){void 0!==e[t]&&(n[t]=e[t])})),Object.keys(n).length&&this.setState(n)}var r=Xo()({},this.state,e).bounds;t.onChange(r)}},{key:"onStart",value:function(e){var t=this.props,n=this.state,r=this.getValue();t.onBeforeChange(r);var o=this.calcValueByPos(e);this.startValue=o,this.startPosition=e;var a=this.getClosestBound(o);if(this.prevMovedHandleIndex=this.getBoundNeedMoving(o,a),this.setState({handle:this.prevMovedHandleIndex,recent:this.prevMovedHandleIndex}),o!==r[this.prevMovedHandleIndex]){var i=[].concat(Sa()(n.bounds));i[this.prevMovedHandleIndex]=o,this.onChange({bounds:i})}}},{key:"onMove",value:function(e,t){Ra(e);var n=this.state,r=this.calcValueByPos(t);r!==n.bounds[n.handle]&&this.moveTo(r)}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,r=Fa(e,t.vertical,n);if(r){Ra(e);var o=this.state,a=this.props,i=o.bounds,s=o.handle,l=i[null===s?o.recent:s],c=r(l,a),u=Ga({value:c,handle:s,bounds:o.bounds,props:a});if(u===l)return;this.moveTo(u,!0)}}},{key:"getValue",value:function(){return this.state.bounds}},{key:"getClosestBound",value:function(e){for(var t=this.state.bounds,n=0,r=1;r=t[r]&&(n=r);return Math.abs(t[n+1]-e)=r.length||o<0)return!1;var a=t+n,i=r[o],s=this.props.pushable,l=n*(e[a]-i);return!!this.pushHandle(e,a,n,s-l)&&(e[t]=i,!0)}},{key:"trimAlignValue",value:function(e){var t=this.state,n=t.handle,r=t.bounds;return Ga({value:e,handle:n,bounds:r,props:this.props})}},{key:"render",value:function(){var e=this,t=this.state,n=t.handle,r=t.bounds,a=this.props,i=a.prefixCls,s=a.vertical,l=a.included,c=a.disabled,u=a.min,f=a.max,p=a.reverse,d=a.handle,h=a.trackStyle,m=a.handleStyle,b=a.tabIndex,v=a.ariaLabelGroupForHandles,g=a.ariaLabelledByGroupForHandles,y=a.ariaValueTextFormatterGroupForHandles,x=r.map((function(t){return e.calcOffset(t)})),w=i+"-handle",O=r.map((function(t,r){var o,a=b[r]||0;return(c||null===b[r])&&(a=null),d({className:va()((o={},aa()(o,w,!0),aa()(o,w+"-"+(r+1),!0),o)),prefixCls:i,vertical:s,offset:x[r],value:t,dragging:n===r,index:r,tabIndex:a,min:u,max:f,reverse:p,disabled:c,style:m[r],ref:function(t){return e.saveHandle(r,t)},ariaLabel:v[r],ariaLabelledBy:g[r],ariaValueTextFormatter:y[r]})}));return{tracks:r.slice(0,-1).map((function(e,t){var n,r=t+1,a=va()((n={},aa()(n,i+"-track",!0),aa()(n,i+"-track-"+r,!0),n));return o.a.createElement(ia,{className:a,vertical:s,reverse:p,included:l,offset:x[r-1],length:x[r]-x[r-1],style:h[t],key:r})})),handles:O}}}],[{key:"getDerivedStateFromProps",value:function(e,t){if("value"in e||"min"in e||"max"in e){var n=(e.value||t.bounds).map((function(n,r){return Ga({value:n,handle:r,bounds:t.bounds,props:e})}));return n.length===t.bounds.length&&n.every((function(e,n){return e===t.bounds[n]}))?null:Xo()({},t,{bounds:n})}return null}}]),t}(o.a.Component);Ya.displayName="Range",Ya.propTypes={autoFocus:i.a.bool,defaultValue:i.a.arrayOf(i.a.number),value:i.a.arrayOf(i.a.number),count:i.a.number,pushable:i.a.oneOfType([i.a.bool,i.a.number]),allowCross:i.a.bool,disabled:i.a.bool,reverse:i.a.bool,tabIndex:i.a.arrayOf(i.a.number),min:i.a.number,max:i.a.number,ariaLabelGroupForHandles:i.a.arrayOf(i.a.string),ariaLabelledByGroupForHandles:i.a.arrayOf(i.a.string),ariaValueTextFormatterGroupForHandles:i.a.arrayOf(i.a.func)},Ya.defaultProps={count:1,allowCross:!0,pushable:!1,tabIndex:[],ariaLabelGroupForHandles:[],ariaLabelledByGroupForHandles:[],ariaValueTextFormatterGroupForHandles:[]};var Xa=za(Ya);function Ka(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}function $a(e){return e instanceof HTMLElement?e:ha.a.findDOMNode(e)}function qa(e){return(qa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Za(e,t){"function"==typeof e?e(t):"object"===qa(e)&&e&&"current"in e&&(e.current=t)}function Ja(){for(var e=arguments.length,t=new Array(e),n=0;n=0&&t.left>=0&&t.bottom>t.top&&t.right>t.left?t:null}function ts(e){var t,n,r;if(qi.isWindow(e)||9===e.nodeType){var o=qi.getWindow(e);t={left:qi.getWindowScrollLeft(o),top:qi.getWindowScrollTop(o)},n=qi.viewportWidth(o),r=qi.viewportHeight(o)}else t=qi.offset(e),n=qi.outerWidth(e),r=qi.outerHeight(e);return t.width=n,t.height=r,t}function ns(e,t){var n=t.charAt(0),r=t.charAt(1),o=e.width,a=e.height,i=e.left,s=e.top;return"c"===n?s+=a/2:"b"===n&&(s+=a),"c"===r?i+=o/2:"r"===r&&(i+=o),{left:i,top:s}}function rs(e,t,n,r,o){var a=ns(t,n[1]),i=ns(e,n[0]),s=[i.left-a.left,i.top-a.top];return{left:Math.round(e.left-s[0]+r[0]-o[0]),top:Math.round(e.top-s[1]+r[1]-o[1])}}function os(e,t,n){return e.leftn.right}function as(e,t,n){return e.topn.bottom}function is(e,t,n){var r=[];return qi.each(e,(function(e){r.push(e.replace(t,(function(e){return n[e]})))})),r}function ss(e,t){return e[t]=-e[t],e}function ls(e,t){return(/%$/.test(e)?parseInt(e.substring(0,e.length-1),10)/100*t:parseInt(e,10))||0}function cs(e,t){e[0]=ls(e[0],t.width),e[1]=ls(e[1],t.height)}function us(e,t,n,r){var o=n.points,a=n.offset||[0,0],i=n.targetOffset||[0,0],s=n.overflow,l=n.source||e;a=[].concat(a),i=[].concat(i),s=s||{};var c={},u=0,f=es(l),p=ts(l);cs(a,p),cs(i,t);var d=rs(p,t,o,a,i),h=qi.merge(p,d);if(f&&(s.adjustX||s.adjustY)&&r){if(s.adjustX&&os(d,p,f)){var m=is(o,/[lr]/gi,{l:"r",r:"l"}),b=ss(a,0),v=ss(i,0);(function(e,t,n){return e.left>n.right||e.left+t.widthn.bottom||e.top+t.height=n.left&&o.left+a.width>n.right&&(a.width-=o.left+a.width-n.right),r.adjustX&&o.left+a.width>n.right&&(o.left=Math.max(n.right-a.width,n.left)),r.adjustY&&o.top=n.top&&o.top+a.height>n.bottom&&(a.height-=o.top+a.height-n.bottom),r.adjustY&&o.top+a.height>n.bottom&&(o.top=Math.max(n.bottom-a.height,n.top)),qi.mix(o,a)}(d,p,f,c))}return h.width!==p.width&&qi.css(l,"width",qi.width(l)+h.width-p.width),h.height!==p.height&&qi.css(l,"height",qi.height(l)+h.height-p.height),qi.offset(l,{left:h.left,top:h.top},{useCssRight:n.useCssRight,useCssBottom:n.useCssBottom,useCssTransform:n.useCssTransform,ignoreShake:n.ignoreShake}),{points:o,offset:a,targetOffset:i,overflow:c}}function fs(e,t,n){var r=n.target||t;return us(e,ts(r),n,!function(e){var t=es(e),n=ts(e);return!t||n.left+n.width<=t.left||n.top+n.height<=t.top||n.left>=t.right||n.top>=t.bottom}(r))}function ps(e,t,n){var r,o,a=qi.getDocument(e),i=a.defaultView||a.parentWindow,s=qi.getWindowScrollLeft(i),l=qi.getWindowScrollTop(i),c=qi.viewportWidth(i),u=qi.viewportHeight(i);r="pageX"in t?t.pageX:s+t.clientX,o="pageY"in t?t.pageY:l+t.clientY;var f=r>=0&&r<=s+c&&o>=0&&o<=l+u;return us(e,{left:r,top:o,width:0,height:0},function(e){for(var t=1;t1&&(p=o.a.createElement("div",{className:"".concat(n,"-content")},s)),o.a.createElement("div",{ref:t,className:va()(r,!a&&"".concat(e.hiddenClassName)),onMouseEnter:l,onMouseLeave:c,onMouseDown:u,onTouchStart:f,style:i},p)}));zs.displayName="PopupInner";var Bs=zs;function Us(e){var t=e.prefixCls,n=e.motion,r=e.animation,o=e.transitionName;return n||(r?{motionName:"".concat(t,"-").concat(r)}:o?{motionName:o}:null)}function Vs(e){return(Vs="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ws(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Gs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ys(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var El=Object(r.forwardRef)((function(e,t){var n=e.overlayClassName,a=e.trigger,i=void 0===a?["hover"]:a,s=e.mouseEnterDelay,l=void 0===s?0:s,c=e.mouseLeaveDelay,u=void 0===c?.1:c,f=e.overlayStyle,p=e.prefixCls,d=void 0===p?"rc-tooltip":p,h=e.children,m=e.onVisibleChange,b=e.afterVisibleChange,v=e.transitionName,g=e.animation,y=e.placement,x=void 0===y?"right":y,w=e.align,O=void 0===w?{}:w,k=e.destroyTooltipOnHide,E=void 0!==k&&k,S=e.defaultVisible,_=e.getTooltipContainer,j=kl(e,["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer"]),C=Object(r.useRef)(null);Object(r.useImperativeHandle)(t,(function(){return C.current}));var P=function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},n=t.isTarget,r=t.showLabel,a=o.a.createElement(vc,Ac({isTarget:n},e),o.a.createElement("div",{className:"label"},e.label),o.a.createElement("div",{className:"value"},e.value));return o.a.createElement(lc,Ac({isTarget:n},e),r&&a,o.a.createElement(fc,Ac({isTarget:n,showLabel:r},e)))},Dc=function(e){if(!e.color.ranges||!Re(e)){var t=Ve(e.color);return{trackStyle:{backgroundColor:t},activeDotStyle:e.theme.dark?{background:t,boxShadow:"0 0 6px 1px ".concat(t)}:{borderColor:t}}}return{railStyle:{backgroundImage:"".concat(Ue(e),", linear-gradient(0deg, #000, #000)"),backgroundBlendMode:e.theme.dark?"none":"overlay"},trackStyle:{mixBlendMode:"overlay",background:e.theme.dark?"#fff":"#000"},dotStyle:{display:"none"}}},Nc=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=function(e,t){return!t||"object"!==Oc(t)&&"function"!=typeof t?Pc(e):t}(this,Cc(t).call(this,e))).state={value:null!=e.value?e.value:e.min,trackStyle:Dc(e)},n.onChange=n.onChange.bind(Pc(n)),n.onAfterChange=n.onAfterChange.bind(Pc(n)),n.renderSliderHandle=n.renderSliderHandle.bind(Pc(n)),n.renderTargets=n.renderTargets.bind(Pc(n)),n.calcLabelOffset=n.calcLabelOffset.bind(Pc(n)),n}var n,r,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Mc(e,t)}(t,e),n=t,(r=[{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t={},n=Object(q.b)(this.props);void 0!==e.value&&e.value!==this.state.value&&(t.value=e.value),jl()(e.color,this.props.color)||(t.trackStyle=Dc(Sc({},n,{},e))),this.setState(t)}},{key:"onChange",value:function(e){var t=this.props,n=t.updatemode,r=t.setProps;this.props.value&&"drag"===n||this.setState({value:e}),"drag"===n&&r&&r({value:e})}},{key:"onAfterChange",value:function(e){var t=this.props,n=t.updatemode,r=t.setProps;"mouseup"===n&&r&&r({value:e})}},{key:"renderSliderHandle",value:function(e){var t=this.props.handleLabel,n=Sc({},Object(q.b)(this.props),{},e);return t?(n=Sc({},n,{value:t.showCurrentValue&&this.state.value,label:t.label||(t instanceof Object?" ":t),color:t.color||Ve(this.props.color),style:t.style}),Tc(n,{showLabel:!0})):Tc(n)}},{key:"renderTargets",value:function(){var e=Object(q.b)(this.props);return Object.entries(this.props.targets).reduce((function(t,n){var r=kc(n,2),o=r[0],a=r[1],i=Sc({},e,{label:a.label||a,value:a.showCurrentValue&&o,color:a.color,style:a.style}),s=Tc(i,{isTarget:!0,showLabel:!!a});return t[o]={style:bc,label:s},t}),{})}},{key:"calcLabelOffset",value:function(e){var t=e.vertical,n=e.labelPosition,r=e.marks,o=e.targets,a=e.handleLabel;if(t)return null;if("bottom"===n)return"transform: translateY(".concat(r?20:0,"px);");var i=!1;return Object.values(o).map((function(e){e.showCurrentValue&&(i=!0)})),a&&a.showCurrentValue&&(i=!0),"transform: translateY(".concat(i?-38:-16,"px);")}},{key:"render",value:function(){var e=this.state.value,t=this.props,n=t.className,r=t.id,a=t.theme,i=t.label,s=t.size,c=t.vertical,u=t.style,f=t.marks,p=Object(q.a)("slider",a.dark),d=Object(q.b)(this.props),h=this.props.vertical?Sc({},u,{marginLeft:"45px"}):Sc({},u,{marginTop:"45px"});return h=this.props.fullSize?this.props.vertical?Sc({},h,{height:"100%"}):Sc({},h,{width:"100%"}):h,o.a.createElement("div",{id:r,style:h,className:p+(n?" "+n:"")},o.a.createElement($.a,Ac({className:p+"__label",labelCSS:i?this.calcLabelOffset(this.props):null},d),o.a.createElement(sc,{fullSize:this.props.fullSize,size:s,vertical:c},o.a.createElement(Sl,Ac({className:p+"__slider",onChange:this.onChange,onAfterChange:this.onAfterChange,value:e,handle:this.renderSliderHandle,marks:Sc({},f,{},this.renderTargets())},this.state.trackStyle,Object(l.a)(["setProps","updatemode","value","marks"],d))))))}}])&&jc(n.prototype,r),a&&jc(n,a),t}(r.Component);Nc.defaultProps=Vc,Nc.propTypes=Wc;var Ic=Object(s.d)(Nc);function Lc(e){return(Lc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Rc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Fc(e,t){for(var n=0;no){b.current.innerHTML=e.exceedMessage?"string"==typeof e.exceedMessage?e.exceedMessage:e.exceedMessage(r,o)||"":""}else if(r div {\n margin-top: 56px;\n line-height: 28px;\n }\n"]);return Zc=function(){return e},e}function Jc(){var e=eu(["\n width: ","px;\n height: ","px;\n border-radius: 50%;\n background-color: ",";\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n bottom: -","px;\n z-index: -1;\n"]);return Jc=function(){return e},e}function Qc(){var e=eu(["\n display: flex;\n flex-direction: column;\n align-items: center;\n"]);return Qc=function(){return e},e}function eu(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var tu=s.c.div(Qc()),nu=s.c.div(Jc(),30,30,(function(e){return e.on?e.color||e.theme.primary:e.theme.secondary}),20);nu.defaultProps={theme:c.e};var ru=s.c.div(Zc());function ou(){return(ou=Object.assign||function(e){for(var t=1;t= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n// \nvar isPlainObject = (function (x) {\n return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x.constructor === Object;\n});\n\n// \nvar EMPTY_ARRAY = Object.freeze([]);\nvar EMPTY_OBJECT = Object.freeze({});\n\n// \nfunction isFunction(test) {\n return typeof test === 'function';\n}\n\n// \n\nfunction getComponentName(target) {\n return (process.env.NODE_ENV !== 'production' ? typeof target === 'string' && target : false) || target.displayName || target.name || 'Component';\n}\n\n// \nfunction isStatelessFunction(test) {\n return typeof test === 'function' && !(test.prototype && test.prototype.isReactComponent);\n}\n\n// \nfunction isStyledComponent(target) {\n return target && typeof target.styledComponentId === 'string';\n}\n\n// \n\nvar SC_ATTR = typeof process !== 'undefined' && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || 'data-styled';\n\nvar SC_VERSION_ATTR = 'data-styled-version';\n\nvar SC_STREAM_ATTR = 'data-styled-streamed';\n\nvar IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\n\nvar DISABLE_SPEEDY = typeof SC_DISABLE_SPEEDY === 'boolean' && SC_DISABLE_SPEEDY || typeof process !== 'undefined' && (process.env.REACT_APP_SC_DISABLE_SPEEDY || process.env.SC_DISABLE_SPEEDY) || process.env.NODE_ENV !== 'production';\n\n// Shared empty execution context when generating static styles\nvar STATIC_EXECUTION_CONTEXT = {};\n\n// \n\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n */\nvar ERRORS = process.env.NODE_ENV !== 'production' ? {\n \"1\": \"Cannot create styled-component for component: %s.\\n\\n\",\n \"2\": \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n \"3\": \"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",\n \"4\": \"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",\n \"5\": \"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",\n \"6\": \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n \"7\": \"ThemeProvider: Please return an object from your \\\"theme\\\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n\",\n \"8\": \"ThemeProvider: Please make your \\\"theme\\\" prop an object.\\n\\n\",\n \"9\": \"Missing document ``\\n\\n\",\n \"10\": \"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",\n \"11\": \"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",\n \"12\": \"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",\n \"13\": \"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\"\n} : {};\n\n/**\n * super basic version of sprintf\n */\nfunction format() {\n var a = arguments.length <= 0 ? undefined : arguments[0];\n var b = [];\n\n for (var c = 1, len = arguments.length; c < len; c += 1) {\n b.push(arguments.length <= c ? undefined : arguments[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n\n return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n */\n\nvar StyledComponentsError = function (_Error) {\n inherits(StyledComponentsError, _Error);\n\n function StyledComponentsError(code) {\n classCallCheck(this, StyledComponentsError);\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV === 'production') {\n var _this = possibleConstructorReturn(this, _Error.call(this, 'An error occurred. See https://github.com/styled-components/styled-components/blob/master/packages/styled-components/src/utils/errors.md#' + code + ' for more information.' + (interpolations.length > 0 ? ' Additional arguments: ' + interpolations.join(', ') : '')));\n } else {\n var _this = possibleConstructorReturn(this, _Error.call(this, format.apply(undefined, [ERRORS[code]].concat(interpolations)).trim()));\n }\n return possibleConstructorReturn(_this);\n }\n\n return StyledComponentsError;\n}(Error);\n\n// \nvar SC_COMPONENT_ID = /^[^\\S\\n]*?\\/\\* sc-component-id:\\s*(\\S+)\\s+\\*\\//gm;\n\nvar extractComps = (function (maybeCSS) {\n var css = '' + (maybeCSS || ''); // Definitely a string, and a clone\n var existingComponents = [];\n css.replace(SC_COMPONENT_ID, function (match, componentId, matchIndex) {\n existingComponents.push({ componentId: componentId, matchIndex: matchIndex });\n return match;\n });\n return existingComponents.map(function (_ref, i) {\n var componentId = _ref.componentId,\n matchIndex = _ref.matchIndex;\n\n var nextComp = existingComponents[i + 1];\n var cssFromDOM = nextComp ? css.slice(matchIndex, nextComp.matchIndex) : css.slice(matchIndex);\n return { componentId: componentId, cssFromDOM: cssFromDOM };\n });\n});\n\n// \n\nvar COMMENT_REGEX = /^\\s*\\/\\/.*$/gm;\n\n// NOTE: This stylis instance is only used to split rules from SSR'd style tags\nvar stylisSplitter = new Stylis({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: false,\n compress: false,\n semicolon: true\n});\n\nvar stylis = new Stylis({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: true,\n compress: false,\n semicolon: false // NOTE: This means \"autocomplete missing semicolons\"\n});\n\n// Wrap `insertRulePlugin to build a list of rules,\n// and then make our own plugin to return the rules. This\n// makes it easier to hook into the existing SSR architecture\n\nvar parsingRules = [];\n\n// eslint-disable-next-line consistent-return\nvar returnRulesPlugin = function returnRulesPlugin(context) {\n if (context === -2) {\n var parsedRules = parsingRules;\n parsingRules = [];\n return parsedRules;\n }\n};\n\nvar parseRulesPlugin = _insertRulePlugin(function (rule) {\n parsingRules.push(rule);\n});\n\nvar _componentId = void 0;\nvar _selector = void 0;\nvar _selectorRegexp = void 0;\n\nvar selfReferenceReplacer = function selfReferenceReplacer(match, offset, string) {\n if (\n // the first self-ref is always untouched\n offset > 0 &&\n // there should be at least two self-refs to do a replacement (.b > .b)\n string.slice(0, offset).indexOf(_selector) !== -1 &&\n // no consecutive self refs (.b.b); that is a precedence boost and treated differently\n string.slice(offset - _selector.length, offset) !== _selector) {\n return '.' + _componentId;\n }\n\n return match;\n};\n\n/**\n * When writing a style like\n *\n * & + & {\n * color: red;\n * }\n *\n * The second ampersand should be a reference to the static component class. stylis\n * has no knowledge of static class so we have to intelligently replace the base selector.\n */\nvar selfReferenceReplacementPlugin = function selfReferenceReplacementPlugin(context, _, selectors) {\n if (context === 2 && selectors.length && selectors[0].lastIndexOf(_selector) > 0) {\n // eslint-disable-next-line no-param-reassign\n selectors[0] = selectors[0].replace(_selectorRegexp, selfReferenceReplacer);\n }\n};\n\nstylis.use([selfReferenceReplacementPlugin, parseRulesPlugin, returnRulesPlugin]);\nstylisSplitter.use([parseRulesPlugin, returnRulesPlugin]);\n\nvar splitByRules = function splitByRules(css) {\n return stylisSplitter('', css);\n};\n\nfunction stringifyRules(rules, selector, prefix) {\n var componentId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '&';\n\n var flatCSS = rules.join('').replace(COMMENT_REGEX, ''); // replace JS comments\n\n var cssStr = selector && prefix ? prefix + ' ' + selector + ' { ' + flatCSS + ' }' : flatCSS;\n\n // stylis has no concept of state to be passed to plugins\n // but since JS is single=threaded, we can rely on that to ensure\n // these properties stay in sync with the current stylis run\n _componentId = componentId;\n _selector = selector;\n _selectorRegexp = new RegExp('\\\\' + _selector + '\\\\b', 'g');\n\n return stylis(prefix || !selector ? '' : selector, cssStr);\n}\n\n// \n/* eslint-disable camelcase, no-undef */\n\nvar getNonce = (function () {\n return typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n});\n\n// \n/* These are helpers for the StyleTags to keep track of the injected\n * rule names for each (component) ID that they're keeping track of.\n * They're crucial for detecting whether a name has already been\n * injected.\n * (This excludes rehydrated names) */\n\n/* adds a new ID:name pairing to a names dictionary */\nvar addNameForId = function addNameForId(names, id, name) {\n if (name) {\n // eslint-disable-next-line no-param-reassign\n var namesForId = names[id] || (names[id] = Object.create(null));\n namesForId[name] = true;\n }\n};\n\n/* resets an ID entirely by overwriting it in the dictionary */\nvar resetIdNames = function resetIdNames(names, id) {\n // eslint-disable-next-line no-param-reassign\n names[id] = Object.create(null);\n};\n\n/* factory for a names dictionary checking the existance of an ID:name pairing */\nvar hasNameForId = function hasNameForId(names) {\n return function (id, name) {\n return names[id] !== undefined && names[id][name];\n };\n};\n\n/* stringifies names for the html/element output */\nvar stringifyNames = function stringifyNames(names) {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in names) {\n str += Object.keys(names[id]).join(' ') + ' ';\n }\n return str.trim();\n};\n\n/* clones the nested names dictionary */\nvar cloneNames = function cloneNames(names) {\n var clone = Object.create(null);\n // eslint-disable-next-line guard-for-in\n for (var id in names) {\n clone[id] = _extends({}, names[id]);\n }\n return clone;\n};\n\n// \n\n/* These are helpers that deal with the insertRule (aka speedy) API\n * They are used in the StyleTags and specifically the speedy tag\n */\n\n/* retrieve a sheet for a given style tag */\nvar sheetForTag = function sheetForTag(tag) {\n // $FlowFixMe\n if (tag.sheet) return tag.sheet;\n\n /* Firefox quirk requires us to step through all stylesheets to find one owned by the given tag */\n var size = tag.ownerDocument.styleSheets.length;\n for (var i = 0; i < size; i += 1) {\n var sheet = tag.ownerDocument.styleSheets[i];\n // $FlowFixMe\n if (sheet.ownerNode === tag) return sheet;\n }\n\n /* we should always be able to find a tag */\n throw new StyledComponentsError(10);\n};\n\n/* insert a rule safely and return whether it was actually injected */\nvar safeInsertRule = function safeInsertRule(sheet, cssRule, index) {\n /* abort early if cssRule string is falsy */\n if (!cssRule) return false;\n\n var maxIndex = sheet.cssRules.length;\n\n try {\n /* use insertRule and cap passed index with maxIndex (no of cssRules) */\n sheet.insertRule(cssRule, index <= maxIndex ? index : maxIndex);\n } catch (err) {\n /* any error indicates an invalid rule */\n return false;\n }\n\n return true;\n};\n\n/* deletes `size` rules starting from `removalIndex` */\nvar deleteRules = function deleteRules(sheet, removalIndex, size) {\n var lowerBound = removalIndex - size;\n for (var i = removalIndex; i > lowerBound; i -= 1) {\n sheet.deleteRule(i);\n }\n};\n\n// \n\n/* this marker separates component styles and is important for rehydration */\nvar makeTextMarker = function makeTextMarker(id) {\n return '\\n/* sc-component-id: ' + id + ' */\\n';\n};\n\n/* add up all numbers in array up until and including the index */\nvar addUpUntilIndex = function addUpUntilIndex(sizes, index) {\n var totalUpToIndex = 0;\n for (var i = 0; i <= index; i += 1) {\n totalUpToIndex += sizes[i];\n }\n\n return totalUpToIndex;\n};\n\n/* create a new style tag after lastEl */\nvar makeStyleTag = function makeStyleTag(target, tagEl, insertBefore) {\n var targetDocument = document;\n if (target) targetDocument = target.ownerDocument;else if (tagEl) targetDocument = tagEl.ownerDocument;\n\n var el = targetDocument.createElement('style');\n el.setAttribute(SC_ATTR, '');\n el.setAttribute(SC_VERSION_ATTR, \"4.4.0\");\n\n var nonce = getNonce();\n if (nonce) {\n el.setAttribute('nonce', nonce);\n }\n\n /* Work around insertRule quirk in EdgeHTML */\n el.appendChild(targetDocument.createTextNode(''));\n\n if (target && !tagEl) {\n /* Append to target when no previous element was passed */\n target.appendChild(el);\n } else {\n if (!tagEl || !target || !tagEl.parentNode) {\n throw new StyledComponentsError(6);\n }\n\n /* Insert new style tag after the previous one */\n tagEl.parentNode.insertBefore(el, insertBefore ? tagEl : tagEl.nextSibling);\n }\n\n return el;\n};\n\n/* takes a css factory function and outputs an html styled tag factory */\nvar wrapAsHtmlTag = function wrapAsHtmlTag(css, names) {\n return function (additionalAttrs) {\n var nonce = getNonce();\n var attrs = [nonce && 'nonce=\"' + nonce + '\"', SC_ATTR + '=\"' + stringifyNames(names) + '\"', SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"', additionalAttrs];\n\n var htmlAttr = attrs.filter(Boolean).join(' ');\n return '';\n };\n};\n\n/* takes a css factory function and outputs an element factory */\nvar wrapAsElement = function wrapAsElement(css, names) {\n return function () {\n var _props;\n\n var props = (_props = {}, _props[SC_ATTR] = stringifyNames(names), _props[SC_VERSION_ATTR] = \"4.4.0\", _props);\n\n var nonce = getNonce();\n if (nonce) {\n // $FlowFixMe\n props.nonce = nonce;\n }\n\n // eslint-disable-next-line react/no-danger\n return React.createElement('style', _extends({}, props, { dangerouslySetInnerHTML: { __html: css() } }));\n };\n};\n\nvar getIdsFromMarkersFactory = function getIdsFromMarkersFactory(markers) {\n return function () {\n return Object.keys(markers);\n };\n};\n\n/* speedy tags utilise insertRule */\nvar makeSpeedyTag = function makeSpeedyTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var sizes = [];\n\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = sizes.length;\n sizes.push(0);\n resetIdNames(names, id);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var sheet = sheetForTag(el);\n var insertIndex = addUpUntilIndex(sizes, marker);\n\n var injectedRules = 0;\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = cssRules[i];\n var mayHaveImport = extractImport; /* @import rules are reordered to appear first */\n if (mayHaveImport && cssRule.indexOf('@import') !== -1) {\n importRules.push(cssRule);\n } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n mayHaveImport = false;\n injectedRules += 1;\n }\n }\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n\n sizes[marker] += injectedRules; /* add up no of injected rules */\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n // $FlowFixMe\n if (el.isConnected === false) return;\n\n var size = sizes[marker];\n var sheet = sheetForTag(el);\n var removalIndex = addUpUntilIndex(sizes, marker) - 1;\n deleteRules(sheet, removalIndex, size);\n sizes[marker] = 0;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var _sheetForTag = sheetForTag(el),\n cssRules = _sheetForTag.cssRules;\n\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += makeTextMarker(id);\n var marker = markers[id];\n var end = addUpUntilIndex(sizes, marker);\n var size = sizes[marker];\n for (var i = end - size; i < end; i += 1) {\n var rule = cssRules[i];\n if (rule !== undefined) {\n str += rule.cssText;\n }\n }\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeTextNode = function makeTextNode(targetDocument, id) {\n return targetDocument.createTextNode(makeTextMarker(id));\n};\n\nvar makeBrowserTag = function makeBrowserTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n\n var extractImport = getImportRuleTag !== undefined;\n\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = makeTextNode(el.ownerDocument, id);\n el.appendChild(markers[id]);\n names[id] = Object.create(null);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var rule = cssRules[i];\n var mayHaveImport = extractImport;\n if (mayHaveImport && rule.indexOf('@import') !== -1) {\n importRules.push(rule);\n } else {\n mayHaveImport = false;\n var separator = i === cssRulesSize - 1 ? '' : ' ';\n marker.appendData('' + rule + separator);\n }\n }\n\n addNameForId(names, id, name);\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n\n /* create new empty text node and replace the current one */\n var newMarker = makeTextNode(el.ownerDocument, id);\n el.replaceChild(newMarker, marker);\n markers[id] = newMarker;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += markers[id].data;\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeServerTag = function makeServerTag(namesArg, markersArg) {\n var names = namesArg === undefined ? Object.create(null) : namesArg;\n var markers = markersArg === undefined ? Object.create(null) : markersArg;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n return markers[id] = [''];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n marker[0] += cssRules.join(' ');\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n marker[0] = '';\n resetIdNames(names, id);\n };\n\n var css = function css() {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n var cssForId = markers[id][0];\n if (cssForId) {\n str += makeTextMarker(id) + cssForId;\n }\n }\n return str;\n };\n\n var clone = function clone() {\n var namesClone = cloneNames(names);\n var markersClone = Object.create(null);\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n markersClone[id] = [markers[id][0]];\n }\n\n return makeServerTag(namesClone, markersClone);\n };\n\n var tag = {\n clone: clone,\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: null,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n\n return tag;\n};\n\nvar makeTag = function makeTag(target, tagEl, forceServer, insertBefore, getImportRuleTag) {\n if (IS_BROWSER && !forceServer) {\n var el = makeStyleTag(target, tagEl, insertBefore);\n\n if (DISABLE_SPEEDY) {\n return makeBrowserTag(el, getImportRuleTag);\n } else {\n return makeSpeedyTag(el, getImportRuleTag);\n }\n }\n\n return makeServerTag();\n};\n\nvar rehydrate = function rehydrate(tag, els, extracted) {\n /* add all extracted components to the new tag */\n for (var i = 0, len = extracted.length; i < len; i += 1) {\n var _extracted$i = extracted[i],\n componentId = _extracted$i.componentId,\n cssFromDOM = _extracted$i.cssFromDOM;\n\n var cssRules = splitByRules(cssFromDOM);\n tag.insertRules(componentId, cssRules);\n }\n\n /* remove old HTMLStyleElements, since they have been rehydrated */\n for (var _i = 0, _len = els.length; _i < _len; _i += 1) {\n var el = els[_i];\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n};\n\n// \n\nvar SPLIT_REGEX = /\\s+/;\n\n/* determine the maximum number of components before tags are sharded */\nvar MAX_SIZE = void 0;\nif (IS_BROWSER) {\n /* in speedy mode we can keep a lot more rules in a sheet before a slowdown can be expected */\n MAX_SIZE = DISABLE_SPEEDY ? 40 : 1000;\n} else {\n /* for servers we do not need to shard at all */\n MAX_SIZE = -1;\n}\n\nvar sheetRunningId = 0;\nvar master = void 0;\n\nvar StyleSheet = function () {\n\n /* a map from ids to tags */\n\n /* deferred rules for a given id */\n\n /* this is used for not reinjecting rules via hasNameForId() */\n\n /* when rules for an id are removed using remove() we have to ignore rehydratedNames for it */\n\n /* a list of tags belonging to this StyleSheet */\n\n /* a tag for import rules */\n\n /* current capacity until a new tag must be created */\n\n /* children (aka clones) of this StyleSheet inheriting all and future injections */\n\n function StyleSheet() {\n var _this = this;\n\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : IS_BROWSER ? document.head : null;\n var forceServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n classCallCheck(this, StyleSheet);\n\n this.getImportRuleTag = function () {\n var importRuleTag = _this.importRuleTag;\n\n if (importRuleTag !== undefined) {\n return importRuleTag;\n }\n\n var firstTag = _this.tags[0];\n var insertBefore = true;\n\n return _this.importRuleTag = makeTag(_this.target, firstTag ? firstTag.styleTag : null, _this.forceServer, insertBefore);\n };\n\n sheetRunningId += 1;\n this.id = sheetRunningId;\n this.forceServer = forceServer;\n this.target = forceServer ? null : target;\n this.tagMap = {};\n this.deferred = {};\n this.rehydratedNames = {};\n this.ignoreRehydratedNames = {};\n this.tags = [];\n this.capacity = 1;\n this.clones = [];\n }\n\n /* rehydrate all SSR'd style tags */\n\n\n StyleSheet.prototype.rehydrate = function rehydrate$$1() {\n if (!IS_BROWSER || this.forceServer) return this;\n\n var els = [];\n var extracted = [];\n var isStreamed = false;\n\n /* retrieve all of our SSR style elements from the DOM */\n var nodes = document.querySelectorAll('style[' + SC_ATTR + '][' + SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"]');\n\n var nodesSize = nodes.length;\n\n /* abort rehydration if no previous style tags were found */\n if (!nodesSize) return this;\n\n for (var i = 0; i < nodesSize; i += 1) {\n var el = nodes[i];\n\n /* check if style tag is a streamed tag */\n if (!isStreamed) isStreamed = !!el.getAttribute(SC_STREAM_ATTR);\n\n /* retrieve all component names */\n var elNames = (el.getAttribute(SC_ATTR) || '').trim().split(SPLIT_REGEX);\n var elNamesSize = elNames.length;\n for (var j = 0, name; j < elNamesSize; j += 1) {\n name = elNames[j];\n /* add rehydrated name to sheet to avoid re-adding styles */\n this.rehydratedNames[name] = true;\n }\n\n /* extract all components and their CSS */\n extracted.push.apply(extracted, extractComps(el.textContent));\n\n /* store original HTMLStyleElement */\n els.push(el);\n }\n\n /* abort rehydration if nothing was extracted */\n var extractedSize = extracted.length;\n if (!extractedSize) return this;\n\n /* create a tag to be used for rehydration */\n var tag = this.makeTag(null);\n\n rehydrate(tag, els, extracted);\n\n /* reset capacity and adjust MAX_SIZE by the initial size of the rehydration */\n this.capacity = Math.max(1, MAX_SIZE - extractedSize);\n this.tags.push(tag);\n\n /* retrieve all component ids */\n for (var _j = 0; _j < extractedSize; _j += 1) {\n this.tagMap[extracted[_j].componentId] = tag;\n }\n\n return this;\n };\n\n /* retrieve a \"master\" instance of StyleSheet which is typically used when no other is available\n * The master StyleSheet is targeted by createGlobalStyle, keyframes, and components outside of any\n * StyleSheetManager's context */\n\n\n /* reset the internal \"master\" instance */\n StyleSheet.reset = function reset() {\n var forceServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n master = new StyleSheet(undefined, forceServer).rehydrate();\n };\n\n /* adds \"children\" to the StyleSheet that inherit all of the parents' rules\n * while their own rules do not affect the parent */\n\n\n StyleSheet.prototype.clone = function clone() {\n var sheet = new StyleSheet(this.target, this.forceServer);\n\n /* add to clone array */\n this.clones.push(sheet);\n\n /* clone all tags */\n sheet.tags = this.tags.map(function (tag) {\n var ids = tag.getIds();\n var newTag = tag.clone();\n\n /* reconstruct tagMap */\n for (var i = 0; i < ids.length; i += 1) {\n sheet.tagMap[ids[i]] = newTag;\n }\n\n return newTag;\n });\n\n /* clone other maps */\n sheet.rehydratedNames = _extends({}, this.rehydratedNames);\n sheet.deferred = _extends({}, this.deferred);\n\n return sheet;\n };\n\n /* force StyleSheet to create a new tag on the next injection */\n\n\n StyleSheet.prototype.sealAllTags = function sealAllTags() {\n this.capacity = 1;\n\n this.tags.forEach(function (tag) {\n // eslint-disable-next-line no-param-reassign\n tag.sealed = true;\n });\n };\n\n StyleSheet.prototype.makeTag = function makeTag$$1(tag) {\n var lastEl = tag ? tag.styleTag : null;\n var insertBefore = false;\n\n return makeTag(this.target, lastEl, this.forceServer, insertBefore, this.getImportRuleTag);\n };\n\n /* get a tag for a given componentId, assign the componentId to one, or shard */\n StyleSheet.prototype.getTagForId = function getTagForId(id) {\n /* simply return a tag, when the componentId was already assigned one */\n var prev = this.tagMap[id];\n if (prev !== undefined && !prev.sealed) {\n return prev;\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n /* shard (create a new tag) if the tag is exhausted (See MAX_SIZE) */\n this.capacity -= 1;\n\n if (this.capacity === 0) {\n this.capacity = MAX_SIZE;\n tag = this.makeTag(tag);\n this.tags.push(tag);\n }\n\n return this.tagMap[id] = tag;\n };\n\n /* mainly for createGlobalStyle to check for its id */\n\n\n StyleSheet.prototype.hasId = function hasId(id) {\n return this.tagMap[id] !== undefined;\n };\n\n /* caching layer checking id+name to already have a corresponding tag and injected rules */\n\n\n StyleSheet.prototype.hasNameForId = function hasNameForId(id, name) {\n /* exception for rehydrated names which are checked separately */\n if (this.ignoreRehydratedNames[id] === undefined && this.rehydratedNames[name]) {\n return true;\n }\n\n var tag = this.tagMap[id];\n return tag !== undefined && tag.hasNameForId(id, name);\n };\n\n /* registers a componentId and registers it on its tag */\n\n\n StyleSheet.prototype.deferredInject = function deferredInject(id, cssRules) {\n /* don't inject when the id is already registered */\n if (this.tagMap[id] !== undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].deferredInject(id, cssRules);\n }\n\n this.getTagForId(id).insertMarker(id);\n this.deferred[id] = cssRules;\n };\n\n /* injects rules for a given id with a name that will need to be cached */\n\n\n StyleSheet.prototype.inject = function inject(id, cssRules, name) {\n var clones = this.clones;\n\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].inject(id, cssRules, name);\n }\n\n var tag = this.getTagForId(id);\n\n /* add deferred rules for component */\n if (this.deferred[id] !== undefined) {\n // Combine passed cssRules with previously deferred CSS rules\n // NOTE: We cannot mutate the deferred array itself as all clones\n // do the same (see clones[i].inject)\n var rules = this.deferred[id].concat(cssRules);\n tag.insertRules(id, rules, name);\n\n this.deferred[id] = undefined;\n } else {\n tag.insertRules(id, cssRules, name);\n }\n };\n\n /* removes all rules for a given id, which doesn't remove its marker but resets it */\n\n\n StyleSheet.prototype.remove = function remove(id) {\n var tag = this.tagMap[id];\n if (tag === undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].remove(id);\n }\n\n /* remove all rules from the tag */\n tag.removeRules(id);\n\n /* ignore possible rehydrated names */\n this.ignoreRehydratedNames[id] = true;\n\n /* delete possible deferred rules */\n this.deferred[id] = undefined;\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n var id = this.id;\n\n\n return this.tags.map(function (tag, i) {\n var key = 'sc-' + id + '-' + i;\n return cloneElement(tag.toElement(), { key: key });\n });\n };\n\n createClass(StyleSheet, null, [{\n key: 'master',\n get: function get$$1() {\n return master || (master = new StyleSheet().rehydrate());\n }\n\n /* NOTE: This is just for backwards-compatibility with jest-styled-components */\n\n }, {\n key: 'instance',\n get: function get$$1() {\n return StyleSheet.master;\n }\n }]);\n return StyleSheet;\n}();\n\n// \n\nvar Keyframes = function () {\n function Keyframes(name, rules) {\n var _this = this;\n\n classCallCheck(this, Keyframes);\n\n this.inject = function (styleSheet) {\n if (!styleSheet.hasNameForId(_this.id, _this.name)) {\n styleSheet.inject(_this.id, _this.rules, _this.name);\n }\n };\n\n this.toString = function () {\n throw new StyledComponentsError(12, String(_this.name));\n };\n\n this.name = name;\n this.rules = rules;\n\n this.id = 'sc-keyframes-' + name;\n }\n\n Keyframes.prototype.getName = function getName() {\n return this.name;\n };\n\n return Keyframes;\n}();\n\n// \n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\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 * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return string.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\n// \n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nfunction addUnitIfNeeded(name, value) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n}\n\n// \n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nvar isFalsish = function isFalsish(chunk) {\n return chunk === undefined || chunk === null || chunk === false || chunk === '';\n};\n\nvar objToCssArray = function objToCssArray(obj, prevKey) {\n var rules = [];\n var keys = Object.keys(obj);\n\n keys.forEach(function (key) {\n if (!isFalsish(obj[key])) {\n if (isPlainObject(obj[key])) {\n rules.push.apply(rules, objToCssArray(obj[key], key));\n\n return rules;\n } else if (isFunction(obj[key])) {\n rules.push(hyphenateStyleName(key) + ':', obj[key], ';');\n\n return rules;\n }\n rules.push(hyphenateStyleName(key) + ': ' + addUnitIfNeeded(key, obj[key]) + ';');\n }\n return rules;\n });\n\n return prevKey ? [prevKey + ' {'].concat(rules, ['}']) : rules;\n};\n\nfunction flatten(chunk, executionContext, styleSheet) {\n if (Array.isArray(chunk)) {\n var ruleSet = [];\n\n for (var i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet);\n\n if (result === null) continue;else if (Array.isArray(result)) ruleSet.push.apply(ruleSet, result);else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return null;\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return '.' + chunk.styledComponentId;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n var _result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(_result)) {\n // eslint-disable-next-line no-console\n console.warn(getComponentName(chunk) + ' is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.');\n }\n\n return flatten(_result, executionContext, styleSheet);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet);\n return chunk.getName();\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n}\n\n// \n\nfunction css(styles) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return flatten(interleave(EMPTY_ARRAY, [styles].concat(interpolations)));\n }\n\n // $FlowFixMe\n return flatten(interleave(styles, interpolations));\n}\n\n// \n\nfunction constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n if (!isValidElementType(tag)) {\n throw new StyledComponentsError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n var templateFunction = function templateFunction() {\n return componentConstructor(tag, options, css.apply(undefined, arguments));\n };\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean)\n }));\n };\n\n return templateFunction;\n}\n\n// \n// Source: https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash(c) {\n for (var e = c.length | 0, a = e | 0, d = 0, b; e >= 4;) {\n b = c.charCodeAt(d) & 255 | (c.charCodeAt(++d) & 255) << 8 | (c.charCodeAt(++d) & 255) << 16 | (c.charCodeAt(++d) & 255) << 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), b ^= b >>> 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16) ^ b, e -= 4, ++d;\n }\n switch (e) {\n case 3:\n a ^= (c.charCodeAt(d + 2) & 255) << 16;\n case 2:\n a ^= (c.charCodeAt(d + 1) & 255) << 8;\n case 1:\n a ^= c.charCodeAt(d) & 255, a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n }\n a ^= a >>> 13;\n a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n return (a ^ a >>> 15) >>> 0;\n}\n\n// \n/* eslint-disable no-bitwise */\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nvar charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nvar getAlphabeticChar = function getAlphabeticChar(code) {\n return String.fromCharCode(code + (code > 25 ? 39 : 97));\n};\n\n/* input a number, usually a hash and convert it to base-52 */\nfunction generateAlphabeticName(code) {\n var name = '';\n var x = void 0;\n\n /* get a char and divide by alphabet-length */\n for (x = code; x > charsLength; x = Math.floor(x / charsLength)) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return getAlphabeticChar(x % charsLength) + name;\n}\n\n// \n\nfunction hasFunctionObjectKey(obj) {\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in obj) {\n if (isFunction(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isStaticRules(rules, attrs) {\n for (var i = 0; i < rules.length; i += 1) {\n var rule = rules[i];\n\n // recursive case\n if (Array.isArray(rule) && !isStaticRules(rule, attrs)) {\n return false;\n } else if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n if (attrs.some(function (x) {\n return isFunction(x) || hasFunctionObjectKey(x);\n })) return false;\n\n return true;\n}\n\n// \n\n/* combines hashStr (murmurhash) and nameGenerator for convenience */\nvar hasher = function hasher(str) {\n return generateAlphabeticName(murmurhash(str));\n};\n\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\n\nvar ComponentStyle = function () {\n function ComponentStyle(rules, attrs, componentId) {\n classCallCheck(this, ComponentStyle);\n\n this.rules = rules;\n this.isStatic = process.env.NODE_ENV === 'production' && isStaticRules(rules, attrs);\n this.componentId = componentId;\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n\n\n ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) {\n var isStatic = this.isStatic,\n componentId = this.componentId,\n lastClassName = this.lastClassName;\n\n if (IS_BROWSER && isStatic && typeof lastClassName === 'string' && styleSheet.hasNameForId(componentId, lastClassName)) {\n return lastClassName;\n }\n\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var name = hasher(this.componentId + flatCSS.join(''));\n if (!styleSheet.hasNameForId(componentId, name)) {\n styleSheet.inject(this.componentId, stringifyRules(flatCSS, '.' + name, undefined, componentId), name);\n }\n\n this.lastClassName = name;\n return name;\n };\n\n ComponentStyle.generateName = function generateName(str) {\n return hasher(str);\n };\n\n return ComponentStyle;\n}();\n\n// \n\nvar LIMIT = 200;\n\nvar createWarnTooManyClasses = (function (displayName) {\n var generatedClasses = {};\n var warningSeen = false;\n\n return function (className) {\n if (!warningSeen) {\n generatedClasses[className] = true;\n if (Object.keys(generatedClasses).length >= LIMIT) {\n // Unable to find latestRule in test environment.\n /* eslint-disable no-console, prefer-template */\n console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \\n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\\n' + 'Example:\\n' + ' const Component = styled.div.attrs(props => ({\\n' + ' style: {\\n' + ' background: props.background,\\n' + ' },\\n' + ' }))`width: 100%;`\\n\\n' + ' ');\n warningSeen = true;\n generatedClasses = {};\n }\n }\n };\n});\n\n// \n\nvar determineTheme = (function (props, fallbackTheme) {\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types, flowtype-errors/show-errors */\n var isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;\n /* eslint-enable */\n\n return theme;\n});\n\n// \nvar escapeRegex = /[[\\].#*$><+~=|^:(),\"'`-]+/g;\nvar dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nfunction escape(str) {\n return str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n\n// \n\nfunction isTag(target) {\n return typeof target === 'string' && (process.env.NODE_ENV !== 'production' ? target.charAt(0) === target.charAt(0).toLowerCase() : true);\n}\n\n// \n\nfunction generateDisplayName(target) {\n // $FlowFixMe\n return isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')';\n}\n\nvar _TYPE_STATICS;\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDerivedStateFromProps: true,\n propTypes: true,\n type: true\n};\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};\n\nvar TYPE_STATICS = (_TYPE_STATICS = {}, _TYPE_STATICS[ForwardRef] = {\n $$typeof: true,\n render: true\n}, _TYPE_STATICS);\n\nvar defineProperty$1 = Object.defineProperty,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n _Object$getOwnPropert = Object.getOwnPropertySymbols,\n getOwnPropertySymbols = _Object$getOwnPropert === undefined ? function () {\n return [];\n} : _Object$getOwnPropert,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getPrototypeOf = Object.getPrototypeOf,\n objectPrototype = Object.prototype;\nvar arrayPrototype = Array.prototype;\n\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n\n var keys = arrayPrototype.concat(getOwnPropertyNames(sourceComponent),\n // $FlowFixMe\n getOwnPropertySymbols(sourceComponent));\n\n var targetStatics = TYPE_STATICS[targetComponent.$$typeof] || REACT_STATICS;\n\n var sourceStatics = TYPE_STATICS[sourceComponent.$$typeof] || REACT_STATICS;\n\n var i = keys.length;\n var descriptor = void 0;\n var key = void 0;\n\n // eslint-disable-next-line no-plusplus\n while (i--) {\n key = keys[i];\n\n if (\n // $FlowFixMe\n !KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) &&\n // $FlowFixMe\n !(targetStatics && targetStatics[key])) {\n descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n if (descriptor) {\n try {\n // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {\n /* fail silently */\n }\n }\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\n// \nfunction isDerivedReactComponent(fn) {\n return !!(fn && fn.prototype && fn.prototype.isReactComponent);\n}\n\n// \n// Helper to call a given function, only once\nvar once = (function (cb) {\n var called = false;\n\n return function () {\n if (!called) {\n called = true;\n cb.apply(undefined, arguments);\n }\n };\n});\n\n// \n\nvar ThemeContext = createContext();\n\nvar ThemeConsumer = ThemeContext.Consumer;\n\n/**\n * Provide a theme to an entire react component tree via context\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider(props) {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext.bind(_this));\n _this.renderInner = _this.renderInner.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) return null;\n\n return React.createElement(\n ThemeContext.Consumer,\n null,\n this.renderInner\n );\n };\n\n ThemeProvider.prototype.renderInner = function renderInner(outerTheme) {\n var context = this.getContext(this.props.theme, outerTheme);\n\n return React.createElement(\n ThemeContext.Provider,\n { value: context },\n this.props.children\n );\n };\n\n /**\n * Get the theme from the props, supporting both (outerTheme) => {}\n * as well as object notation\n */\n\n\n ThemeProvider.prototype.getTheme = function getTheme(theme, outerTheme) {\n if (isFunction(theme)) {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme === null || Array.isArray(mergedTheme) || (typeof mergedTheme === 'undefined' ? 'undefined' : _typeof(mergedTheme)) !== 'object')) {\n throw new StyledComponentsError(7);\n }\n\n return mergedTheme;\n }\n\n if (theme === null || Array.isArray(theme) || (typeof theme === 'undefined' ? 'undefined' : _typeof(theme)) !== 'object') {\n throw new StyledComponentsError(8);\n }\n\n return _extends({}, outerTheme, theme);\n };\n\n ThemeProvider.prototype.getContext = function getContext(theme, outerTheme) {\n return this.getTheme(theme, outerTheme);\n };\n\n return ThemeProvider;\n}(Component);\n\n// \n\nvar CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nvar ServerStyleSheet = function () {\n function ServerStyleSheet() {\n classCallCheck(this, ServerStyleSheet);\n\n /* The master sheet might be reset, so keep a reference here */\n this.masterSheet = StyleSheet.master;\n this.instance = this.masterSheet.clone();\n this.sealed = false;\n }\n\n /**\n * Mark the ServerStyleSheet as being fully emitted and manually GC it from the\n * StyleSheet singleton.\n */\n\n\n ServerStyleSheet.prototype.seal = function seal() {\n if (!this.sealed) {\n /* Remove sealed StyleSheets from the master sheet */\n var index = this.masterSheet.clones.indexOf(this.instance);\n this.masterSheet.clones.splice(index, 1);\n this.sealed = true;\n }\n };\n\n ServerStyleSheet.prototype.collectStyles = function collectStyles(children) {\n if (this.sealed) {\n throw new StyledComponentsError(2);\n }\n\n return React.createElement(\n StyleSheetManager,\n { sheet: this.instance },\n children\n );\n };\n\n ServerStyleSheet.prototype.getStyleTags = function getStyleTags() {\n this.seal();\n return this.instance.toHTML();\n };\n\n ServerStyleSheet.prototype.getStyleElement = function getStyleElement() {\n this.seal();\n return this.instance.toReactElements();\n };\n\n ServerStyleSheet.prototype.interleaveWithNodeStream = function interleaveWithNodeStream(readableStream) {\n var _this = this;\n\n {\n throw new StyledComponentsError(3);\n }\n\n /* the tag index keeps track of which tags have already been emitted */\n var instance = this.instance;\n\n var instanceTagIndex = 0;\n\n var streamAttr = SC_STREAM_ATTR + '=\"true\"';\n\n var transformer = new stream.Transform({\n transform: function appendStyleChunks(chunk, /* encoding */_, callback) {\n var tags = instance.tags;\n\n var html = '';\n\n /* retrieve html for each new style tag */\n for (; instanceTagIndex < tags.length; instanceTagIndex += 1) {\n var tag = tags[instanceTagIndex];\n html += tag.toHTML(streamAttr);\n }\n\n /* force our StyleSheets to emit entirely new tags */\n instance.sealAllTags();\n\n var renderedHtml = chunk.toString();\n\n /* prepend style html to chunk, unless the start of the chunk is a closing tag in which case append right after that */\n if (CLOSING_TAG_R.test(renderedHtml)) {\n var endOfClosingTag = renderedHtml.indexOf('>');\n\n this.push(renderedHtml.slice(0, endOfClosingTag + 1) + html + renderedHtml.slice(endOfClosingTag + 1));\n } else this.push(html + renderedHtml);\n\n callback();\n }\n });\n\n readableStream.on('end', function () {\n return _this.seal();\n });\n\n readableStream.on('error', function (err) {\n _this.seal();\n\n // forward the error to the transform stream\n transformer.emit('error', err);\n });\n\n return readableStream.pipe(transformer);\n };\n\n return ServerStyleSheet;\n}();\n\n// \n\nvar StyleSheetContext = createContext();\nvar StyleSheetConsumer = StyleSheetContext.Consumer;\n\nvar StyleSheetManager = function (_Component) {\n inherits(StyleSheetManager, _Component);\n\n function StyleSheetManager(props) {\n classCallCheck(this, StyleSheetManager);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext);\n return _this;\n }\n\n StyleSheetManager.prototype.getContext = function getContext(sheet, target) {\n if (sheet) {\n return sheet;\n } else if (target) {\n return new StyleSheet(target);\n } else {\n throw new StyledComponentsError(4);\n }\n };\n\n StyleSheetManager.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n sheet = _props.sheet,\n target = _props.target;\n\n\n return React.createElement(\n StyleSheetContext.Provider,\n { value: this.getContext(sheet, target) },\n process.env.NODE_ENV !== 'production' ? React.Children.only(children) : children\n );\n };\n\n return StyleSheetManager;\n}(Component);\nprocess.env.NODE_ENV !== \"production\" ? StyleSheetManager.propTypes = {\n sheet: PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]),\n\n target: PropTypes.shape({\n appendChild: PropTypes.func.isRequired\n })\n} : void 0;\n\n// \n\nvar THEME_PROP_REGEX = /\\.theme[.[]/;\nvar identifiers = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(_ComponentStyle, _displayName, parentComponentId) {\n var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName);\n\n /**\n * This ensures uniqueness if two components happen to share\n * the same displayName.\n */\n var nr = (identifiers[displayName] || 0) + 1;\n identifiers[displayName] = nr;\n\n var componentId = displayName + '-' + _ComponentStyle.generateName(displayName + nr);\n\n return parentComponentId ? parentComponentId + '-' + componentId : componentId;\n}\n\n// $FlowFixMe\n\nvar StyledComponent = function (_Component) {\n inherits(StyledComponent, _Component);\n\n function StyledComponent() {\n classCallCheck(this, StyledComponent);\n\n var _this = possibleConstructorReturn(this, _Component.call(this));\n\n _this.attrs = {};\n\n _this.renderOuter = _this.renderOuter.bind(_this);\n _this.renderInner = _this.renderInner.bind(_this);\n\n if (process.env.NODE_ENV !== 'production') {\n _this.warnInnerRef = once(function (displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('The \"innerRef\" API has been removed in styled-components v4 in favor of React 16 ref forwarding, use \"ref\" instead like a typical component. \"innerRef\" was detected on component \"' + displayName + '\".')\n );\n });\n\n _this.warnAttrsFnObjectKeyDeprecated = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('Functions as object-form attrs({}) keys are now deprecated and will be removed in a future version of styled-components. Switch to the new attrs(props => ({})) syntax instead for easier and more powerful composition. The attrs key in question is \"' + key + '\" on component \"' + displayName + '\".', '\\n ' + new Error().stack)\n );\n });\n\n _this.warnNonStyledComponentAttrsObjectKey = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('It looks like you\\'ve used a non styled-component as the value for the \"' + key + '\" prop in an object-form attrs constructor of \"' + displayName + '\".\\n' + 'You should use the new function-form attrs constructor which avoids this issue: attrs(props => ({ yourStuff }))\\n' + \"To continue using the deprecated object syntax, you'll need to wrap your component prop in a function to make it available inside the styled component (you'll still get the deprecation warning though.)\\n\" + ('For example, { ' + key + ': () => InnerComponent } instead of { ' + key + ': InnerComponent }'))\n );\n });\n }\n return _this;\n }\n\n StyledComponent.prototype.render = function render() {\n return React.createElement(\n StyleSheetConsumer,\n null,\n this.renderOuter\n );\n };\n\n StyledComponent.prototype.renderOuter = function renderOuter() {\n var styleSheet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : StyleSheet.master;\n\n this.styleSheet = styleSheet;\n\n // No need to subscribe a static component to theme changes, it won't change anything\n if (this.props.forwardedComponent.componentStyle.isStatic) return this.renderInner();\n\n return React.createElement(\n ThemeConsumer,\n null,\n this.renderInner\n );\n };\n\n StyledComponent.prototype.renderInner = function renderInner(theme) {\n var _props$forwardedCompo = this.props.forwardedComponent,\n componentStyle = _props$forwardedCompo.componentStyle,\n defaultProps = _props$forwardedCompo.defaultProps,\n displayName = _props$forwardedCompo.displayName,\n foldedComponentIds = _props$forwardedCompo.foldedComponentIds,\n styledComponentId = _props$forwardedCompo.styledComponentId,\n target = _props$forwardedCompo.target,\n usesTheme = _props$forwardedCompo.usesTheme;\n\n\n var generatedClassName = void 0;\n var rawTheme = void 0;\n\n if (componentStyle.isStatic) {\n generatedClassName = this.generateAndInjectStyles(EMPTY_OBJECT, this.props);\n } else {\n rawTheme = determineTheme(this.props, theme, defaultProps);\n generatedClassName = this.generateAndInjectStyles(rawTheme || EMPTY_OBJECT, this.props);\n\n if (process.env.NODE_ENV !== 'production' && usesTheme && !rawTheme) {\n console.error('Component \\'' +\n // $FlowFixMe\n displayName + '\\' (.' + styledComponentId + ') references the \\'theme\\' prop in its styles but no theme was provided via prop or .');\n }\n }\n\n var elementToBeCreated = this.props.as || this.attrs.as || target;\n var isTargetTag = isTag(elementToBeCreated);\n\n var propsForElement = {};\n var computedProps = _extends({}, this.props, this.attrs);\n\n var key = void 0;\n // eslint-disable-next-line guard-for-in\n for (key in computedProps) {\n if (process.env.NODE_ENV !== 'production' && key === 'innerRef' && isTargetTag) {\n this.warnInnerRef(displayName);\n }\n\n if (key === 'forwardedComponent' || key === 'as') {\n continue;\n } else if (key === 'forwardedRef') propsForElement.ref = computedProps[key];else if (key === 'forwardedAs') propsForElement.as = computedProps[key];else if (!isTargetTag || validAttr(key)) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (this.props.style && this.attrs.style) {\n propsForElement.style = _extends({}, this.attrs.style, this.props.style);\n }\n\n propsForElement.className = Array.prototype.concat(foldedComponentIds, styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : null, this.props.className, this.attrs.className).filter(Boolean).join(' ');\n\n return createElement(elementToBeCreated, propsForElement);\n };\n\n StyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props, attrs) {\n var _this2 = this;\n\n var context = _extends({}, props, { theme: theme });\n\n if (!attrs.length) return context;\n\n this.attrs = {};\n\n attrs.forEach(function (attrDef) {\n var resolvedAttrDef = attrDef;\n var attrDefWasFn = false;\n var attr = void 0;\n var key = void 0;\n\n if (isFunction(resolvedAttrDef)) {\n // $FlowFixMe\n resolvedAttrDef = resolvedAttrDef(context);\n attrDefWasFn = true;\n }\n\n /* eslint-disable guard-for-in */\n // $FlowFixMe\n for (key in resolvedAttrDef) {\n attr = resolvedAttrDef[key];\n\n if (!attrDefWasFn) {\n if (isFunction(attr) && !isDerivedReactComponent(attr) && !isStyledComponent(attr)) {\n if (process.env.NODE_ENV !== 'production') {\n _this2.warnAttrsFnObjectKeyDeprecated(key, props.forwardedComponent.displayName);\n }\n\n attr = attr(context);\n\n if (process.env.NODE_ENV !== 'production' && React.isValidElement(attr)) {\n _this2.warnNonStyledComponentAttrsObjectKey(key, props.forwardedComponent.displayName);\n }\n }\n }\n\n _this2.attrs[key] = attr;\n context[key] = attr;\n }\n /* eslint-enable */\n });\n\n return context;\n };\n\n StyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var _props$forwardedCompo2 = props.forwardedComponent,\n attrs = _props$forwardedCompo2.attrs,\n componentStyle = _props$forwardedCompo2.componentStyle,\n warnTooManyClasses = _props$forwardedCompo2.warnTooManyClasses;\n\n // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n\n if (componentStyle.isStatic && !attrs.length) {\n return componentStyle.generateAndInjectStyles(EMPTY_OBJECT, this.styleSheet);\n }\n\n var className = componentStyle.generateAndInjectStyles(this.buildExecutionContext(theme, props, attrs), this.styleSheet);\n\n if (process.env.NODE_ENV !== 'production' && warnTooManyClasses) warnTooManyClasses(className);\n\n return className;\n };\n\n return StyledComponent;\n}(Component);\n\nfunction createStyledComponent(target, options, rules) {\n var isTargetStyledComp = isStyledComponent(target);\n var isClass = !isTag(target);\n\n var _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? generateDisplayName(target) : _options$displayName,\n _options$componentId = options.componentId,\n componentId = _options$componentId === undefined ? generateId(ComponentStyle, options.displayName, options.parentComponentId) : _options$componentId,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? StyledComponent : _options$ParentCompon,\n _options$attrs = options.attrs,\n attrs = _options$attrs === undefined ? EMPTY_ARRAY : _options$attrs;\n\n\n var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n var finalAttrs =\n // $FlowFixMe\n isTargetStyledComp && target.attrs ? Array.prototype.concat(target.attrs, attrs).filter(Boolean) : attrs;\n\n var componentStyle = new ComponentStyle(isTargetStyledComp ? // fold the underlying StyledComponent rules up (implicit extend)\n // $FlowFixMe\n target.componentStyle.rules.concat(rules) : rules, finalAttrs, styledComponentId);\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n var WrappedStyledComponent = void 0;\n var forwardRef = function forwardRef(props, ref) {\n return React.createElement(ParentComponent, _extends({}, props, { forwardedComponent: WrappedStyledComponent, forwardedRef: ref }));\n };\n forwardRef.displayName = displayName;\n WrappedStyledComponent = React.forwardRef(forwardRef);\n WrappedStyledComponent.displayName = displayName;\n\n // $FlowFixMe\n WrappedStyledComponent.attrs = finalAttrs;\n // $FlowFixMe\n WrappedStyledComponent.componentStyle = componentStyle;\n\n // $FlowFixMe\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp ? // $FlowFixMe\n Array.prototype.concat(target.foldedComponentIds, target.styledComponentId) : EMPTY_ARRAY;\n\n // $FlowFixMe\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n // $FlowFixMe\n WrappedStyledComponent.target = isTargetStyledComp ? target.target : target;\n\n // $FlowFixMe\n WrappedStyledComponent.withComponent = function withComponent(tag) {\n var previousComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['componentId']);\n\n\n var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag)));\n\n var newOptions = _extends({}, optionsToCopy, {\n attrs: finalAttrs,\n componentId: newComponentId,\n ParentComponent: ParentComponent\n });\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n // $FlowFixMe\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get: function get$$1() {\n return this._foldedDefaultProps;\n },\n set: function set$$1(obj) {\n // $FlowFixMe\n this._foldedDefaultProps = isTargetStyledComp ? merge(target.defaultProps, obj) : obj;\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n WrappedStyledComponent.usesTheme = componentStyle.rules.some(function (x) {\n return isFunction(x) && THEME_PROP_REGEX.test(x.toString());\n });\n\n // $FlowFixMe\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName);\n }\n\n // $FlowFixMe\n WrappedStyledComponent.toString = function () {\n return '.' + WrappedStyledComponent.styledComponentId;\n };\n\n if (isClass) {\n hoistNonReactStatics(WrappedStyledComponent, target, {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n styledComponentId: true,\n target: true,\n withComponent: true\n });\n }\n\n return WrappedStyledComponent;\n}\n\n// \n// Thanks to ReactDOMFactories for this handy list!\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr',\n\n// SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'marker', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// \n\nvar styled = function styled(tag) {\n return constructWithOptions(createStyledComponent, tag);\n};\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(function (domElement) {\n styled[domElement] = styled(domElement);\n});\n\n// \n\nvar GlobalStyle = function () {\n function GlobalStyle(rules, componentId) {\n classCallCheck(this, GlobalStyle);\n\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules, EMPTY_ARRAY);\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n GlobalStyle.prototype.createStyles = function createStyles(executionContext, styleSheet) {\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var css = stringifyRules(flatCSS, '');\n\n styleSheet.inject(this.componentId, css);\n };\n\n GlobalStyle.prototype.removeStyles = function removeStyles(styleSheet) {\n var componentId = this.componentId;\n\n if (styleSheet.hasId(componentId)) {\n styleSheet.remove(componentId);\n }\n };\n\n // TODO: overwrite in-place instead of remove+create?\n\n\n GlobalStyle.prototype.renderStyles = function renderStyles(executionContext, styleSheet) {\n this.removeStyles(styleSheet);\n this.createStyles(executionContext, styleSheet);\n };\n\n return GlobalStyle;\n}();\n\n// \n\n// place our cache into shared context so it'll persist between HMRs\nif (IS_BROWSER) {\n window.scCGSHMRCache = {};\n}\n\nfunction createGlobalStyle(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var id = 'sc-global-' + murmurhash(JSON.stringify(rules));\n var style = new GlobalStyle(rules, id);\n\n var GlobalStyleComponent = function (_React$Component) {\n inherits(GlobalStyleComponent, _React$Component);\n\n function GlobalStyleComponent(props) {\n classCallCheck(this, GlobalStyleComponent);\n\n var _this = possibleConstructorReturn(this, _React$Component.call(this, props));\n\n var _this$constructor = _this.constructor,\n globalStyle = _this$constructor.globalStyle,\n styledComponentId = _this$constructor.styledComponentId;\n\n\n if (IS_BROWSER) {\n window.scCGSHMRCache[styledComponentId] = (window.scCGSHMRCache[styledComponentId] || 0) + 1;\n }\n\n /**\n * This fixes HMR compatibility. Don't ask me why, but this combination of\n * caching the closure variables via statics and then persisting the statics in\n * state works across HMR where no other combination did. ¯\\_(ツ)_/¯\n */\n _this.state = {\n globalStyle: globalStyle,\n styledComponentId: styledComponentId\n };\n return _this;\n }\n\n GlobalStyleComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n if (window.scCGSHMRCache[this.state.styledComponentId]) {\n window.scCGSHMRCache[this.state.styledComponentId] -= 1;\n }\n /**\n * Depending on the order \"render\" is called this can cause the styles to be lost\n * until the next render pass of the remaining instance, which may\n * not be immediate.\n */\n if (window.scCGSHMRCache[this.state.styledComponentId] === 0) {\n this.state.globalStyle.removeStyles(this.styleSheet);\n }\n };\n\n GlobalStyleComponent.prototype.render = function render() {\n var _this2 = this;\n\n if (process.env.NODE_ENV !== 'production' && React.Children.count(this.props.children)) {\n // eslint-disable-next-line no-console\n console.warn('The global style component ' + this.state.styledComponentId + ' was given child JSX. createGlobalStyle does not render children.');\n }\n\n return React.createElement(\n StyleSheetConsumer,\n null,\n function (styleSheet) {\n _this2.styleSheet = styleSheet || StyleSheet.master;\n\n var globalStyle = _this2.state.globalStyle;\n\n\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(STATIC_EXECUTION_CONTEXT, _this2.styleSheet);\n\n return null;\n } else {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = _this2.constructor.defaultProps;\n\n\n var context = _extends({}, _this2.props);\n\n if (typeof theme !== 'undefined') {\n context.theme = determineTheme(_this2.props, theme, defaultProps);\n }\n\n globalStyle.renderStyles(context, _this2.styleSheet);\n\n return null;\n }\n );\n }\n }\n );\n };\n\n return GlobalStyleComponent;\n }(React.Component);\n\n GlobalStyleComponent.globalStyle = style;\n GlobalStyleComponent.styledComponentId = id;\n\n\n return GlobalStyleComponent;\n}\n\n// \n\nvar replaceWhitespace = function replaceWhitespace(str) {\n return str.replace(/\\s|\\\\n/g, '');\n};\n\nfunction keyframes(strings) {\n /* Warning if you've used keyframes on React Native */\n if (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn('`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.');\n }\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n\n var name = generateAlphabeticName(murmurhash(replaceWhitespace(JSON.stringify(rules))));\n\n return new Keyframes(name, stringifyRules(rules, name, '@keyframes'));\n}\n\n// \n\nvar withTheme = (function (Component$$1) {\n var WithTheme = React.forwardRef(function (props, ref) {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = Component$$1.defaultProps;\n\n var themeProp = determineTheme(props, theme, defaultProps);\n\n if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + getComponentName(Component$$1) + '\"');\n }\n\n return React.createElement(Component$$1, _extends({}, props, { theme: themeProp, ref: ref }));\n }\n );\n });\n\n hoistNonReactStatics(WithTheme, Component$$1);\n\n WithTheme.displayName = 'WithTheme(' + getComponentName(Component$$1) + ')';\n\n return WithTheme;\n});\n\n// \n\n/* eslint-disable */\nvar __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS = {\n StyleSheet: StyleSheet\n};\n\n// \n\n/* Warning if you've imported this file on React Native */\nif (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like you've imported 'styled-components' on React Native.\\n\" + \"Perhaps you're looking to import 'styled-components/native'?\\n\" + 'Read more about this at https://www.styled-components.com/docs/basics#react-native');\n}\n\n/* Warning if there are several instances of styled-components */\nif (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test' && typeof window !== 'undefined' && typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Node.js') === -1 && navigator.userAgent.indexOf('jsdom') === -1) {\n window['__styled-components-init__'] = window['__styled-components-init__'] || 0;\n\n if (window['__styled-components-init__'] === 1) {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. \" + 'This may cause dynamic styles not rendering properly, errors happening during rehydration process ' + 'and makes your application bigger without a good reason.\\n\\n' + 'See https://s-c.sh/2BAXzed for more info.');\n }\n\n window['__styled-components-init__'] += 1;\n}\n\n//\n\nexport default styled;\nexport { createGlobalStyle, css, isStyledComponent, keyframes, ServerStyleSheet, StyleSheetConsumer, StyleSheetContext, StyleSheetManager, ThemeConsumer, ThemeContext, ThemeProvider, withTheme, __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS };\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","export const colors = {\n PRIMARY: '#ABE2FB',\n SECONDARY: '#E6E6E6',\n DARKER_PRIMARY: '#87ceeb',\n OFF_WHITE: '#15181A',\n GREY: '#D3D3D3',\n RED: '#FF5E5E',\n DARK_GREY: '#535D63'\n};\n\nexport const TRACK_TOTAL_DEG = 270.0;\n\nexport const RADIAN = Math.PI / 180.0;\n\nexport const light = {\n primary: colors.PRIMARY,\n secondary: colors.SECONDARY,\n detail: colors.GREY,\n dark: false\n};\n\nexport const dark = {\n primary: colors.PRIMARY,\n secondary: colors.DARK_GREY,\n detail: colors.DARK_GREY,\n dark: true\n};\n\nexport default {\n dark,\n light,\n colors\n};\n","import { omit } from 'ramda';\n\nexport const getClassName = (componentName, theme) => {\n return 'daq-' + componentName + (theme && theme.dark ? '--dark' : '--light');\n};\n\nexport const getFilteredProps = props => omit(['className', 'id', 'setProps', 'style'], props);\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(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};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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};","import React from 'react';\nimport styled from 'styled-components';\n\nimport Label from './Label.styled';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-around;\n flex-direction: column;\n ${({ fullSize }) => {\n if (fullSize) return 'width: 100%;';\n return '';\n }}\n`;\n\nfunction LabelContainer(props) {\n let labelText = props.label;\n let customLabelStyle = {};\n if (typeof props.label === 'object') {\n labelText = props.label.label;\n customLabelStyle = props.label.style;\n }\n const labelElement = \n // if (labelText && labelText.length) {\n return (\n \n {props.labelPosition == 'top' && labelElement}\n {props.children}\n {props.labelPosition != 'top' && labelElement}\n \n );\n // }\n // return
{props.children}
;\n}\n\nLabelContainer.defaultProps = {\n labelPosition: 'bottom'\n};\n\nexport default LabelContainer;\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = 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 (0, _defineProperty2.default)(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}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","(function() { module.exports = window[\"ReactDOM\"]; }());","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n\tvar _react = __webpack_require__(1);\n\n\tvar _react2 = _interopRequireDefault(_react);\n\n\tvar _propTypes = __webpack_require__(2);\n\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\tvar KEYCODE_UP = 38;\n\tvar KEYCODE_DOWN = 40;\n\tvar IS_BROWSER = typeof document != 'undefined';\n\tvar RE_NUMBER = /^[+-]?((\\.\\d+)|(\\d+(\\.\\d+)?))$/;\n\tvar RE_INCOMPLETE_NUMBER = /^([+-]|\\.0*|[+-]\\.0*|[+-]?\\d+\\.)?$/;\n\n\tfunction addClass(element, className) {\n\t if (element.classList) {\n\t return element.classList.add(className);\n\t }\n\t if (!element.className.search(new RegExp(\"\\\\b\" + className + \"\\\\b\"))) {\n\t element.className = \" \" + className;\n\t }\n\t}\n\n\tfunction removeClass(element, className) {\n\t if (element.className) {\n\t if (element.classList) {\n\t return element.classList.remove(className);\n\t }\n\n\t element.className = element.className.replace(new RegExp(\"\\\\b\" + className + \"\\\\b\", \"g\"), \"\");\n\t }\n\t}\n\n\tfunction access(object, prop, defaultValue) {\n\t var result = object[prop];\n\t if (typeof result == \"function\") {\n\t for (var _len = arguments.length, args = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n\t args[_key - 3] = arguments[_key];\n\t }\n\n\t result = result.apply(undefined, args);\n\t }\n\t return result === undefined ? defaultValue : result;\n\t}\n\n\tvar NumericInput = function (_Component) {\n\t _inherits(NumericInput, _Component);\n\n\t function NumericInput() {\n\t var _ref;\n\n\t _classCallCheck(this, NumericInput);\n\n\t for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t args[_key2] = arguments[_key2];\n\t }\n\n\t var _this = _possibleConstructorReturn(this, (_ref = NumericInput.__proto__ || Object.getPrototypeOf(NumericInput)).call.apply(_ref, [this].concat(args)));\n\n\t _this._isStrict = !!_this.props.strict;\n\n\t _this.state = _extends({\n\t btnDownHover: false,\n\t btnDownActive: false,\n\t btnUpHover: false,\n\t btnUpActive: false,\n\t stringValue: \"\"\n\t }, _this._propsToState(_this.props));\n\t _this.stop = _this.stop.bind(_this);\n\t _this.onTouchEnd = _this.onTouchEnd.bind(_this);\n\t _this.refsInput = {};\n\t _this.refsWrapper = {};\n\t return _this;\n\t }\n\n\t _createClass(NumericInput, [{\n\t key: '_propsToState',\n\t value: function _propsToState(props) {\n\t var out = {};\n\n\t if (props.hasOwnProperty(\"value\")) {\n\t out.stringValue = String(props.value || props.value === 0 ? props.value : '').trim();\n\n\t out.value = out.stringValue !== '' ? this._parse(props.value) : null;\n\t } else if (!this._isMounted && props.hasOwnProperty(\"defaultValue\")) {\n\t out.stringValue = String(props.defaultValue || props.defaultValue === 0 ? props.defaultValue : '').trim();\n\n\t out.value = props.defaultValue !== '' ? this._parse(props.defaultValue) : null;\n\t }\n\n\t return out;\n\t }\n\t }, {\n\t key: 'componentWillReceiveProps',\n\t value: function componentWillReceiveProps(props) {\n\t var _this2 = this;\n\n\t this._isStrict = !!props.strict;\n\t var nextState = this._propsToState(props);\n\t if (Object.keys(nextState).length) {\n\t this._ignoreValueChange = true;\n\t this.setState(nextState, function () {\n\t _this2._ignoreValueChange = false;\n\t });\n\t }\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate() {\n\t this.saveSelection();\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate(prevProps, prevState) {\n\t if (!this._ignoreValueChange && prevState.value !== this.state.value && (!isNaN(this.state.value) || this.state.value === null)) {\n\t this._invokeEventCallback(\"onChange\", this.state.value, this.refsInput.value, this.refsInput);\n\t }\n\n\t if (this._inputFocus) {\n\t this.refsInput.focus();\n\n\t if (this.state.selectionStart || this.state.selectionStart === 0) {\n\t this.refsInput.selectionStart = this.state.selectionStart;\n\t }\n\n\t if (this.state.selectionEnd || this.state.selectionEnd === 0) {\n\t this.refsInput.selectionEnd = this.state.selectionEnd;\n\t }\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t this._isMounted = false;\n\t this.stop();\n\t }\n\t }, {\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var _this3 = this;\n\n\t this._isMounted = true;\n\t this.refsInput.getValueAsNumber = function () {\n\t return _this3.state.value || 0;\n\t };\n\n\t this.refsInput.setValue = function (value) {\n\t _this3.setState({\n\t value: _this3._parse(value),\n\t stringValue: value\n\t });\n\t };\n\n\t if (!this._inputFocus && IS_BROWSER && document.activeElement === this.refsInput) {\n\t this._inputFocus = true;\n\t this.refsInput.focus();\n\t this._invokeEventCallback(\"onFocus\", {\n\t target: this.refsInput,\n\t type: \"focus\"\n\t });\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'saveSelection',\n\t value: function saveSelection() {\n\t this.state.selectionStart = this.refsInput.selectionStart;\n\t this.state.selectionEnd = this.refsInput.selectionEnd;\n\t }\n\t }, {\n\t key: 'checkValidity',\n\t value: function checkValidity() {\n\t var valid = void 0,\n\t validationError = \"\";\n\n\t var supportsValidation = !!this.refsInput.checkValidity;\n\n\t var noValidate = !!(this.props.noValidate && this.props.noValidate != \"false\");\n\n\t this.refsInput.noValidate = noValidate;\n\n\t valid = noValidate || !supportsValidation;\n\n\t if (valid) {\n\t validationError = \"\";\n\t } else {\n\t if (this.refsInput.pattern === \"\") {\n\t this.refsInput.pattern = this.props.required ? \".+\" : \".*\";\n\t }\n\n\t if (supportsValidation) {\n\t this.refsInput.checkValidity();\n\t valid = this.refsInput.validity.valid;\n\n\t if (!valid) {\n\t validationError = this.refsInput.validationMessage;\n\t }\n\t }\n\n\t if (valid && supportsValidation && this.props.maxLength) {\n\t if (this.refsInput.value.length > this.props.maxLength) {\n\t validationError = \"This value is too long\";\n\t }\n\t }\n\t }\n\n\t validationError = validationError || (valid ? \"\" : this.refsInput.validationMessage || \"Unknown Error\");\n\n\t var validStateChanged = this._valid !== validationError;\n\t this._valid = validationError;\n\t if (validationError) {\n\t addClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onInvalid\", validationError, this.state.value, this.refsInput.value);\n\t }\n\t } else {\n\t removeClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onValid\", this.state.value, this.refsInput.value);\n\t }\n\t }\n\t }\n\t }, {\n\t key: '_toNumber',\n\t value: function _toNumber(x) {\n\t var n = parseFloat(x);\n\t if (isNaN(n) || !isFinite(n)) {\n\t n = 0;\n\t }\n\n\t if (this._isStrict) {\n\t var precision = access(this.props, \"precision\", null, this);\n\t var q = Math.pow(10, precision === null ? 10 : precision);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t n = Math.min(Math.max(n, _min), _max);\n\t n = Math.round(n * q) / q;\n\t }\n\n\t return n;\n\t }\n\t }, {\n\t key: '_parse',\n\t value: function _parse(x) {\n\t x = String(x);\n\t if (typeof this.props.parse == 'function') {\n\t return parseFloat(this.props.parse(x));\n\t }\n\t return parseFloat(x);\n\t }\n\t }, {\n\t key: '_format',\n\t value: function _format(n) {\n\t var _n = this._toNumber(n);\n\t var precision = access(this.props, \"precision\", null, this);\n\t if (precision !== null) {\n\t _n = n.toFixed(precision);\n\t }\n\n\t _n += \"\";\n\n\t if (this.props.format) {\n\t return this.props.format(_n);\n\t }\n\n\t return _n;\n\t }\n\t }, {\n\t key: '_step',\n\t value: function _step(n, callback) {\n\t var _isStrict = this._isStrict;\n\t this._isStrict = true;\n\n\t var _step = +access(this.props, \"step\", NumericInput.defaultProps.step, this, n > 0 ? NumericInput.DIRECTION_UP : NumericInput.DIRECTION_DOWN);\n\n\t var _n = this._toNumber((this.state.value || 0) + _step * n);\n\n\t if (this.props.snap) {\n\t _n = Math.round(_n / _step) * _step;\n\t }\n\n\t this._isStrict = _isStrict;\n\n\t if (_n !== this.state.value) {\n\t this.setState({ value: _n, stringValue: _n + \"\" }, callback);\n\t return true;\n\t }\n\n\t return false;\n\t }\n\t }, {\n\t key: '_onKeyDown',\n\t value: function _onKeyDown() {\n\t for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n\t args[_key3] = arguments[_key3];\n\t }\n\n\t args[0].persist();\n\t this._invokeEventCallback.apply(this, [\"onKeyDown\"].concat(args));\n\t var e = args[0];\n\t if (!e.isDefaultPrevented()) {\n\t if (e.keyCode === KEYCODE_UP) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? 0.1 : e.shiftKey ? 10 : 1);\n\t } else if (e.keyCode === KEYCODE_DOWN) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? -0.1 : e.shiftKey ? -10 : -1);\n\t } else {\n\t var _value = this.refsInput.value,\n\t length = _value.length;\n\t if (e.keyCode === 8) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd > 0 && _value.length && _value.charAt(this.refsInput.selectionEnd - 1) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd - 1;\n\t }\n\t } else if (e.keyCode === 46) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd < length + 1 && _value.length && _value.charAt(this.refsInput.selectionEnd) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd + 1;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'stop',\n\t value: function stop() {\n\t if (this._timer) {\n\t clearTimeout(this._timer);\n\t }\n\t }\n\t }, {\n\t key: 'increase',\n\t value: function increase() {\n\t var _this4 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(1, callback);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t if (isNaN(this.state.value) || +this.state.value < _max) {\n\t this._timer = setTimeout(function () {\n\t _this4.increase(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'decrease',\n\t value: function decrease() {\n\t var _this5 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(-1, callback);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t if (isNaN(this.state.value) || +this.state.value > _min) {\n\t this._timer = setTimeout(function () {\n\t _this5.decrease(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'onMouseDown',\n\t value: function onMouseDown(dir, callback) {\n\t if (dir == 'down') {\n\t this.decrease(false, callback);\n\t } else if (dir == 'up') {\n\t this.increase(false, callback);\n\t }\n\t }\n\t }, {\n\t key: 'onTouchStart',\n\t value: function onTouchStart(dir, e) {\n\t e.preventDefault();\n\t if (dir == 'down') {\n\t this.decrease();\n\t } else if (dir == 'up') {\n\t this.increase();\n\t }\n\t }\n\t }, {\n\t key: 'onTouchEnd',\n\t value: function onTouchEnd(e) {\n\t e.preventDefault();\n\t this.stop();\n\t }\n\t }, {\n\t key: '_invokeEventCallback',\n\t value: function _invokeEventCallback(callbackName) {\n\t if (typeof this.props[callbackName] == \"function\") {\n\t var _props$callbackName;\n\n\t for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n\t args[_key4 - 1] = arguments[_key4];\n\t }\n\n\t (_props$callbackName = this.props[callbackName]).call.apply(_props$callbackName, [null].concat(args));\n\t }\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _this6 = this;\n\n\t var props = this.props;\n\t var state = this.state;\n\t var css = {};\n\n\t var _props = this.props,\n\t step = _props.step,\n\t min = _props.min,\n\t max = _props.max,\n\t precision = _props.precision,\n\t parse = _props.parse,\n\t format = _props.format,\n\t mobile = _props.mobile,\n\t snap = _props.snap,\n\t componentClass = _props.componentClass,\n\t value = _props.value,\n\t type = _props.type,\n\t style = _props.style,\n\t defaultValue = _props.defaultValue,\n\t onInvalid = _props.onInvalid,\n\t onValid = _props.onValid,\n\t strict = _props.strict,\n\t noStyle = _props.noStyle,\n\t rest = _objectWithoutProperties(_props, ['step', 'min', 'max', 'precision', 'parse', 'format', 'mobile', 'snap', 'componentClass', 'value', 'type', 'style', 'defaultValue', 'onInvalid', 'onValid', 'strict', 'noStyle']);\n\n\t noStyle = noStyle || style === false;\n\n\t for (var x in NumericInput.style) {\n\t css[x] = _extends({}, NumericInput.style[x], style ? style[x] || {} : {});\n\t }\n\n\t var hasFormControl = props.className && /\\bform-control\\b/.test(props.className);\n\n\t if (mobile == 'auto') {\n\t mobile = IS_BROWSER && 'ontouchstart' in document;\n\t }\n\n\t if (typeof mobile == \"function\") {\n\t mobile = mobile.call(this);\n\t }\n\t mobile = !!mobile;\n\n\t var attrs = {\n\t wrap: {\n\t style: noStyle ? null : css.wrap,\n\t className: 'react-numeric-input',\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsWrapper = e;\n\t }\n\t },\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined\n\t },\n\t input: _extends({\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsInput = e;\n\t }\n\t },\n\t type: 'text',\n\t style: noStyle ? null : _extends({}, css.input, !hasFormControl ? css['input:not(.form-control)'] : {}, this._inputFocus ? css['input:focus'] : {})\n\t }, rest),\n\t btnUp: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnUp, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnUpActive ? css['btn:active'] : state.btnUpHover ? css['btn:hover'] : {})\n\t },\n\t btnDown: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnDown, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnDownActive ? css['btn:active'] : state.btnDownHover ? css['btn:hover'] : {})\n\t }\n\t };\n\n\t var stringValue = String(state.stringValue || (state.value || state.value === 0 ? state.value : \"\") || \"\");\n\n\t var loose = !this._isStrict && (this._inputFocus || !this._isMounted);\n\n\t if (loose && RE_INCOMPLETE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (loose && stringValue && !RE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (state.value || state.value === 0) {\n\t attrs.input.value = this._format(state.value);\n\t } else {\n\t attrs.input.value = \"\";\n\t }\n\n\t if (hasFormControl && !noStyle) {\n\t _extends(attrs.wrap.style, css['wrap.hasFormControl']);\n\t }\n\n\t if (mobile && !noStyle) {\n\t _extends(attrs.input.style, css['input.mobile']);\n\t _extends(attrs.btnUp.style, css['btnUp.mobile']);\n\t _extends(attrs.btnDown.style, css['btnDown.mobile']);\n\t }\n\n\t if (!props.disabled && !props.readOnly) {\n\t _extends(attrs.wrap, {\n\t onMouseUp: this.stop,\n\t onMouseLeave: this.stop\n\t });\n\n\t _extends(attrs.btnUp, {\n\t onTouchStart: this.onTouchStart.bind(this, 'up'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnUpHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnUpHover: false,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n\t args[_key5] = arguments[_key5];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('up');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.btnDown, {\n\t onTouchStart: this.onTouchStart.bind(this, 'down'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnDownHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnDownHover: false,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n\t args[_key6] = arguments[_key6];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('down');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.input, {\n\t onChange: function onChange(e) {\n\t var original = e.target.value;\n\t var val = _this6._parse(original);\n\t if (isNaN(val)) {\n\t val = null;\n\t }\n\t _this6.setState({\n\t value: _this6._isStrict ? _this6._toNumber(val) : val,\n\t stringValue: original\n\t });\n\t },\n\t onKeyDown: this._onKeyDown.bind(this),\n\t onInput: function onInput() {\n\t for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n\t args[_key7] = arguments[_key7];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onInput\"].concat(args));\n\t },\n\t onSelect: function onSelect() {\n\t for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n\t args[_key8] = arguments[_key8];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onSelect\"].concat(args));\n\t },\n\t onFocus: function onFocus() {\n\t for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n\t args[_key9] = arguments[_key9];\n\t }\n\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val,\n\t stringValue: val || val === 0 ? val + \"\" : \"\"\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t });\n\t },\n\t onBlur: function onBlur() {\n\t for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n\t args[_key10] = arguments[_key10];\n\t }\n\n\t var _isStrict = _this6._isStrict;\n\t _this6._isStrict = true;\n\t args[0].persist();\n\t _this6._inputFocus = false;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onBlur\"].concat(args));\n\t _this6._isStrict = _isStrict;\n\t });\n\t }\n\t });\n\t } else {\n\t if (!noStyle && props.disabled) {\n\t _extends(attrs.input.style, css['input:disabled']);\n\t }\n\t }\n\n\t var InputTag = componentClass || 'input';\n\n\t if (mobile) {\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus }),\n\t _react2.default.createElement('i', { style: noStyle ? null : css.plus })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus })\n\t )\n\t );\n\t }\n\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowUp })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowDown })\n\t )\n\t );\n\t }\n\t }]);\n\n\t return NumericInput;\n\t}(_react.Component);\n\n\tNumericInput.propTypes = {\n\t step: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t min: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t max: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t precision: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t maxLength: _propTypes2.default.number,\n\t parse: _propTypes2.default.func,\n\t format: _propTypes2.default.func,\n\t className: _propTypes2.default.string,\n\t disabled: _propTypes2.default.bool,\n\t readOnly: _propTypes2.default.bool,\n\t required: _propTypes2.default.bool,\n\t snap: _propTypes2.default.bool,\n\t noValidate: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n\t style: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),\n\t noStyle: _propTypes2.default.bool,\n\t type: _propTypes2.default.string,\n\t pattern: _propTypes2.default.string,\n\t onFocus: _propTypes2.default.func,\n\t onBlur: _propTypes2.default.func,\n\t onKeyDown: _propTypes2.default.func,\n\t onChange: _propTypes2.default.func,\n\t onInvalid: _propTypes2.default.func,\n\t onValid: _propTypes2.default.func,\n\t onInput: _propTypes2.default.func,\n\t onSelect: _propTypes2.default.func,\n\t size: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t strict: _propTypes2.default.bool,\n\t componentClass: _propTypes2.default.string,\n\t mobile: function mobile(props, propName) {\n\t var prop = props[propName];\n\t if (prop !== true && prop !== false && prop !== 'auto' && typeof prop != 'function') {\n\t return new Error('The \"mobile\" prop must be true, false, \"auto\" or a function');\n\t }\n\t }\n\t};\n\tNumericInput.defaultProps = {\n\t step: 1,\n\t min: Number.MIN_SAFE_INTEGER || -9007199254740991,\n\t max: Number.MAX_SAFE_INTEGER || 9007199254740991,\n\t precision: null,\n\t parse: null,\n\t format: null,\n\t mobile: 'auto',\n\t strict: false,\n\t componentClass: \"input\",\n\t style: {}\n\t};\n\tNumericInput.style = {\n\t wrap: {\n\t position: 'relative',\n\t display: 'inline-block'\n\t },\n\n\t 'wrap.hasFormControl': {\n\t display: 'block'\n\t },\n\n\t arrowUp: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0 0.6ex 0.6ex 0.6ex',\n\t borderColor: 'transparent transparent rgba(0, 0, 0, 0.7)',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t arrowDown: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0.6ex 0.6ex 0 0.6ex',\n\t borderColor: 'rgba(0, 0, 0, 0.7) transparent transparent',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t plus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 2,\n\t height: 10,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-5px 0 0 -1px'\n\t },\n\n\t minus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 10,\n\t height: 2,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-1px 0 0 -5px'\n\t },\n\n\t btn: {\n\t position: 'absolute',\n\t right: 2,\n\t width: '2.26ex',\n\t borderColor: 'rgba(0,0,0,.1)',\n\t borderStyle: 'solid',\n\t textAlign: 'center',\n\t cursor: 'default',\n\t transition: 'all 0.1s',\n\t background: 'rgba(0,0,0,.1)',\n\t boxShadow: '-1px -1px 3px rgba(0,0,0,.1) inset,' + '1px 1px 3px rgba(255,255,255,.7) inset'\n\t },\n\n\t btnUp: {\n\t top: 2,\n\t bottom: '50%',\n\t borderRadius: '2px 2px 0 0',\n\t borderWidth: '1px 1px 0 1px'\n\t },\n\n\t 'btnUp.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t btnDown: {\n\t top: '50%',\n\t bottom: 2,\n\t borderRadius: '0 0 2px 2px',\n\t borderWidth: '0 1px 1px 1px'\n\t },\n\n\t 'btnDown.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t left: 2,\n\t top: 2,\n\t right: 'auto',\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t 'btn:hover': {\n\t background: 'rgba(0,0,0,.2)'\n\t },\n\n\t 'btn:active': {\n\t background: 'rgba(0,0,0,.3)',\n\t boxShadow: '0 1px 3px rgba(0,0,0,.2) inset,' + '-1px -1px 4px rgba(255,255,255,.5) inset'\n\t },\n\n\t 'btn:disabled': {\n\t opacity: 0.5,\n\t boxShadow: 'none',\n\t cursor: 'not-allowed'\n\t },\n\n\t input: {\n\t paddingRight: '3ex',\n\t boxSizing: 'border-box',\n\t fontSize: 'inherit'\n\t },\n\n\t 'input:not(.form-control)': {\n\t border: '1px solid #ccc',\n\t borderRadius: 2,\n\t paddingLeft: 4,\n\t display: 'block',\n\t WebkitAppearance: 'none',\n\t lineHeight: 'normal'\n\t },\n\n\t 'input.mobile': {\n\t paddingLeft: ' 3.4ex',\n\t paddingRight: '3.4ex',\n\t textAlign: 'center'\n\t },\n\n\t 'input:focus': {},\n\n\t 'input:disabled': {\n\t color: 'rgba(0, 0, 0, 0.3)',\n\t textShadow: '0 1px 0 rgba(255, 255, 255, 0.8)'\n\t }\n\t};\n\tNumericInput.SPEED = 50;\n\tNumericInput.DELAY = 500;\n\tNumericInput.DIRECTION_UP = \"up\";\n\tNumericInput.DIRECTION_DOWN = \"down\";\n\n\n\tmodule.exports = NumericInput;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"react\");\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"prop-types\");\n\n/***/ })\n/******/ ]);","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","/**\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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (typeof obj === 'undefined') {\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from './_curry1';\nimport _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _isArrayLike from './_isArrayLike';\nimport _xwrap from './_xwrap';\nimport bind from '../bind';\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from './_has';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n};\n\nexport default _isArguments;","import _curry1 from './internal/_curry1';\nimport _has from './internal/_has';\nimport _isArguments from './internal/_isArguments';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar _keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n} : function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n};\nvar keys = /*#__PURE__*/_curry1(_keys);\nexport default keys;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","import _objectAssign from './_objectAssign';\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _curry1 from './internal/_curry1';\nimport _of from './internal/_of';\n\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\nvar of = /*#__PURE__*/_curry1(_of);\nexport default of;","import _curry2 from './internal/_curry2';\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\nvar omit = /*#__PURE__*/_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nexport default omit;","import _cloneRegExp from './internal/_cloneRegExp';\nimport _curry2 from './internal/_curry2';\nimport _isRegExp from './internal/_isRegExp';\nimport toString from './toString';\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\nvar test = /*#__PURE__*/_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n return _cloneRegExp(pattern).test(str);\n});\nexport default test;","import _curry1 from './internal/_curry1';\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\nvar _trim = !hasProtoTrim || /*#__PURE__*/ws.trim() || ! /*#__PURE__*/zeroWidth.trim() ? function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n} : function trim(str) {\n return str.trim();\n};\nvar trim = /*#__PURE__*/_curry1(_trim);\nexport default trim;","export { default as F } from './F';\nexport { default as T } from './T';\nexport { default as __ } from './__';\nexport { default as add } from './add';\nexport { default as addIndex } from './addIndex';\nexport { default as adjust } from './adjust';\nexport { default as all } from './all';\nexport { default as allPass } from './allPass';\nexport { default as always } from './always';\nexport { default as and } from './and';\nexport { default as any } from './any';\nexport { default as anyPass } from './anyPass';\nexport { default as ap } from './ap';\nexport { default as aperture } from './aperture';\nexport { default as append } from './append';\nexport { default as apply } from './apply';\nexport { default as applySpec } from './applySpec';\nexport { default as applyTo } from './applyTo';\nexport { default as ascend } from './ascend';\nexport { default as assoc } from './assoc';\nexport { default as assocPath } from './assocPath';\nexport { default as binary } from './binary';\nexport { default as bind } from './bind';\nexport { default as both } from './both';\nexport { default as call } from './call';\nexport { default as chain } from './chain';\nexport { default as clamp } from './clamp';\nexport { default as clone } from './clone';\nexport { default as comparator } from './comparator';\nexport { default as complement } from './complement';\nexport { default as compose } from './compose';\nexport { default as composeK } from './composeK';\nexport { default as composeP } from './composeP';\nexport { default as concat } from './concat';\nexport { default as cond } from './cond';\nexport { default as construct } from './construct';\nexport { default as constructN } from './constructN';\nexport { default as contains } from './contains';\nexport { default as converge } from './converge';\nexport { default as countBy } from './countBy';\nexport { default as curry } from './curry';\nexport { default as curryN } from './curryN';\nexport { default as dec } from './dec';\nexport { default as defaultTo } from './defaultTo';\nexport { default as descend } from './descend';\nexport { default as difference } from './difference';\nexport { default as differenceWith } from './differenceWith';\nexport { default as dissoc } from './dissoc';\nexport { default as dissocPath } from './dissocPath';\nexport { default as divide } from './divide';\nexport { default as drop } from './drop';\nexport { default as dropLast } from './dropLast';\nexport { default as dropLastWhile } from './dropLastWhile';\nexport { default as dropRepeats } from './dropRepeats';\nexport { default as dropRepeatsWith } from './dropRepeatsWith';\nexport { default as dropWhile } from './dropWhile';\nexport { default as either } from './either';\nexport { default as empty } from './empty';\nexport { default as endsWith } from './endsWith';\nexport { default as eqBy } from './eqBy';\nexport { default as eqProps } from './eqProps';\nexport { default as equals } from './equals';\nexport { default as evolve } from './evolve';\nexport { default as filter } from './filter';\nexport { default as find } from './find';\nexport { default as findIndex } from './findIndex';\nexport { default as findLast } from './findLast';\nexport { default as findLastIndex } from './findLastIndex';\nexport { default as flatten } from './flatten';\nexport { default as flip } from './flip';\nexport { default as forEach } from './forEach';\nexport { default as forEachObjIndexed } from './forEachObjIndexed';\nexport { default as fromPairs } from './fromPairs';\nexport { default as groupBy } from './groupBy';\nexport { default as groupWith } from './groupWith';\nexport { default as gt } from './gt';\nexport { default as gte } from './gte';\nexport { default as has } from './has';\nexport { default as hasIn } from './hasIn';\nexport { default as head } from './head';\nexport { default as identical } from './identical';\nexport { default as identity } from './identity';\nexport { default as ifElse } from './ifElse';\nexport { default as inc } from './inc';\nexport { default as indexBy } from './indexBy';\nexport { default as indexOf } from './indexOf';\nexport { default as init } from './init';\nexport { default as innerJoin } from './innerJoin';\nexport { default as insert } from './insert';\nexport { default as insertAll } from './insertAll';\nexport { default as intersection } from './intersection';\nexport { default as intersperse } from './intersperse';\nexport { default as into } from './into';\nexport { default as invert } from './invert';\nexport { default as invertObj } from './invertObj';\nexport { default as invoker } from './invoker';\nexport { default as is } from './is';\nexport { default as isEmpty } from './isEmpty';\nexport { default as isNil } from './isNil';\nexport { default as join } from './join';\nexport { default as juxt } from './juxt';\nexport { default as keys } from './keys';\nexport { default as keysIn } from './keysIn';\nexport { default as last } from './last';\nexport { default as lastIndexOf } from './lastIndexOf';\nexport { default as length } from './length';\nexport { default as lens } from './lens';\nexport { default as lensIndex } from './lensIndex';\nexport { default as lensPath } from './lensPath';\nexport { default as lensProp } from './lensProp';\nexport { default as lift } from './lift';\nexport { default as liftN } from './liftN';\nexport { default as lt } from './lt';\nexport { default as lte } from './lte';\nexport { default as map } from './map';\nexport { default as mapAccum } from './mapAccum';\nexport { default as mapAccumRight } from './mapAccumRight';\nexport { default as mapObjIndexed } from './mapObjIndexed';\nexport { default as match } from './match';\nexport { default as mathMod } from './mathMod';\nexport { default as max } from './max';\nexport { default as maxBy } from './maxBy';\nexport { default as mean } from './mean';\nexport { default as median } from './median';\nexport { default as memoize } from './memoize';\nexport { default as memoizeWith } from './memoizeWith';\nexport { default as merge } from './merge';\nexport { default as mergeAll } from './mergeAll';\nexport { default as mergeDeepLeft } from './mergeDeepLeft';\nexport { default as mergeDeepRight } from './mergeDeepRight';\nexport { default as mergeDeepWith } from './mergeDeepWith';\nexport { default as mergeDeepWithKey } from './mergeDeepWithKey';\nexport { default as mergeWith } from './mergeWith';\nexport { default as mergeWithKey } from './mergeWithKey';\nexport { default as min } from './min';\nexport { default as minBy } from './minBy';\nexport { default as modulo } from './modulo';\nexport { default as multiply } from './multiply';\nexport { default as nAry } from './nAry';\nexport { default as negate } from './negate';\nexport { default as none } from './none';\nexport { default as not } from './not';\nexport { default as nth } from './nth';\nexport { default as nthArg } from './nthArg';\nexport { default as o } from './o';\nexport { default as objOf } from './objOf';\nexport { default as of } from './of';\nexport { default as omit } from './omit';\nexport { default as once } from './once';\nexport { default as or } from './or';\nexport { default as over } from './over';\nexport { default as pair } from './pair';\nexport { default as partial } from './partial';\nexport { default as partialRight } from './partialRight';\nexport { default as partition } from './partition';\nexport { default as path } from './path';\nexport { default as pathEq } from './pathEq';\nexport { default as pathOr } from './pathOr';\nexport { default as pathSatisfies } from './pathSatisfies';\nexport { default as pick } from './pick';\nexport { default as pickAll } from './pickAll';\nexport { default as pickBy } from './pickBy';\nexport { default as pipe } from './pipe';\nexport { default as pipeK } from './pipeK';\nexport { default as pipeP } from './pipeP';\nexport { default as pluck } from './pluck';\nexport { default as prepend } from './prepend';\nexport { default as product } from './product';\nexport { default as project } from './project';\nexport { default as prop } from './prop';\nexport { default as propEq } from './propEq';\nexport { default as propIs } from './propIs';\nexport { default as propOr } from './propOr';\nexport { default as propSatisfies } from './propSatisfies';\nexport { default as props } from './props';\nexport { default as range } from './range';\nexport { default as reduce } from './reduce';\nexport { default as reduceBy } from './reduceBy';\nexport { default as reduceRight } from './reduceRight';\nexport { default as reduceWhile } from './reduceWhile';\nexport { default as reduced } from './reduced';\nexport { default as reject } from './reject';\nexport { default as remove } from './remove';\nexport { default as repeat } from './repeat';\nexport { default as replace } from './replace';\nexport { default as reverse } from './reverse';\nexport { default as scan } from './scan';\nexport { default as sequence } from './sequence';\nexport { default as set } from './set';\nexport { default as slice } from './slice';\nexport { default as sort } from './sort';\nexport { default as sortBy } from './sortBy';\nexport { default as sortWith } from './sortWith';\nexport { default as split } from './split';\nexport { default as splitAt } from './splitAt';\nexport { default as splitEvery } from './splitEvery';\nexport { default as splitWhen } from './splitWhen';\nexport { default as startsWith } from './startsWith';\nexport { default as subtract } from './subtract';\nexport { default as sum } from './sum';\nexport { default as symmetricDifference } from './symmetricDifference';\nexport { default as symmetricDifferenceWith } from './symmetricDifferenceWith';\nexport { default as tail } from './tail';\nexport { default as take } from './take';\nexport { default as takeLast } from './takeLast';\nexport { default as takeLastWhile } from './takeLastWhile';\nexport { default as takeWhile } from './takeWhile';\nexport { default as tap } from './tap';\nexport { default as test } from './test';\nexport { default as times } from './times';\nexport { default as toLower } from './toLower';\nexport { default as toPairs } from './toPairs';\nexport { default as toPairsIn } from './toPairsIn';\nexport { default as toString } from './toString';\nexport { default as toUpper } from './toUpper';\nexport { default as transduce } from './transduce';\nexport { default as transpose } from './transpose';\nexport { default as traverse } from './traverse';\nexport { default as trim } from './trim';\nexport { default as tryCatch } from './tryCatch';\nexport { default as type } from './type';\nexport { default as unapply } from './unapply';\nexport { default as unary } from './unary';\nexport { default as uncurryN } from './uncurryN';\nexport { default as unfold } from './unfold';\nexport { default as union } from './union';\nexport { default as unionWith } from './unionWith';\nexport { default as uniq } from './uniq';\nexport { default as uniqBy } from './uniqBy';\nexport { default as uniqWith } from './uniqWith';\nexport { default as unless } from './unless';\nexport { default as unnest } from './unnest';\nexport { default as until } from './until';\nexport { default as update } from './update';\nexport { default as useWith } from './useWith';\nexport { default as values } from './values';\nexport { default as valuesIn } from './valuesIn';\nexport { default as view } from './view';\nexport { default as when } from './when';\nexport { default as where } from './where';\nexport { default as whereEq } from './whereEq';\nexport { default as without } from './without';\nexport { default as xprod } from './xprod';\nexport { default as zip } from './zip';\nexport { default as zipObj } from './zipObj';\nexport { default as zipWith } from './zipWith';","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","module.exports = {};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","module.exports = true;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","exports.f = {}.propertyIsEnumerable;\n","import styled, { css } from 'styled-components';\n\nexport default styled.label`\n display: block;\n font-size: 14px;\n ${({ position }) =>\n position === 'top'\n ? css`\n margin-bottom: 8px;\n `\n : css`\n margin-top: 8px;\n `}\n ${props =>\n css`\n ${props.css}\n `}\n`;\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _getPrototypeOf = require(\"../core-js/object/get-prototype-of\");\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _getOwnPropertyDescriptor = require(\"../core-js/object/get-own-property-descriptor\");\n\nvar _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = (0, _getOwnPropertyDescriptor2.default)(object, property);\n\n if (desc === undefined) {\n var parent = (0, _getPrototypeOf2.default)(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};","/**\n * CSS conic-gradient() polyfill\n * By Lea Verou — http://lea.verou.me\n * MIT license\n */\n\n(function(){\n\nvar π = Math.PI;\nvar τ = 2 * π;\nvar ε = .00001;\nvar deg = π/180;\n\nvar dummy = document.createElement(\"div\");\ndocument.head.appendChild(dummy);\n\nvar _ = self.ConicGradient = function(o) {\n\tvar me = this;\n\t_.all.push(this);\n\n\to = o || {};\n\n\tthis.canvas = document.createElement(\"canvas\");\n\tthis.context = this.canvas.getContext(\"2d\");\n\n\tthis.repeating = !!o.repeating;\n\n\tthis.size = o.size || Math.max(innerWidth, innerHeight);\n\n\tthis.canvas.width = this.canvas.height = this.size;\n\n\tvar stops = o.stops;\n\n\tthis.stops = (stops || \"\").split(/\\s*,(?![^(]*\\))\\s*/); // commas that are not followed by a ) without a ( first\n\n\tthis.from = 0;\n\n\tfor (var i=0; i 0) {\n\t\tvar first = this.stops[0].clone();\n\t\tfirst.pos = 0;\n\t\tthis.stops.unshift(first);\n\t}\n\n\t// Add dummy last stop or set first stop’s position to 100% if it doesn’t have one\n\tif (this.stops[this.stops.length - 1].pos === undefined) {\n\t\tthis.stops[this.stops.length - 1].pos = 1;\n\t}\n\telse if (!this.repeating && this.stops[this.stops.length - 1].pos < 1) {\n\t\tvar last = this.stops[this.stops.length - 1].clone();\n\t\tlast.pos = 1;\n\t\tthis.stops.push(last);\n\t}\n\n\tthis.stops.forEach(function(stop, i){\n\t\tif (stop.pos === undefined) {\n\t\t\t// Evenly space color stops with no position\n\t\t\tfor (var j=i+1; this[j]; j++) {\n\t\t\t\tif (this[j].pos !== undefined) {\n\t\t\t\t\tstop.pos = this[i-1].pos + (this[j].pos - this[i-1].pos)/(j-i+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (i > 0) {\n\t\t\t// Normalize color stops whose position is smaller than the position of the stop before them\n\t\t\tstop.pos = Math.max(stop.pos, this[i-1].pos);\n\t\t}\n\t}, this.stops);\n\n\tif (this.repeating) {\n\t\t// Repeat color stops until >= 1\n\t\tvar stops = this.stops.slice();\n\t\tvar lastStop = stops[stops.length-1];\n\t\tvar difference = lastStop.pos - stops[0].pos;\n\n\t\tfor (var i=0; this.stops[this.stops.length-1].pos < 1 && i<10000; i++) {\n\t\t\tfor (var j=0; j' +\n\t\t\t'' +\n\t\t\t'';\n\t},\n\n\tget png() {\n\t\treturn this.canvas.toDataURL();\n\t},\n\n\tget r() {\n\t\treturn Math.sqrt(2) * this.size / 2;\n\t},\n\n\t// Paint the conical gradient on the canvas\n\t// Algorithm inspired from http://jsdo.it/akm2/yr9B\n\tpaint: function() {\n\t\tvar c = this.context;\n\n\t\tvar radius = this.r;\n\t\tvar x = this.size / 2;\n\n\t\tvar stopIndex = 0; // The index of the current color\n\t\tvar stop = this.stops[stopIndex], prevStop;\n\n\t\tvar diff, t;\n\n\t\t// Transform coordinate system so that angles start from the top left, like in CSS\n\t\tc.translate(this.size/2, this.size/2);\n\t\tc.rotate(-90*deg);\n\t\tc.rotate(this.from*deg);\n\t\tc.translate(-this.size/2, -this.size/2);\n\n\t\tfor (var i = 0; i < 360;) {\n\t\t\tif (i/360 + ε >= stop.pos) {\n\t\t\t\t// Switch color stop\n\t\t\t\tdo {\n\t\t\t\t\tprevStop = stop;\n\n\t\t\t\t\tstopIndex++;\n\t\t\t\t\tstop = this.stops[stopIndex];\n\t\t\t\t} while(stop && stop != prevStop && stop.pos === prevStop.pos);\n\n\t\t\t\tif (!stop) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tvar sameColor = prevStop.color + \"\" === stop.color + \"\" && prevStop != stop;\n\n\t\t\t\tdiff = prevStop.color.map(function(c, i){\n\t\t\t\t\treturn stop.color[i] - c;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tt = (i/360 - prevStop.pos) / (stop.pos - prevStop.pos);\n\n\t\t\tvar interpolated = sameColor? stop.color : diff.map(function(d,i){\n\t\t\t\tvar ret = d * t + prevStop.color[i];\n\n\t\t\t\treturn i < 3? ret & 255 : ret;\n\t\t\t});\n\n\t\t\t// Draw a series of arcs, 1deg each\n\t\t\tc.fillStyle = 'rgba(' + interpolated.join(\",\") + ')';\n\t\t\tc.beginPath();\n\t\t\tc.moveTo(x, x);\n\n\t\t\tif (sameColor) {\n\t\t\t\tvar θ = 360 * (stop.pos - prevStop.pos);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar θ = .5;\n\t\t\t}\n\n\t\t\tvar beginArg = i*deg;\n\t\t\tbeginArg = Math.min(360*deg, beginArg);\n\n\t\t\t// .02: To prevent empty blank line and corresponding moire\n\t\t\t// only non-alpha colors are cared now\n\t\t\tvar endArg = beginArg + θ*deg;\n\t\t\tendArg = Math.min(360*deg, endArg + .02);\n\n\t\t\tc.arc(x, x, radius, beginArg, endArg);\n\n\t\t\tc.closePath();\n\t\t\tc.fill();\n\n\t\t\ti += θ;\n\t\t}\n\t}\n};\n\n_.ColorStop = function(gradient, stop) {\n\tthis.gradient = gradient;\n\n\tif (stop) {\n\t\tvar parts = stop.match(/^(.+?)(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?\\s*$/);\n\n\t\tthis.color = _.ColorStop.colorToRGBA(parts[1]);\n\n\t\tif (parts[2]) {\n\t\t\tvar unit = parts[3];\n\n\t\t\tif (unit == \"%\" || parts[2] === \"0\" && !unit) {\n\t\t\t\tthis.pos = parts[2]/100;\n\t\t\t}\n\t\t\telse if (unit == \"turn\") {\n\t\t\t\tthis.pos = +parts[2];\n\t\t\t}\n\t\t\telse if (unit == \"deg\") {\n\t\t\t\tthis.pos = parts[2] / 360;\n\t\t\t}\n\t\t\telse if (unit == \"grad\") {\n\t\t\t\tthis.pos = parts[2] / 400;\n\t\t\t}\n\t\t\telse if (unit == \"rad\") {\n\t\t\t\tthis.pos = parts[2] / τ;\n\t\t\t}\n\t\t}\n\n\t\tif (parts[4]) {\n\t\t\tthis.next = new _.ColorStop(gradient, parts[1] + \" \" + parts[4] + parts[5]);\n\t\t}\n\t}\n}\n\n_.ColorStop.prototype = {\n\tclone: function() {\n\t\tvar ret = new _.ColorStop(this.gradient);\n\t\tret.color = this.color;\n\t\tret.pos = this.pos;\n\n\t\treturn ret;\n\t},\n\n\ttoString: function() {\n\t\treturn \"rgba(\" + this.color.join(\", \") + \") \" + this.pos * 100 + \"%\";\n\t}\n};\n\n_.ColorStop.colorToRGBA = function(color) {\n\tif (!Array.isArray(color) && color.indexOf(\"from\") == -1) {\n\t\tdummy.style.color = color;\n\n\t\tvar rgba = getComputedStyle(dummy).color.match(/rgba?\\(([\\d.]+), ([\\d.]+), ([\\d.]+)(?:, ([\\d.]+))?\\)/);\n\n\t\tif (rgba) {\n\t\t\trgba.shift();\n\t\t\trgba = rgba.map(function(a) { return +a });\n\t\t\trgba[3] = isNaN(rgba[3])? 1 : rgba[3];\n\t\t}\n\n\t\treturn rgba || [0,0,0,0];\n\t}\n\n\treturn color;\n};\n\n})();\n\nif (self.StyleFix) {\n\t// Test if conic gradients are supported first:\n\t(function(){\n\t\tvar dummy = document.createElement(\"p\");\n\t\tdummy.style.backgroundImage = \"conic-gradient(white, black)\";\n\t\tdummy.style.backgroundImage = PrefixFree.prefix + \"conic-gradient(white, black)\";\n\n\t\tif (!dummy.style.backgroundImage) {\n\t\t\t// Not supported, use polyfill\n\t\t\tStyleFix.register(function(css, raw) {\n\t\t\t\tif (css.indexOf(\"conic-gradient\") > -1) {\n\t\t\t\t\tcss = css.replace(/(?:repeating-)?conic-gradient\\(\\s*((?:\\([^()]+\\)|[^;()}])+?)\\)/g, function(gradient, stops) {\n\t\t\t\t\t\treturn new ConicGradient({\n\t\t\t\t\t\t\tstops: stops,\n\t\t\t\t\t\t\trepeating: gradient.indexOf(\"repeating-\") > -1\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn css;\n\t\t\t});\n\t\t}\n\t})();\n}\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","!function(e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(null):\"function\"==typeof define&&define.amd?define(e(null)):window.stylis=e(null)}(function e(a){\"use strict\";var r=/^\\0+/g,c=/[\\0\\r\\f]/g,s=/: */g,t=/zoo|gra/,i=/([,: ])(transform)/g,f=/,+\\s*(?![^(]*[)])/g,n=/ +\\s*(?![^(]*[)])/g,l=/ *[\\0] */g,o=/,\\r+?/g,h=/([\\t\\r\\n ])*\\f?&/g,u=/:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g,d=/\\W+/g,b=/@(k\\w+)\\s*(\\S*)\\s*/,p=/::(place)/g,k=/:(read-only)/g,g=/\\s+(?=[{\\];=:>])/g,A=/([[}=:>])\\s+/g,C=/(\\{[^{]+?);(?=\\})/g,w=/\\s{2,}/g,v=/([^\\(])(:+) */g,m=/[svh]\\w+-[tblr]{2}/,x=/\\(\\s*(.*)\\s*\\)/g,$=/([\\s\\S]*?);/g,y=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\\w-]+)[^]*/,j=/stretch|:\\s*\\w+\\-(?:conte|avail)/,z=/([^-])(image-set\\()/,N=\"-webkit-\",S=\"-moz-\",F=\"-ms-\",W=59,q=125,B=123,D=40,E=41,G=91,H=93,I=10,J=13,K=9,L=64,M=32,P=38,Q=45,R=95,T=42,U=44,V=58,X=39,Y=34,Z=47,_=62,ee=43,ae=126,re=0,ce=12,se=11,te=107,ie=109,fe=115,ne=112,le=111,oe=105,he=99,ue=100,de=112,be=1,pe=1,ke=0,ge=1,Ae=1,Ce=1,we=0,ve=0,me=0,xe=[],$e=[],ye=0,Oe=null,je=-2,ze=-1,Ne=0,Se=1,Fe=2,We=3,qe=0,Be=1,De=\"\",Ee=\"\",Ge=\"\";function He(e,a,s,t,i){for(var f,n,o=0,h=0,u=0,d=0,g=0,A=0,C=0,w=0,m=0,$=0,y=0,O=0,j=0,z=0,R=0,we=0,$e=0,Oe=0,je=0,ze=s.length,Je=ze-1,Re=\"\",Te=\"\",Ue=\"\",Ve=\"\",Xe=\"\",Ye=\"\";R0)Te=Te.replace(c,\"\");if(Te.trim().length>0){switch(C){case M:case K:case W:case J:case I:break;default:Te+=s.charAt(R)}C=W}}if(1===$e)switch(C){case B:case q:case W:case Y:case X:case D:case E:case U:$e=0;case K:case J:case I:case M:break;default:for($e=0,je=R,g=C,R--,C=W;je0)++R,C=g;case B:je=ze}}switch(C){case B:for(g=(Te=Te.trim()).charCodeAt(0),y=1,je=++R;R0)Te=Te.replace(c,\"\");switch(A=Te.charCodeAt(1)){case ue:case ie:case fe:case Q:f=a;break;default:f=xe}if(je=(Ue=He(a,f,Ue,A,i+1)).length,me>0&&0===je)je=Te.length;if(ye>0)if(f=Ie(xe,Te,Oe),n=Pe(We,Ue,f,a,pe,be,je,A,i,t),Te=f.join(\"\"),void 0!==n)if(0===(je=(Ue=n.trim()).length))A=0,Ue=\"\";if(je>0)switch(A){case fe:Te=Te.replace(x,Me);case ue:case ie:case Q:Ue=Te+\"{\"+Ue+\"}\";break;case te:if(Ue=(Te=Te.replace(b,\"$1 $2\"+(Be>0?De:\"\")))+\"{\"+Ue+\"}\",1===Ae||2===Ae&&Le(\"@\"+Ue,3))Ue=\"@\"+N+Ue+\"@\"+Ue;else Ue=\"@\"+Ue;break;default:if(Ue=Te+Ue,t===de)Ve+=Ue,Ue=\"\"}else Ue=\"\";break;default:Ue=He(a,Ie(a,Te,Oe),Ue,t,i+1)}Xe+=Ue,O=0,$e=0,z=0,we=0,Oe=0,j=0,Te=\"\",Ue=\"\",C=s.charCodeAt(++R);break;case q:case W:if((je=(Te=(we>0?Te.replace(c,\"\"):Te).trim()).length)>1){if(0===z)if((g=Te.charCodeAt(0))===Q||g>96&&g<123)je=(Te=Te.replace(\" \",\":\")).length;if(ye>0)if(void 0!==(n=Pe(Se,Te,a,e,pe,be,Ve.length,t,i,t)))if(0===(je=(Te=n.trim()).length))Te=\"\\0\\0\";switch(g=Te.charCodeAt(0),A=Te.charCodeAt(1),g){case re:break;case L:if(A===oe||A===he){Ye+=Te+s.charAt(R);break}default:if(Te.charCodeAt(je-1)===V)break;Ve+=Ke(Te,g,A,Te.charCodeAt(2))}}O=0,$e=0,z=0,we=0,Oe=0,Te=\"\",C=s.charCodeAt(++R)}}switch(C){case J:case I:if(h+d+u+o+ve===0)switch($){case E:case X:case Y:case L:case ae:case _:case T:case ee:case Z:case Q:case V:case U:case W:case B:case q:break;default:if(z>0)$e=1}if(h===Z)h=0;else if(ge+O===0&&t!==te&&Te.length>0)we=1,Te+=\"\\0\";if(ye*qe>0)Pe(Ne,Te,a,e,pe,be,Ve.length,t,i,t);be=1,pe++;break;case W:case q:if(h+d+u+o===0){be++;break}default:switch(be++,Re=s.charAt(R),C){case K:case M:if(d+o+h===0)switch(w){case U:case V:case K:case M:Re=\"\";break;default:if(C!==M)Re=\" \"}break;case re:Re=\"\\\\0\";break;case ce:Re=\"\\\\f\";break;case se:Re=\"\\\\v\";break;case P:if(d+h+o===0&&ge>0)Oe=1,we=1,Re=\"\\f\"+Re;break;case 108:if(d+h+o+ke===0&&z>0)switch(R-z){case 2:if(w===ne&&s.charCodeAt(R-3)===V)ke=w;case 8:if(m===le)ke=m}break;case V:if(d+h+o===0)z=R;break;case U:if(h+u+d+o===0)we=1,Re+=\"\\r\";break;case Y:case X:if(0===h)d=d===C?0:0===d?C:d;break;case G:if(d+h+u===0)o++;break;case H:if(d+h+u===0)o--;break;case E:if(d+h+o===0)u--;break;case D:if(d+h+o===0){if(0===O)switch(2*w+3*m){case 533:break;default:y=0,O=1}u++}break;case L:if(h+u+d+o+z+j===0)j=1;break;case T:case Z:if(d+o+u>0)break;switch(h){case 0:switch(2*C+3*s.charCodeAt(R+1)){case 235:h=Z;break;case 220:je=R,h=T}break;case T:if(C===Z&&w===T&&je+2!==R){if(33===s.charCodeAt(je+2))Ve+=s.substring(je,R+1);Re=\"\",h=0}}}if(0===h){if(ge+d+o+j===0&&t!==te&&C!==W)switch(C){case U:case ae:case _:case ee:case E:case D:if(0===O){switch(w){case K:case M:case I:case J:Re+=\"\\0\";break;default:Re=\"\\0\"+Re+(C===U?\"\":\"\\0\")}we=1}else switch(C){case D:if(z+7===R&&108===w)z=0;O=++y;break;case E:if(0==(O=--y))we=1,Re+=\"\\0\"}break;case K:case M:switch(w){case re:case B:case q:case W:case U:case ce:case K:case M:case I:case J:break;default:if(0===O)we=1,Re+=\"\\0\"}}if(Te+=Re,C!==M&&C!==K)$=C}}m=w,w=C,R++}if(je=Ve.length,me>0)if(0===je&&0===Xe.length&&0===a[0].length==false)if(t!==ie||1===a.length&&(ge>0?Ee:Ge)===a[0])je=a.join(\",\").length+2;if(je>0){if(f=0===ge&&t!==te?function(e){for(var a,r,s=0,t=e.length,i=Array(t);s1)continue;if(u=n.charCodeAt(n.length-1),d=r.charCodeAt(0),a=\"\",0!==o)switch(u){case T:case ae:case _:case ee:case M:case D:break;default:a=\" \"}switch(d){case P:r=a+Ee;case ae:case _:case ee:case M:case E:case D:break;case G:r=a+r+Ee;break;case V:switch(2*r.charCodeAt(1)+3*r.charCodeAt(2)){case 530:if(Ce>0){r=a+r.substring(8,h-1);break}default:if(o<1||f[o-1].length<1)r=a+Ee+r}break;case U:a=\"\";default:if(h>1&&r.indexOf(\":\")>0)r=a+r.replace(v,\"$1\"+Ee+\"$2\");else r=a+r+Ee}n+=r}i[s]=n.replace(c,\"\").trim()}return i}(a):a,ye>0)if(void 0!==(n=Pe(Fe,Ve,f,e,pe,be,je,t,i,t))&&0===(Ve=n).length)return Ye+Ve+Xe;if(Ve=f.join(\",\")+\"{\"+Ve+\"}\",Ae*ke!=0){if(2===Ae&&!Le(Ve,2))ke=0;switch(ke){case le:Ve=Ve.replace(k,\":\"+S+\"$1\")+Ve;break;case ne:Ve=Ve.replace(p,\"::\"+N+\"input-$1\")+Ve.replace(p,\"::\"+S+\"$1\")+Ve.replace(p,\":\"+F+\"input-$1\")+Ve}ke=0}}return Ye+Ve+Xe}function Ie(e,a,r){var c=a.trim().split(o),s=c,t=c.length,i=e.length;switch(i){case 0:case 1:for(var f=0,n=0===i?\"\":e[0]+\" \";f0&&ge>0)return s.replace(u,\"$1\").replace(h,\"$1\"+Ge);break;default:return e.trim()+s.replace(h,\"$1\"+e.trim())}default:if(r*ge>0&&s.indexOf(\"\\f\")>0)return s.replace(h,(e.charCodeAt(0)===V?\"\":\"$1\")+e.trim())}return e+s}function Ke(e,a,r,c){var l,o=0,h=e+\";\",u=2*a+3*r+4*c;if(944===u)return function(e){var a=e.length,r=e.indexOf(\":\",9)+1,c=e.substring(0,r).trim(),s=e.substring(r,a-1).trim();switch(e.charCodeAt(9)*Be){case 0:break;case Q:if(110!==e.charCodeAt(10))break;default:for(var t=s.split((s=\"\",f)),i=0,r=0,a=t.length;iL&&h<90||h>96&&h<123||h===R||h===Q&&l.charCodeAt(1)!==Q))switch(isNaN(parseFloat(l))+(-1!==l.indexOf(\"(\"))){case 1:switch(l){case\"infinite\":case\"alternate\":case\"backwards\":case\"running\":case\"normal\":case\"forwards\":case\"both\":case\"none\":case\"linear\":case\"ease\":case\"ease-in\":case\"ease-out\":case\"ease-in-out\":case\"paused\":case\"reverse\":case\"alternate-reverse\":case\"inherit\":case\"initial\":case\"unset\":case\"step-start\":case\"step-end\":break;default:l+=De}}o[r++]=l}s+=(0===i?\"\":\",\")+o.join(\" \")}}if(s=c+s+\";\",1===Ae||2===Ae&&Le(s,1))return N+s+s;return s}(h);else if(0===Ae||2===Ae&&!Le(h,1))return h;switch(u){case 1015:return 97===h.charCodeAt(10)?N+h+h:h;case 951:return 116===h.charCodeAt(3)?N+h+h:h;case 963:return 110===h.charCodeAt(5)?N+h+h:h;case 1009:if(100!==h.charCodeAt(4))break;case 969:case 942:return N+h+h;case 978:return N+h+S+h+h;case 1019:case 983:return N+h+S+h+F+h+h;case 883:if(h.charCodeAt(8)===Q)return N+h+h;if(h.indexOf(\"image-set(\",11)>0)return h.replace(z,\"$1\"+N+\"$2\")+h;return h;case 932:if(h.charCodeAt(4)===Q)switch(h.charCodeAt(5)){case 103:return N+\"box-\"+h.replace(\"-grow\",\"\")+N+h+F+h.replace(\"grow\",\"positive\")+h;case 115:return N+h+F+h.replace(\"shrink\",\"negative\")+h;case 98:return N+h+F+h.replace(\"basis\",\"preferred-size\")+h}return N+h+F+h+h;case 964:return N+h+F+\"flex-\"+h+h;case 1023:if(99!==h.charCodeAt(8))break;return l=h.substring(h.indexOf(\":\",15)).replace(\"flex-\",\"\").replace(\"space-between\",\"justify\"),N+\"box-pack\"+l+N+h+F+\"flex-pack\"+l+h;case 1005:return t.test(h)?h.replace(s,\":\"+N)+h.replace(s,\":\"+S)+h:h;case 1e3:switch(o=(l=h.substring(13).trim()).indexOf(\"-\")+1,l.charCodeAt(0)+l.charCodeAt(o)){case 226:l=h.replace(m,\"tb\");break;case 232:l=h.replace(m,\"tb-rl\");break;case 220:l=h.replace(m,\"lr\");break;default:return h}return N+h+F+l+h;case 1017:if(-1===h.indexOf(\"sticky\",9))return h;case 975:switch(o=(h=e).length-10,u=(l=(33===h.charCodeAt(o)?h.substring(0,o):h).substring(e.indexOf(\":\",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(l.charCodeAt(8)<111)break;case 115:h=h.replace(l,N+l)+\";\"+h;break;case 207:case 102:h=h.replace(l,N+(u>102?\"inline-\":\"\")+\"box\")+\";\"+h.replace(l,N+l)+\";\"+h.replace(l,F+l+\"box\")+\";\"+h}return h+\";\";case 938:if(h.charCodeAt(5)===Q)switch(h.charCodeAt(6)){case 105:return l=h.replace(\"-items\",\"\"),N+h+N+\"box-\"+l+F+\"flex-\"+l+h;case 115:return N+h+F+\"flex-item-\"+h.replace(y,\"\")+h;default:return N+h+F+\"flex-line-pack\"+h.replace(\"align-content\",\"\").replace(y,\"\")+h}break;case 973:case 989:if(h.charCodeAt(3)!==Q||122===h.charCodeAt(4))break;case 931:case 953:if(true===j.test(e))if(115===(l=e.substring(e.indexOf(\":\")+1)).charCodeAt(0))return Ke(e.replace(\"stretch\",\"fill-available\"),a,r,c).replace(\":fill-available\",\":stretch\");else return h.replace(l,N+l)+h.replace(l,S+l.replace(\"fill-\",\"\"))+h;break;case 962:if(h=N+h+(102===h.charCodeAt(5)?F+h:\"\")+h,r+c===211&&105===h.charCodeAt(13)&&h.indexOf(\"transform\",10)>0)return h.substring(0,h.indexOf(\";\",27)+1).replace(i,\"$1\"+N+\"$2\")+h}return h}function Le(e,a){var r=e.indexOf(1===a?\":\":\"{\"),c=e.substring(0,3!==a?r:10),s=e.substring(r+1,e.length-1);return Oe(2!==a?c:c.replace(O,\"$1\"),s,a)}function Me(e,a){var r=Ke(a,a.charCodeAt(0),a.charCodeAt(1),a.charCodeAt(2));return r!==a+\";\"?r.replace($,\" or ($1)\").substring(4):\"(\"+a+\")\"}function Pe(e,a,r,c,s,t,i,f,n,l){for(var o,h=0,u=a;h0)De=s.replace(d,t===G?\"\":\"-\");if(t=1,1===ge)Ge=s;else Ee=s;var i,f=[Ge];if(ye>0)if(void 0!==(i=Pe(ze,r,f,f,pe,be,0,0,0,0))&&\"string\"==typeof i)r=i;var n=He(xe,f,r,0,0);if(ye>0)if(void 0!==(i=Pe(je,n,f,f,pe,be,n.length,0,0,0))&&\"string\"!=typeof(n=i))t=0;return De=\"\",Ge=\"\",Ee=\"\",ke=0,pe=1,be=1,we*t==0?n:n.replace(c,\"\").replace(g,\"\").replace(A,\"$1\").replace(C,\"$1\").replace(w,\" \")}if(Te.use=function e(a){switch(a){case void 0:case null:ye=$e.length=0;break;default:if(\"function\"==typeof a)$e[ye++]=a;else if(\"object\"==typeof a)for(var r=0,c=a.length;r\n import(/* webpackChunkName: \"colorpicker\" */ '../fragments/ColorPicker.react')\n);\n/**\n * A color picker.\n */\nexport default class ColorPicker extends Component {\n render() {\n return (\n \n \n \n );\n }\n}\n\nColorPicker.defaultProps = {\n size: 225,\n theme: light,\n labelPosition: 'top',\n persisted_props: ['value'],\n persistence_type: 'local'\n};\n\nColorPicker.propTypes = {\n /**\n * The ID used to identify the color picker in Dash callbacks\n */\n id: PropTypes.string,\n\n /**\n * Color value of the picker\n */\n value: PropTypes.shape({\n /**\n * Hex string\n */\n hex: PropTypes.string,\n\n /**\n * RGB/RGBA object\n */\n rbg: PropTypes.shape({\n r: PropTypes.number,\n g: PropTypes.number,\n b: PropTypes.number,\n a: PropTypes.number\n })\n }),\n\n /**\n * If true, color cannot be picked.\n */\n disabled: PropTypes.bool,\n\n /**\n * Size (width) of the component in pixels\n */\n size: PropTypes.number,\n\n /**\n * Theme configuration to be set by a ThemeProvider\n */\n theme: PropTypes.object,\n\n /**\n * Description to be displayed alongside the control. To control styling,\n * pass an object with label and style properties\n */\n label: PropTypes.oneOfType([\n /**\n * Label to be displayed\n */\n PropTypes.string,\n\n /**\n * The style and label\n */\n PropTypes.shape({\n style: PropTypes.object,\n label: PropTypes.string\n })\n ]),\n\n /**\n * Where the indicator label is positioned\n */\n labelPosition: PropTypes.oneOf(['top', 'bottom']),\n\n /**\n * Class to apply to the root component element\n */\n className: PropTypes.string,\n\n /**\n * Dash-assigned callback that gets fired when\n * the color picker's value changes\n */\n setProps: PropTypes.func,\n\n /**\n * Style to apply to the root component element\n */\n style: PropTypes.object,\n\n /**\n * Used to allow user interactions in this component to be persisted when\n * the component - or the page - is refreshed. If `persisted` is truthy and\n * hasn't changed from its previous value, a `value` that the user has\n * changed while using the app will keep that change, as long as\n * the new `value` also matches what was given originally.\n * Used in conjunction with `persistence_type`.\n */\n persistence: PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.number]),\n\n /**\n * Properties whose user interactions will persist after refreshing the\n * component or the page. Since only `value` is allowed this prop can\n * normally be ignored.\n */\n persisted_props: PropTypes.arrayOf(PropTypes.oneOf(['value'])),\n\n /**\n * Where persisted user changes will be stored:\n * memory: only kept in memory, reset on page refresh.\n * local: window.localStorage, data is kept after the browser quit.\n * session: window.sessionStorage, data is cleared once the browser quit.\n */\n persistence_type: PropTypes.oneOf(['local', 'session', 'memory'])\n};\n\nexport const defaultProps = ColorPicker.defaultProps;\nexport const propTypes = ColorPicker.propTypes;\n","// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","// 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","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = require('./_hide');\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","(function (factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory()) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory()) :\n\t\t\t(window['stylisRuleSheet'] = factory())\n}(function () {\n\n\t'use strict'\n\n\treturn function (insertRule) {\n\t\tvar delimiter = '/*|*/'\n\t\tvar needle = delimiter+'}'\n\n\t\tfunction toSheet (block) {\n\t\t\tif (block)\n\t\t\t\ttry {\n\t\t\t\t\tinsertRule(block + '}')\n\t\t\t\t} catch (e) {}\n\t\t}\n\n\t\treturn function ruleSheet (context, content, selectors, parents, line, column, length, ns, depth, at) {\n\t\t\tswitch (context) {\n\t\t\t\t// property\n\t\t\t\tcase 1:\n\t\t\t\t\t// @import\n\t\t\t\t\tif (depth === 0 && content.charCodeAt(0) === 64)\n\t\t\t\t\t\treturn insertRule(content+';'), ''\n\t\t\t\t\tbreak\n\t\t\t\t// selector\n\t\t\t\tcase 2:\n\t\t\t\t\tif (ns === 0)\n\t\t\t\t\t\treturn content + delimiter\n\t\t\t\t\tbreak\n\t\t\t\t// at-rule\n\t\t\t\tcase 3:\n\t\t\t\t\tswitch (ns) {\n\t\t\t\t\t\t// @font-face, @page\n\t\t\t\t\t\tcase 102:\n\t\t\t\t\t\tcase 112:\n\t\t\t\t\t\t\treturn insertRule(selectors[0]+content), ''\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn content + (at === 0 ? delimiter : '')\n\t\t\t\t\t}\n\t\t\t\tcase -2:\n\t\t\t\t\tcontent.split(needle).forEach(toSheet)\n\t\t\t}\n\t\t}\n\t}\n}))\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","/*!\n * TinyGradient 0.4.3\n * Copyright 2014-2018 Damien \"Mistic\" Sorel (http://www.strangeplanet.fr)\n * Licensed under MIT (http://opensource.org/licenses/MIT)\n */\n\n(function (root, factory) {\n if (typeof module !== \"undefined\" && module.exports) {\n module.exports = factory(require('tinycolor2'));\n }\n else if (typeof define === 'function' && define.amd) {\n define(['tinycolor2'], factory);\n }\n else {\n root.tinygradient = factory(root.tinycolor);\n }\n}(this, function (tinycolor) {\n \"use strict\";\n\n var RGBA_MAX = {r: 256, g: 256, b: 256, a: 1};\n var HSVA_MAX = {h: 360, s: 1, v: 1, a: 1};\n\n /**\n * Linearly compute the step size between start and end (not normalized)\n * @param {Object} start - rgba or hsva\n * @param {Object} end - rgba or hsva\n * @param {int} steps - number of desired steps\n * @return {Object} rgba or hsva\n */\n function stepize(start, end, steps) {\n var step = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n step[k] = steps === 0 ? 0 : (end[k] - start[k]) / steps;\n }\n }\n\n return step;\n }\n\n /**\n * Compute the final step color\n * @param {Object} step - rgba or hsva from `stepize`\n * @param {Object} start - rgba or hsva\n * @param {int} i - color index\n * @param {Object} max - rgba or hsva of maximum values for each channel\n * @return {Object} rgba or hsva\n */\n function interpolate(step, start, i, max) {\n var color = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n color[k] = step[k] * i + start[k];\n color[k] = color[k] < 0 ? color[k] + max[k] : ( max[k] !== 1 ? color[k] % max[k] : color[k] );\n }\n }\n\n return color;\n }\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateRgb(stop1, stop2, steps) {\n var start = stop1.color.toRgb(),\n end = stop2.color.toRgb(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n color;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, RGBA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @param {Boolean} trigonometric - true to step in trigonometric order\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateHsv(stop1, stop2, steps, trigonometric) {\n var start = stop1.color.toHsv(),\n end = stop2.color.toHsv(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n diff, color;\n\n // recompute hue\n if ((start.h <= end.h && !trigonometric) || (start.h >= end.h && trigonometric)) {\n diff = end.h - start.h;\n }\n else if (trigonometric) {\n diff = 360 - end.h + start.h;\n }\n else {\n diff = 360 - start.h + end.h;\n }\n step.h = Math.pow(-1, trigonometric ? 1 : 0) * Math.abs(diff) / steps;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, HSVA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Compute substeps between each stops\n * @param {Object[]} stops\n * @param {int} steps\n * @return {int[]}\n */\n function computeSubsteps(stops, steps) {\n var l = stops.length;\n\n // validation\n steps = parseInt(steps);\n\n if (isNaN(steps) || steps < 2) {\n throw new Error('Invalid number of steps (< 2)');\n }\n if (steps < l) {\n throw new Error('Number of steps cannot be inferior to number of stops');\n }\n\n // compute substeps from stop positions\n var substeps = [];\n\n for (var i = 1; i < l; i++) {\n var step = (steps - 1) * (stops[i].pos - stops[i - 1].pos);\n substeps.push(Math.max(1, Math.round(step)));\n }\n\n // adjust number of steps\n var totalSubsteps = 1;\n for (var n = l - 1; n--;) totalSubsteps += substeps[n];\n\n while (totalSubsteps !== steps) {\n if (totalSubsteps < steps) {\n var min = Math.min.apply(null, substeps);\n substeps[substeps.indexOf(min)]++;\n totalSubsteps++;\n }\n else {\n var max = Math.max.apply(null, substeps);\n substeps[substeps.indexOf(max)]--;\n totalSubsteps--;\n }\n }\n\n return substeps;\n }\n\n /**\n * Compute the color at a specific position\n * @param {Object[]} stops\n * @param {float} pos\n * @param {string} method\n * @param {Object} max\n * @returns {tinycolor}\n */\n function computeAt(stops, pos, method, max) {\n if (pos < 0 || pos > 1) {\n throw new Error('Position must be between 0 and 1');\n }\n\n var start, end;\n for (var i = 0, l = stops.length; i < l - 1; i++) {\n if (pos >= stops[i].pos && pos < stops[i + 1].pos) {\n start = stops[i];\n end = stops[i + 1];\n break;\n }\n }\n\n if (!start) {\n start = end = stops[stops.length - 1];\n }\n\n var step = stepize(start.color[method](), end.color[method](), (end.pos - start.pos) * 100);\n var color = interpolate(step, start.color[method](), Math.round((pos - start.pos) * 100), max);\n return tinycolor(color);\n }\n\n /**\n * @class tinygradient\n * @param {*} stops\n */\n var TinyGradient = function (stops) {\n // varargs\n if (arguments.length === 1) {\n if (!(arguments[0] instanceof Array)) {\n throw new Error('\"stops\" is not an array');\n }\n stops = arguments[0];\n }\n else {\n stops = Array.prototype.slice.call(arguments);\n }\n\n // if we are called as a function, call using new instead\n if (!(this instanceof TinyGradient)) {\n return new TinyGradient(stops);\n }\n\n // validation\n if (stops.length < 2) {\n throw new Error('Invalid number of stops (< 2)');\n }\n\n var havingPositions = stops[0].pos !== undefined,\n l = stops.length,\n p = -1;\n // create tinycolor objects and clean positions\n this.stops = stops.map(function (stop, i) {\n var hasPosition = stop.pos !== undefined;\n if (havingPositions ^ hasPosition) {\n throw new Error('Cannot mix positionned and not posionned color stops');\n }\n\n if (hasPosition) {\n stop = {\n color: tinycolor(stop.color),\n pos : stop.pos\n };\n\n if (stop.pos < 0 || stop.pos > 1) {\n throw new Error('Color stops positions must be between 0 and 1');\n }\n else if (stop.pos <= p) {\n throw new Error('Color stops positions are not ordered');\n }\n p = stop.pos;\n }\n else {\n stop = {\n color: tinycolor(stop),\n pos : i / (l - 1)\n };\n }\n\n return stop;\n });\n\n if (this.stops[0].pos !== 0) {\n this.stops.unshift({\n color: this.stops[0].color,\n pos : 0\n });\n }\n if (this.stops[this.stops.length - 1].pos !== 1) {\n this.stops.push({\n color: this.stops[this.stops.length - 1].color,\n pos : 1\n });\n }\n };\n\n /**\n * Return new instance with reversed stops\n * @return {tinygradient}\n */\n TinyGradient.prototype.reverse = function () {\n var stops = [];\n\n this.stops.forEach(function (stop) {\n stops.push({\n color: stop.color,\n pos : 1 - stop.pos\n });\n });\n\n return new TinyGradient(stops.reverse());\n };\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {int} steps\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.rgb = function (steps) {\n var substeps = computeSubsteps(this.stops, steps),\n gradient = [];\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {int} steps\n * @param {Boolean|String} [mode=false]\n * - false to step in clockwise\n * - true to step in trigonometric order\n * - 'short' to use the shortest way\n * - 'long' to use the longest way\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.hsv = function (steps, mode) {\n var substeps = computeSubsteps(this.stops, steps),\n trigonometric = mode === true,\n parametrized = typeof mode === 'string',\n gradient = [],\n start, end, trig;\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n start = this.stops[i].color.toHsv();\n end = this.stops[i + 1].color.toHsv();\n\n if (parametrized) {\n trig = (start.h < end.h && end.h - start.h < 180) || (start.h > end.h && start.h - end.h > 180);\n }\n\n // rgb interpolation if one of the steps in grayscale\n if (start.s === 0 || end.s === 0) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n else {\n gradient = gradient.concat(interpolateHsv(this.stops[i], this.stops[i + 1], substeps[i],\n (mode === 'long' && trig) || (mode === 'short' && !trig) || (!parametrized && trigonometric)\n ));\n }\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate CSS3 command (no prefix) for this gradient\n * @param {String} [mode=linear] - 'linear' or 'radial'\n * @param {String} [direction] - default is 'to right' or 'ellipse at center'\n * @return {String}\n */\n TinyGradient.prototype.css = function (mode, direction) {\n mode = mode || 'linear';\n direction = direction || (mode === 'linear' ? 'to right' : 'ellipse at center');\n\n var css = mode + '-gradient(' + direction;\n this.stops.forEach(function (stop) {\n css += ', ' + stop.color.toRgbString() + ' ' + (stop.pos * 100) + '%';\n });\n css += ')';\n return css;\n };\n\n /**\n * Returns the color at specific position with RGBa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.rgbAt = function (pos) {\n return computeAt(this.stops, pos, 'toRgb', RGBA_MAX);\n };\n\n /**\n * Returns the color at specific position with HSVa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.hsvAt = function (pos) {\n return computeAt(this.stops, pos, 'toHsv', HSVA_MAX);\n };\n\n var STATIC_FNS = {\n 'rgb' : 1,\n 'hsv' : 2,\n 'css' : 2,\n 'rgbAt': 1,\n 'hsvAt': 1\n };\n\n Object.keys(STATIC_FNS).forEach(function (fn) {\n TinyGradient[fn] = function () {\n var colors = Array.prototype.slice.call(arguments);\n var args = colors.splice(-STATIC_FNS[fn]);\n var gradient = new TinyGradient(colors);\n return gradient[fn].apply(gradient, args);\n };\n });\n\n // export\n return TinyGradient;\n}));","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = addEventListener;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventObject = require('./EventObject');\n\nvar _EventObject2 = _interopRequireDefault(_EventObject);\n\nfunction addEventListener(target, eventType, callback, option) {\n function wrapCallback(e) {\n var ne = new _EventObject2['default'](e);\n callback.call(target, ne);\n }\n\n if (target.addEventListener) {\n var _ret = (function () {\n var useCapture = false;\n if (typeof option === 'object') {\n useCapture = option.capture || false;\n } else if (typeof option === 'boolean') {\n useCapture = option;\n }\n\n target.addEventListener(eventType, wrapCallback, option || false);\n\n return {\n v: {\n remove: function remove() {\n target.removeEventListener(eventType, wrapCallback, useCapture);\n }\n }\n };\n })();\n\n if (typeof _ret === 'object') return _ret.v;\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, wrapCallback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, wrapCallback);\n }\n };\n }\n}\n\nmodule.exports = exports['default'];","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\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 }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.nipplejs = f()}})(function(){var define,module,exports;\n'use strict';\n\n// Constants\nvar isTouch = !!('ontouchstart' in window);\nvar isPointer = window.PointerEvent ? true : false;\nvar isMSPointer = window.MSPointerEvent ? true : false;\nvar events = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend, touchcancel'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n },\n pointer: {\n start: 'pointerdown',\n move: 'pointermove',\n end: 'pointerup, pointercancel'\n },\n MSPointer: {\n start: 'MSPointerDown',\n move: 'MSPointerMove',\n end: 'MSPointerUp'\n }\n};\nvar toBind;\nvar secondBind = {};\nif (isPointer) {\n toBind = events.pointer;\n} else if (isMSPointer) {\n toBind = events.MSPointer;\n} else if (isTouch) {\n toBind = events.touch;\n secondBind = events.mouse;\n} else {\n toBind = events.mouse;\n}\n\n///////////////////////\n/// UTILS ///\n///////////////////////\n\nvar u = {};\nu.distance = function (p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return Math.sqrt((dx * dx) + (dy * dy));\n};\n\nu.angle = function(p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return u.degrees(Math.atan2(dy, dx));\n};\n\nu.findCoord = function(p, d, a) {\n var b = {x: 0, y: 0};\n a = u.radians(a);\n b.x = p.x - d * Math.cos(a);\n b.y = p.y - d * Math.sin(a);\n return b;\n};\n\nu.radians = function(a) {\n return a * (Math.PI / 180);\n};\n\nu.degrees = function(a) {\n return a * (180 / Math.PI);\n};\n\nu.bindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.addEventListener) {\n el.addEventListener(type, handler, false);\n } else if (el.attachEvent) {\n el.attachEvent(type, handler);\n }\n }\n};\n\nu.unbindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.removeEventListener) {\n el.removeEventListener(type, handler);\n } else if (el.detachEvent) {\n el.detachEvent(type, handler);\n }\n }\n};\n\nu.trigger = function (el, type, data) {\n var evt = new CustomEvent(type, data);\n el.dispatchEvent(evt);\n};\n\nu.prepareEvent = function (evt) {\n evt.preventDefault();\n return evt.type.match(/^touch/) ? evt.changedTouches : evt;\n};\n\nu.getScroll = function () {\n var x = (window.pageXOffset !== undefined) ?\n window.pageXOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollLeft;\n\n var y = (window.pageYOffset !== undefined) ?\n window.pageYOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollTop;\n return {\n x: x,\n y: y\n };\n};\n\nu.applyPosition = function (el, pos) {\n if (pos.top || pos.right || pos.bottom || pos.left) {\n el.style.top = pos.top;\n el.style.right = pos.right;\n el.style.bottom = pos.bottom;\n el.style.left = pos.left;\n } else {\n el.style.left = pos.x + 'px';\n el.style.top = pos.y + 'px';\n }\n};\n\nu.getTransitionStyle = function (property, values, time) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (typeof values === 'string') {\n obj[i] = values + ' ' + time;\n } else {\n var st = '';\n for (var j = 0, max = values.length; j < max; j += 1) {\n st += values[j] + ' ' + time + ', ';\n }\n obj[i] = st.slice(0, -2);\n }\n }\n }\n return obj;\n};\n\nu.getVendorStyle = function (property, value) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n obj[i] = value;\n }\n }\n return obj;\n};\n\nu.configStylePropertyObject = function (prop) {\n var obj = {};\n obj[prop] = '';\n var vendors = ['webkit', 'Moz', 'o'];\n vendors.forEach(function (vendor) {\n obj[vendor + prop.charAt(0).toUpperCase() + prop.slice(1)] = '';\n });\n return obj;\n};\n\nu.extend = function (objA, objB) {\n for (var i in objB) {\n if (objB.hasOwnProperty(i)) {\n objA[i] = objB[i];\n }\n }\n return objA;\n};\n\n// Overwrite only what's already present\nu.safeExtend = function (objA, objB) {\n var obj = {};\n for (var i in objA) {\n if (objA.hasOwnProperty(i) && objB.hasOwnProperty(i)) {\n obj[i] = objB[i];\n } else if (objA.hasOwnProperty(i)) {\n obj[i] = objA[i];\n }\n }\n return obj;\n};\n\n// Map for array or unique item.\nu.map = function (ar, fn) {\n if (ar.length) {\n for (var i = 0, max = ar.length; i < max; i += 1) {\n fn(ar[i]);\n }\n } else {\n fn(ar);\n }\n};\n\n///////////////////////\n/// SUPER CLASS ///\n///////////////////////\n\nfunction Super () {};\n\n// Basic event system.\nSuper.prototype.on = function (arg, cb) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n self._handlers_[type] = self._handlers_[type] || [];\n self._handlers_[type].push(cb);\n }\n return self;\n};\n\nSuper.prototype.off = function (type, cb) {\n var self = this;\n self._handlers_ = self._handlers_ || {};\n\n if (type === undefined) {\n self._handlers_ = {};\n } else if (cb === undefined) {\n self._handlers_[type] = null;\n } else if (self._handlers_[type] &&\n self._handlers_[type].indexOf(cb) >= 0) {\n self._handlers_[type].splice(self._handlers_[type].indexOf(cb), 1);\n }\n\n return self;\n};\n\nSuper.prototype.trigger = function (arg, data) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (self._handlers_[type] && self._handlers_[type].length) {\n self._handlers_[type].forEach(function (handler) {\n handler.call(self, {\n type: type,\n target: self\n }, data);\n });\n }\n }\n};\n\n// Configuration\nSuper.prototype.config = function (options) {\n var self = this;\n self.options = self.defaults || {};\n if (options) {\n self.options = u.safeExtend(self.options, options);\n }\n};\n\n// Bind internal events.\nSuper.prototype.bindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n self._domHandlers_[type] = function () {\n if (typeof self['on' + type] === 'function') {\n self['on' + type].apply(self, arguments);\n } else {\n console.warn('[WARNING] : Missing \"on' + type + '\" handler.');\n }\n };\n\n u.bindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.bindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n return self;\n};\n\n// Unbind dom events.\nSuper.prototype.unbindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n u.unbindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.unbindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n delete self._domHandlers_[type];\n\n return this;\n};\n\n///////////////////////\n/// THE NIPPLE ///\n///////////////////////\n\nfunction Nipple (collection, options) {\n this.identifier = options.identifier;\n this.position = options.position;\n this.frontPosition = options.frontPosition;\n this.collection = collection;\n\n // Defaults\n this.defaults = {\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n mode: 'dynamic',\n zone: document.body,\n lockX: false,\n lockY: false\n };\n\n this.config(options);\n\n // Overwrites\n if (this.options.mode === 'dynamic') {\n this.options.restOpacity = 0;\n }\n\n this.id = Nipple.id;\n Nipple.id += 1;\n this.buildEl()\n .stylize();\n\n // Nipple's API.\n this.instance = {\n el: this.ui.el,\n on: this.on.bind(this),\n off: this.off.bind(this),\n show: this.show.bind(this),\n hide: this.hide.bind(this),\n add: this.addToDom.bind(this),\n remove: this.removeFromDom.bind(this),\n destroy: this.destroy.bind(this),\n resetDirection: this.resetDirection.bind(this),\n computeDirection: this.computeDirection.bind(this),\n trigger: this.trigger.bind(this),\n position: this.position,\n frontPosition: this.frontPosition,\n ui: this.ui,\n identifier: this.identifier,\n id: this.id,\n options: this.options\n };\n\n return this.instance;\n};\n\nNipple.prototype = new Super();\nNipple.constructor = Nipple;\nNipple.id = 0;\n\n// Build the dom element of the Nipple instance.\nNipple.prototype.buildEl = function (options) {\n this.ui = {};\n\n if (this.options.dataOnly) {\n return this;\n }\n\n this.ui.el = document.createElement('div');\n this.ui.back = document.createElement('div');\n this.ui.front = document.createElement('div');\n\n this.ui.el.className = 'nipple collection_' + this.collection.id;\n this.ui.back.className = 'back';\n this.ui.front.className = 'front';\n\n this.ui.el.setAttribute('id', 'nipple_' + this.collection.id +\n '_' + this.id);\n\n this.ui.el.appendChild(this.ui.back);\n this.ui.el.appendChild(this.ui.front);\n\n return this;\n};\n\n// Apply CSS to the Nipple instance.\nNipple.prototype.stylize = function () {\n if (this.options.dataOnly) {\n return this;\n }\n var animTime = this.options.fadeTime + 'ms';\n var borderStyle = u.getVendorStyle('borderRadius', '50%');\n var transitStyle = u.getTransitionStyle('transition', 'opacity', animTime);\n var styles = {};\n styles.el = {\n position: 'absolute',\n opacity: this.options.restOpacity,\n display: 'block',\n 'zIndex': 999\n };\n\n styles.back = {\n position: 'absolute',\n display: 'block',\n width: this.options.size + 'px',\n height: this.options.size + 'px',\n marginLeft: -this.options.size / 2 + 'px',\n marginTop: -this.options.size / 2 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n styles.front = {\n width: this.options.size / 2 + 'px',\n height: this.options.size / 2 + 'px',\n position: 'absolute',\n display: 'block',\n marginLeft: -this.options.size / 4 + 'px',\n marginTop: -this.options.size / 4 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n u.extend(styles.el, transitStyle);\n u.extend(styles.back, borderStyle);\n u.extend(styles.front, borderStyle);\n\n this.applyStyles(styles);\n\n return this;\n};\n\nNipple.prototype.applyStyles = function (styles) {\n // Apply styles\n for (var i in this.ui) {\n if (this.ui.hasOwnProperty(i)) {\n for (var j in styles[i]) {\n this.ui[i].style[j] = styles[i][j];\n }\n }\n }\n\n return this;\n};\n\n// Inject the Nipple instance into DOM.\nNipple.prototype.addToDom = function () {\n // We're not adding it if we're dataOnly or already in dom.\n if (this.options.dataOnly || document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.appendChild(this.ui.el);\n return this;\n};\n\n// Remove the Nipple instance from DOM.\nNipple.prototype.removeFromDom = function () {\n if (this.options.dataOnly || !document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.removeChild(this.ui.el);\n return this;\n};\n\n// Entirely destroy this nipple\nNipple.prototype.destroy = function () {\n clearTimeout(this.removeTimeout);\n clearTimeout(this.showTimeout);\n clearTimeout(this.restTimeout);\n this.trigger('destroyed', this.instance);\n this.removeFromDom();\n this.off();\n};\n\n// Fade in the Nipple instance.\nNipple.prototype.show = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.addToDom();\n\n self.restCallback();\n\n setTimeout(function () {\n self.ui.el.style.opacity = 1;\n }, 0);\n\n self.showTimeout = setTimeout(function () {\n self.trigger('shown', self.instance);\n if (typeof cb === 'function') {\n cb.call(this);\n }\n }, self.options.fadeTime);\n\n return self;\n};\n\n// Fade out the Nipple instance.\nNipple.prototype.hide = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n self.ui.el.style.opacity = self.options.restOpacity;\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.removeTimeout = setTimeout(\n function () {\n var display = self.options.mode === 'dynamic' ? 'none' : 'block';\n self.ui.el.style.display = display;\n if (typeof cb === 'function') {\n cb.call(self);\n }\n\n self.trigger('hidden', self.instance);\n },\n self.options.fadeTime\n );\n if (self.options.restJoystick) {\n self.restPosition();\n }\n\n return self;\n};\n\nNipple.prototype.restPosition = function (cb) {\n var self = this;\n self.frontPosition = {\n x: 0,\n y: 0\n };\n var animTime = self.options.fadeTime + 'ms';\n\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition',\n ['top', 'left'], animTime);\n\n var styles = {front: {}};\n styles.front = {\n left: self.frontPosition.x + 'px',\n top: self.frontPosition.y + 'px'\n };\n\n self.applyStyles(transitStyle);\n self.applyStyles(styles);\n\n self.restTimeout = setTimeout(\n function () {\n if (typeof cb === 'function') {\n cb.call(self);\n }\n self.restCallback();\n },\n self.options.fadeTime\n );\n};\n\nNipple.prototype.restCallback = function () {\n var self = this;\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition', 'none', '');\n self.applyStyles(transitStyle);\n self.trigger('rested', self.instance);\n};\n\nNipple.prototype.resetDirection = function () {\n // Fully rebuild the object to let the iteration possible.\n this.direction = {\n x: false,\n y: false,\n angle: false\n };\n};\n\nNipple.prototype.computeDirection = function (obj) {\n var rAngle = obj.angle.radian;\n var angle45 = Math.PI / 4;\n var angle90 = Math.PI / 2;\n var direction, directionX, directionY;\n\n // Angular direction\n // \\ UP /\n // \\ /\n // LEFT RIGHT\n // / \\\n // /DOWN \\\n //\n if (\n rAngle > angle45 &&\n rAngle < (angle45 * 3) &&\n !obj.lockX\n ) {\n direction = 'up';\n } else if (\n rAngle > -angle45 &&\n rAngle <= angle45 &&\n !obj.lockY\n ) {\n direction = 'left';\n } else if (\n rAngle > (-angle45 * 3) &&\n rAngle <= -angle45 &&\n !obj.lockX\n ) {\n direction = 'down';\n } else if (!obj.lockY) {\n direction = 'right';\n }\n\n // Plain direction\n // UP |\n // _______ | RIGHT\n // LEFT |\n // DOWN |\n if (!obj.lockY) {\n if (rAngle > -angle90 && rAngle < angle90) {\n directionX = 'left';\n } else {\n directionX = 'right';\n }\n }\n\n if (!obj.lockX) {\n if (rAngle > 0) {\n directionY = 'up';\n } else {\n directionY = 'down';\n }\n }\n\n if (obj.force > this.options.threshold) {\n var oldDirection = {};\n for (var i in this.direction) {\n if (this.direction.hasOwnProperty(i)) {\n oldDirection[i] = this.direction[i];\n }\n }\n\n var same = {};\n\n this.direction = {\n x: directionX,\n y: directionY,\n angle: direction\n };\n\n obj.direction = this.direction;\n\n for (var i in oldDirection) {\n if (oldDirection[i] === this.direction[i]) {\n same[i] = true;\n }\n }\n\n // If all 3 directions are the same, we don't trigger anything.\n if (same.x && same.y && same.angle) {\n return obj;\n }\n\n if (!same.x || !same.y) {\n this.trigger('plain', obj);\n }\n\n if (!same.x) {\n this.trigger('plain:' + directionX, obj);\n }\n\n if (!same.y) {\n this.trigger('plain:' + directionY, obj);\n }\n\n if (!same.angle) {\n this.trigger('dir dir:' + direction, obj);\n }\n }\n return obj;\n};\n\n/* global Nipple, Super */\n\n///////////////////////////\n/// THE COLLECTION ///\n///////////////////////////\n\nfunction Collection (manager, options) {\n var self = this;\n self.nipples = [];\n self.idles = [];\n self.actives = [];\n self.ids = [];\n self.pressureIntervals = {};\n self.manager = manager;\n self.id = Collection.id;\n Collection.id += 1;\n\n // Defaults\n self.defaults = {\n zone: document.body,\n multitouch: false,\n maxNumberOfNipples: 10,\n mode: 'dynamic',\n position: {top: 0, left: 0},\n catchDistance: 200,\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n lockX: false,\n lockY: false\n };\n\n self.config(options);\n\n // Overwrites\n if (self.options.mode === 'static' || self.options.mode === 'semi') {\n self.options.multitouch = false;\n }\n\n if (!self.options.multitouch) {\n self.options.maxNumberOfNipples = 1;\n }\n\n self.updateBox();\n self.prepareNipples();\n self.bindings();\n self.begin();\n\n return self.nipples;\n}\n\nCollection.prototype = new Super();\nCollection.constructor = Collection;\nCollection.id = 0;\n\nCollection.prototype.prepareNipples = function () {\n var self = this;\n var nips = self.nipples;\n\n // Public API Preparation.\n nips.on = self.on.bind(self);\n nips.off = self.off.bind(self);\n nips.options = self.options;\n nips.destroy = self.destroy.bind(self);\n nips.ids = self.ids;\n nips.id = self.id;\n nips.processOnMove = self.processOnMove.bind(self);\n nips.processOnEnd = self.processOnEnd.bind(self);\n nips.get = function (id) {\n if (id === undefined) {\n return nips[0];\n }\n for (var i = 0, max = nips.length; i < max; i += 1) {\n if (nips[i].identifier === id) {\n return nips[i];\n }\n }\n return false;\n };\n};\n\nCollection.prototype.bindings = function () {\n var self = this;\n // Touch start event.\n self.bindEvt(self.options.zone, 'start');\n // Avoid native touch actions (scroll, zoom etc...) on the zone.\n self.options.zone.style.touchAction = 'none';\n self.options.zone.style.msTouchAction = 'none';\n};\n\nCollection.prototype.begin = function () {\n var self = this;\n var opts = self.options;\n\n // We place our static nipple\n // if needed.\n if (opts.mode === 'static') {\n var nipple = self.createNipple(\n opts.position,\n self.manager.getIdentifier()\n );\n // Add it to the dom.\n nipple.add();\n // Store it in idles.\n self.idles.push(nipple);\n }\n};\n\n// Nipple Factory\nCollection.prototype.createNipple = function (position, identifier) {\n var self = this;\n var scroll = u.getScroll();\n var toPutOn = {};\n var opts = self.options;\n\n if (position.x && position.y) {\n toPutOn = {\n x: position.x -\n (scroll.x + self.box.left),\n y: position.y -\n (scroll.y + self.box.top)\n };\n } else if (\n position.top ||\n position.right ||\n position.bottom ||\n position.left\n ) {\n\n // We need to compute the position X / Y of the joystick.\n var dumb = document.createElement('DIV');\n dumb.style.display = 'hidden';\n dumb.style.top = position.top;\n dumb.style.right = position.right;\n dumb.style.bottom = position.bottom;\n dumb.style.left = position.left;\n dumb.style.position = 'absolute';\n\n opts.zone.appendChild(dumb);\n var dumbBox = dumb.getBoundingClientRect();\n opts.zone.removeChild(dumb);\n\n toPutOn = position;\n position = {\n x: dumbBox.left + scroll.x,\n y: dumbBox.top + scroll.y\n };\n }\n\n var nipple = new Nipple(self, {\n color: opts.color,\n size: opts.size,\n threshold: opts.threshold,\n fadeTime: opts.fadeTime,\n dataOnly: opts.dataOnly,\n restJoystick: opts.restJoystick,\n restOpacity: opts.restOpacity,\n mode: opts.mode,\n identifier: identifier,\n position: position,\n zone: opts.zone,\n frontPosition: {\n x: 0,\n y: 0\n }\n });\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.el, toPutOn);\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n self.nipples.push(nipple);\n self.trigger('added ' + nipple.identifier + ':added', nipple);\n self.manager.trigger('added ' + nipple.identifier + ':added', nipple);\n\n self.bindNipple(nipple);\n\n return nipple;\n};\n\nCollection.prototype.updateBox = function () {\n var self = this;\n self.box = self.options.zone.getBoundingClientRect();\n};\n\nCollection.prototype.bindNipple = function (nipple) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's id.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed.\n nipple.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n nipple.on('shown hidden rested dir plain', handler);\n nipple.on('dir:up dir:right dir:down dir:left', handler);\n nipple.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nCollection.prototype.pressureFn = function (touch, nipple, identifier) {\n var self = this;\n var previousPressure = 0;\n clearInterval(self.pressureIntervals[identifier]);\n // Create an interval that will read the pressure every 100ms\n self.pressureIntervals[identifier] = setInterval(function () {\n var pressure = touch.force || touch.pressure ||\n touch.webkitForce || 0;\n if (pressure !== previousPressure) {\n nipple.trigger('pressure', pressure);\n self.trigger('pressure ' +\n nipple.identifier + ':pressure', pressure);\n previousPressure = pressure;\n }\n }.bind(self), 100);\n};\n\nCollection.prototype.onstart = function (evt) {\n var self = this;\n var opts = self.options;\n evt = u.prepareEvent(evt);\n\n // Update the box position\n self.updateBox();\n\n var process = function (touch) {\n // If we can create new nipples\n // meaning we don't have more active nipples than we should.\n if (self.actives.length < opts.maxNumberOfNipples) {\n self.processOnStart(touch);\n }\n };\n\n u.map(evt, process);\n\n // We ask upstream to bind the document\n // on 'move' and 'end'\n self.manager.bindDocument();\n return false;\n};\n\nCollection.prototype.processOnStart = function (evt) {\n var self = this;\n var opts = self.options;\n var indexInIdles;\n var identifier = self.manager.getIdentifier(evt);\n var pressure = evt.force || evt.pressure || evt.webkitForce || 0;\n var position = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var nipple = self.getOrCreate(identifier, position);\n\n // Update its touch identifier\n if (nipple.identifier !== identifier) {\n self.manager.removeIdentifier(nipple.identifier);\n }\n nipple.identifier = identifier;\n\n var process = function (nip) {\n // Trigger the start.\n nip.trigger('start', nip);\n self.trigger('start ' + nip.id + ':start', nip);\n\n nip.show();\n if (pressure > 0) {\n self.pressureFn(evt, nip, nip.identifier);\n }\n // Trigger the first move event.\n self.processOnMove(evt);\n };\n\n // Transfer it from idles to actives.\n if ((indexInIdles = self.idles.indexOf(nipple)) >= 0) {\n self.idles.splice(indexInIdles, 1);\n }\n\n // Store the nipple in the actives array\n self.actives.push(nipple);\n self.ids.push(nipple.identifier);\n\n if (opts.mode !== 'semi') {\n process(nipple);\n } else {\n // In semi we check the distance of the touch\n // to decide if we have to reset the nipple\n var distance = u.distance(position, nipple.position);\n if (distance <= opts.catchDistance) {\n process(nipple);\n } else {\n nipple.destroy();\n self.processOnStart(evt);\n return;\n }\n }\n\n return nipple;\n};\n\nCollection.prototype.getOrCreate = function (identifier, position) {\n var self = this;\n var opts = self.options;\n var nipple;\n\n // If we're in static or semi, we might already have an active.\n if (/(semi|static)/.test(opts.mode)) {\n // Get the active one.\n // TODO: Multi-touche for semi and static will start here.\n // Return the nearest one.\n nipple = self.idles[0];\n if (nipple) {\n self.idles.splice(0, 1);\n return nipple;\n }\n\n if (opts.mode === 'semi') {\n // If we're in semi mode, we need to create one.\n return self.createNipple(position, identifier);\n }\n\n console.warn('Coudln\\'t find the needed nipple.');\n return false;\n }\n // In dynamic, we create a new one.\n nipple = self.createNipple(position, identifier);\n return nipple;\n};\n\nCollection.prototype.processOnMove = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n\n if (!nipple) {\n // This is here just for safety.\n // It shouldn't happen.\n console.error('Found zombie joystick with ID ' + identifier);\n self.manager.removeIdentifier(identifier);\n return;\n }\n\n nipple.identifier = identifier;\n\n var size = nipple.options.size / 2;\n var pos = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var dist = u.distance(pos, nipple.position);\n var angle = u.angle(pos, nipple.position);\n var rAngle = u.radians(angle);\n var force = dist / size;\n\n // If distance is bigger than nipple's size\n // we clamp the position.\n if (dist > size) {\n dist = size;\n pos = u.findCoord(nipple.position, dist, angle);\n }\n\n var xPosition = pos.x - nipple.position.x\n var yPosition = pos.y - nipple.position.y\n\n if (opts.lockX){\n yPosition = 0\n }\n if (opts.lockY) {\n xPosition = 0\n }\n\n nipple.frontPosition = {\n x: xPosition,\n y: yPosition\n };\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n\n // Prepare event's datas.\n var toSend = {\n identifier: nipple.identifier,\n position: pos,\n force: force,\n pressure: evt.force || evt.pressure || evt.webkitForce || 0,\n distance: dist,\n angle: {\n radian: rAngle,\n degree: angle\n },\n instance: nipple,\n lockX: opts.lockX,\n lockY: opts.lockY\n };\n\n // Compute the direction's datas.\n toSend = nipple.computeDirection(toSend);\n\n // Offset angles to follow units circle.\n toSend.angle = {\n radian: u.radians(180 - angle),\n degree: 180 - angle\n };\n\n // Send everything to everyone.\n nipple.trigger('move', toSend);\n self.trigger('move ' + nipple.id + ':move', toSend);\n};\n\nCollection.prototype.processOnEnd = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n var removedIdentifier = self.manager.removeIdentifier(nipple.identifier);\n\n if (!nipple) {\n return;\n }\n\n if (!opts.dataOnly) {\n nipple.hide(function () {\n if (opts.mode === 'dynamic') {\n nipple.trigger('removed', nipple);\n self.trigger('removed ' + nipple.id + ':removed', nipple);\n self.manager\n .trigger('removed ' + nipple.id + ':removed', nipple);\n nipple.destroy();\n }\n });\n }\n\n // Clear the pressure interval reader\n clearInterval(self.pressureIntervals[nipple.identifier]);\n\n // Reset the direciton of the nipple, to be able to trigger a new direction\n // on start.\n nipple.resetDirection();\n\n nipple.trigger('end', nipple);\n self.trigger('end ' + nipple.id + ':end', nipple);\n\n // Remove identifier from our bank.\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Clean our actives array.\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n\n if (/(semi|static)/.test(opts.mode)) {\n // Transfer nipple from actives to idles\n // if we're in semi or static mode.\n self.idles.push(nipple);\n } else if (self.nipples.indexOf(nipple) >= 0) {\n // Only if we're not in semi or static mode\n // we can remove the instance.\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n\n // We unbind move and end.\n self.manager.unbindDocument();\n\n // We add back the identifier of the idle nipple;\n if (/(semi|static)/.test(opts.mode)) {\n self.manager.ids[removedIdentifier.id] = removedIdentifier.identifier;\n }\n};\n\n// Remove destroyed nipple from the lists\nCollection.prototype.onDestroyed = function(evt, nipple) {\n var self = this;\n if (self.nipples.indexOf(nipple) >= 0) {\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n if (self.idles.indexOf(nipple) >= 0) {\n self.idles.splice(self.idles.indexOf(nipple), 1);\n }\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Remove the identifier from our bank\n self.manager.removeIdentifier(nipple.identifier);\n\n // We unbind move and end.\n self.manager.unbindDocument();\n};\n\n// Cleanly destroy the manager\nCollection.prototype.destroy = function () {\n var self = this;\n self.unbindEvt(self.options.zone, 'start');\n\n // Destroy nipples.\n self.nipples.forEach(function(nipple) {\n nipple.destroy();\n });\n\n // Clean 3DTouch intervals.\n for (var i in self.pressureIntervals) {\n if (self.pressureIntervals.hasOwnProperty(i)) {\n clearInterval(self.pressureIntervals[i]);\n }\n }\n\n // Notify the manager passing the instance\n self.trigger('destroyed', self.nipples);\n // We unbind move and end.\n self.manager.unbindDocument();\n // Unbind everything.\n self.off();\n};\n\n/* global u, Super, Collection */\n\n///////////////////////\n/// MANAGER ///\n///////////////////////\n\nfunction Manager (options) {\n var self = this;\n self.ids = {};\n self.index = 0;\n self.collections = [];\n\n self.config(options);\n self.prepareCollections();\n\n // Listen for resize, to reposition every joysticks\n var resizeTimer;\n u.bindEvt(window, 'resize', function (evt) {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(function () {\n var pos;\n var scroll = u.getScroll();\n self.collections.forEach(function (collection) {\n collection.forEach(function (nipple) {\n pos = nipple.el.getBoundingClientRect();\n nipple.position = {\n x: scroll.x + pos.left,\n y: scroll.y + pos.top\n };\n });\n });\n }, 100);\n });\n\n return self.collections;\n};\n\nManager.prototype = new Super();\nManager.constructor = Manager;\n\nManager.prototype.prepareCollections = function () {\n var self = this;\n // Public API Preparation.\n self.collections.create = self.create.bind(self);\n // Listen to anything\n self.collections.on = self.on.bind(self);\n // Unbind general events\n self.collections.off = self.off.bind(self);\n // Destroy everything\n self.collections.destroy = self.destroy.bind(self);\n // Get any nipple\n self.collections.get = function (id) {\n var nipple;\n self.collections.every(function (collection) {\n if (nipple = collection.get(id)) {\n return false;\n }\n return true;\n });\n return nipple;\n };\n};\n\nManager.prototype.create = function (options) {\n return this.createCollection(options);\n};\n\n// Collection Factory\nManager.prototype.createCollection = function (options) {\n var self = this;\n var collection = new Collection(self, options);\n\n self.bindCollection(collection);\n self.collections.push(collection);\n\n return collection;\n};\n\nManager.prototype.bindCollection = function (collection) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's identifier.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed we clean.\n collection.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n collection.on('shown hidden rested dir plain', handler);\n collection.on('dir:up dir:right dir:down dir:left', handler);\n collection.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nManager.prototype.bindDocument = function () {\n var self = this;\n // Bind only if not already binded\n if (!self.binded) {\n self.bindEvt(document, 'move')\n .bindEvt(document, 'end');\n self.binded = true;\n }\n};\n\nManager.prototype.unbindDocument = function (force) {\n var self = this;\n // If there are no touch left\n // unbind the document.\n if (!Object.keys(self.ids).length || force === true) {\n self.unbindEvt(document, 'move')\n .unbindEvt(document, 'end');\n self.binded = false;\n }\n};\n\nManager.prototype.getIdentifier = function (evt) {\n var id;\n // If no event, simple increment\n if (!evt) {\n id = this.index;\n } else {\n // Extract identifier from event object.\n // Unavailable in mouse events so replaced by latest increment.\n id = evt.identifier === undefined ? evt.pointerId : evt.identifier;\n if (id === undefined) {\n id = this.latest || 0;\n }\n }\n\n if (this.ids[id] === undefined) {\n this.ids[id] = this.index;\n this.index += 1;\n }\n\n // Keep the latest id used in case we're using an unidentified mouseEvent\n this.latest = id;\n return this.ids[id];\n};\n\nManager.prototype.removeIdentifier = function (identifier) {\n var removed = {};\n for (var id in this.ids) {\n if (this.ids[id] === identifier) {\n removed.id = id;\n removed.identifier = this.ids[id];\n delete this.ids[id];\n break;\n }\n }\n return removed;\n};\n\nManager.prototype.onmove = function (evt) {\n var self = this;\n self.onAny('move', evt);\n return false;\n};\n\nManager.prototype.onend = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.oncancel = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.onAny = function (which, evt) {\n var self = this;\n var id;\n var processFn = 'processOn' + which.charAt(0).toUpperCase() +\n which.slice(1);\n evt = u.prepareEvent(evt);\n var processColl = function (e, id, coll) {\n if (coll.ids.indexOf(id) >= 0) {\n coll[processFn](e);\n // Mark the event to avoid cleaning it later.\n e._found_ = true;\n }\n };\n var processEvt = function (e) {\n id = self.getIdentifier(e);\n u.map(self.collections, processColl.bind(null, e, id));\n // If the event isn't handled by any collection,\n // we need to clean its identifier.\n if (!e._found_) {\n self.removeIdentifier(id);\n }\n };\n\n u.map(evt, processEvt);\n\n return false;\n};\n\n// Cleanly destroy the manager\nManager.prototype.destroy = function () {\n var self = this;\n self.unbindDocument(true);\n self.ids = {};\n self.index = 0;\n self.collections.forEach(function(collection) {\n collection.destroy();\n });\n self.off();\n};\n\n// When a collection gets destroyed\n// we clean behind.\nManager.prototype.onDestroyed = function (evt, coll) {\n var self = this;\n if (self.collections.indexOf(coll) < 0) {\n return false;\n }\n self.collections.splice(self.collections.indexOf(coll), 1);\n};\n\nvar factory = new Manager();\nreturn {\n create: function (options) {\n return factory.create(options);\n },\n factory: factory\n};\n\n});\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","/**\r\n * Returns the object type of the given payload\r\n *\r\n * @param {*} payload\r\n * @returns {string}\r\n */\r\nfunction getType(payload) {\r\n return Object.prototype.toString.call(payload).slice(8, -1);\r\n}\r\n/**\r\n * Returns whether the payload is undefined\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isUndefined(payload) {\r\n return getType(payload) === 'Undefined';\r\n}\r\n/**\r\n * Returns whether the payload is null\r\n *\r\n * @param {*} payload\r\n * @returns {payload is null}\r\n */\r\nfunction isNull(payload) {\r\n return getType(payload) === 'Null';\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isPlainObject(payload) {\r\n if (getType(payload) !== 'Object')\r\n return false;\r\n return (payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype);\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isObject(payload) {\r\n return isPlainObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isAnyObject(payload) {\r\n return getType(payload) === 'Object';\r\n}\r\n/**\r\n * Returns whether the payload is an object like a type passed in < >\r\n *\r\n * Usage: isObjectLike<{id: any}>(payload) // will make sure it's an object and has an `id` prop.\r\n *\r\n * @template T this must be passed in < >\r\n * @param {*} payload\r\n * @returns {payload is T}\r\n */\r\nfunction isObjectLike(payload) {\r\n return isAnyObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a function\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Function}\r\n */\r\nfunction isFunction(payload) {\r\n return getType(payload) === 'Function';\r\n}\r\n/**\r\n * Returns whether the payload is an array\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isArray(payload) {\r\n return getType(payload) === 'Array';\r\n}\r\n/**\r\n * Returns whether the payload is a string\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isString(payload) {\r\n return getType(payload) === 'String';\r\n}\r\n/**\r\n * Returns whether the payload is a string, BUT returns false for ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isFullString(payload) {\r\n return isString(payload) && payload !== '';\r\n}\r\n/**\r\n * Returns whether the payload is ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isEmptyString(payload) {\r\n return payload === '';\r\n}\r\n/**\r\n * Returns whether the payload is a number\r\n *\r\n * This will return false for NaN\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\r\nfunction isNumber(payload) {\r\n return (getType(payload) === 'Number' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a boolean\r\n *\r\n * @param {*} payload\r\n * @returns {payload is boolean}\r\n */\r\nfunction isBoolean(payload) {\r\n return getType(payload) === 'Boolean';\r\n}\r\n/**\r\n * Returns whether the payload is a regular expression\r\n *\r\n * @param {*} payload\r\n * @returns {payload is RegExp}\r\n */\r\nfunction isRegExp(payload) {\r\n return getType(payload) === 'RegExp';\r\n}\r\n/**\r\n * Returns whether the payload is a date, and that the date is Valid\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Date}\r\n */\r\nfunction isDate(payload) {\r\n return (getType(payload) === 'Date' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a Symbol\r\n *\r\n * @param {*} payload\r\n * @returns {payload is symbol}\r\n */\r\nfunction isSymbol(payload) {\r\n return (getType(payload) === 'Symbol');\r\n}\r\n/**\r\n * Returns whether the payload is a primitive type (eg. Boolean | Null | Undefined | Number | String | Symbol)\r\n *\r\n * @param {*} payload\r\n * @returns {(payload is boolean | null | undefined | number | string | symbol)}\r\n */\r\nfunction isPrimitive(payload) {\r\n return (isBoolean(payload) ||\r\n isNull(payload) ||\r\n isUndefined(payload) ||\r\n isNumber(payload) ||\r\n isString(payload) ||\r\n isSymbol(payload));\r\n}\r\n/**\r\n * Does a generic check to check that the given payload is of a given type.\r\n * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!);\r\n * It will, however, differentiate between object and null\r\n *\r\n * @template T\r\n * @param {*} payload\r\n * @param {T} type\r\n * @throws {TypeError} Will throw type error if type is an invalid type\r\n * @returns {payload is T}\r\n */\r\nfunction isType(payload, type) {\r\n if (!(type instanceof Function)) {\r\n throw new TypeError('Type must be a function');\r\n }\r\n if (!type.hasOwnProperty('prototype')) {\r\n throw new TypeError('Type is not a class');\r\n }\r\n // Classes usually have names (as functions usually have names)\r\n var name = type.name;\r\n return (getType(payload) === name) || Boolean(payload && (payload.constructor === type));\r\n}\n\nexport { getType, isUndefined, isNull, isPlainObject, isObject, isAnyObject, isObjectLike, isFunction, isArray, isString, isFullString, isEmptyString, isNumber, isBoolean, isRegExp, isDate, isSymbol, isPrimitive, isType };\n","import { isArray, isPlainObject, isSymbol } from 'is-what';\n\nfunction assignProp(carry, key, newVal, originalObject) {\r\n var propType = originalObject.propertyIsEnumerable(key)\r\n ? 'enumerable'\r\n : 'nonenumerable';\r\n if (propType === 'enumerable')\r\n carry[key] = newVal;\r\n if (propType === 'nonenumerable') {\r\n Object.defineProperty(carry, key, {\r\n value: newVal,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n });\r\n }\r\n}\r\nfunction mergeRecursively(origin, newComer, extensions) {\r\n // work directly on newComer if its not an object\r\n if (!isPlainObject(newComer)) {\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newComer = extend(origin, newComer);\r\n });\r\n }\r\n return newComer;\r\n }\r\n // define newObject to merge all values upon\r\n var newObject = {};\r\n if (isPlainObject(origin)) {\r\n var props_1 = Object.getOwnPropertyNames(origin);\r\n var symbols_1 = Object.getOwnPropertySymbols(origin);\r\n newObject = props_1.concat(symbols_1).reduce(function (carry, key) {\r\n // @ts-ignore\r\n var targetVal = origin[key];\r\n if ((!isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key)) ||\r\n (isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key))) {\r\n assignProp(carry, key, targetVal, origin);\r\n }\r\n return carry;\r\n }, {});\r\n }\r\n var props = Object.getOwnPropertyNames(newComer);\r\n var symbols = Object.getOwnPropertySymbols(newComer);\r\n var result = props.concat(symbols).reduce(function (carry, key) {\r\n // re-define the origin and newComer as targetVal and newVal\r\n var newVal = newComer[key];\r\n var targetVal = (isPlainObject(origin))\r\n // @ts-ignore\r\n ? origin[key]\r\n : undefined;\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newVal = extend(targetVal, newVal);\r\n });\r\n }\r\n // When newVal is an object do the merge recursively\r\n if (targetVal !== undefined && isPlainObject(newVal)) {\r\n newVal = mergeRecursively(targetVal, newVal, extensions);\r\n }\r\n assignProp(carry, key, newVal, newComer);\r\n return carry;\r\n }, newObject);\r\n return result;\r\n}\r\n/**\r\n * Merge anything recursively.\r\n * Objects get merged, special objects (classes etc.) are re-assigned \"as is\".\r\n * Basic types overwrite objects or other basic types.\r\n *\r\n * @param {(IConfig | any)} origin\r\n * @param {...any[]} newComers\r\n * @returns the result\r\n */\r\nfunction merge(origin) {\r\n var newComers = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n newComers[_i - 1] = arguments[_i];\r\n }\r\n var extensions = null;\r\n var base = origin;\r\n if (isPlainObject(origin) && origin.extensions && Object.keys(origin).length === 1) {\r\n base = {};\r\n extensions = origin.extensions;\r\n }\r\n return newComers.reduce(function (result, newComer) {\r\n return mergeRecursively(result, newComer, extensions);\r\n }, base);\r\n}\n\nfunction concatArrays(originVal, newVal) {\r\n if (isArray(originVal) && isArray(newVal)) {\r\n // concat logic\r\n return originVal.concat(newVal);\r\n }\r\n return newVal; // always return newVal as fallback!!\r\n}\n\nexport default merge;\nexport { merge, concatArrays };\n","/** @license React v16.8.6\n * react-is.production.min.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'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (colorNames.hasOwnProperty(name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar keyword = /(\\D+)/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\n\t\tif (!rgb) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = (parseFloat(match[1]) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = num.toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function () { /* empty */ };\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","/**\n * @ignore\n * event object for dom\n * @author yiminghe@gmail.com\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventBaseObject = require('./EventBaseObject');\n\nvar _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar TRUE = true;\nvar FALSE = false;\nvar commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];\n\nfunction isNullOrUndefined(w) {\n return w === null || w === undefined;\n}\n\nvar eventNormalizers = [{\n reg: /^key/,\n props: ['char', 'charCode', 'key', 'keyCode', 'which'],\n fix: function fix(event, nativeEvent) {\n if (isNullOrUndefined(event.which)) {\n event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;\n }\n\n // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)\n if (event.metaKey === undefined) {\n event.metaKey = event.ctrlKey;\n }\n }\n}, {\n reg: /^touch/,\n props: ['touches', 'changedTouches', 'targetTouches']\n}, {\n reg: /^hashchange$/,\n props: ['newURL', 'oldURL']\n}, {\n reg: /^gesturechange$/i,\n props: ['rotation', 'scale']\n}, {\n reg: /^(mousewheel|DOMMouseScroll)$/,\n props: [],\n fix: function fix(event, nativeEvent) {\n var deltaX = undefined;\n var deltaY = undefined;\n var delta = undefined;\n var wheelDelta = nativeEvent.wheelDelta;\n var axis = nativeEvent.axis;\n var wheelDeltaY = nativeEvent.wheelDeltaY;\n var wheelDeltaX = nativeEvent.wheelDeltaX;\n var detail = nativeEvent.detail;\n\n // ie/webkit\n if (wheelDelta) {\n delta = wheelDelta / 120;\n }\n\n // gecko\n if (detail) {\n // press control e.detail == 1 else e.detail == 3\n delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);\n }\n\n // Gecko\n if (axis !== undefined) {\n if (axis === event.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = 0 - delta;\n } else if (axis === event.VERTICAL_AXIS) {\n deltaX = 0;\n deltaY = delta;\n }\n }\n\n // Webkit\n if (wheelDeltaY !== undefined) {\n deltaY = wheelDeltaY / 120;\n }\n if (wheelDeltaX !== undefined) {\n deltaX = -1 * wheelDeltaX / 120;\n }\n\n // 默认 deltaY (ie)\n if (!deltaX && !deltaY) {\n deltaY = delta;\n }\n\n if (deltaX !== undefined) {\n /**\n * deltaX of mousewheel event\n * @property deltaX\n * @member Event.DomEvent.Object\n */\n event.deltaX = deltaX;\n }\n\n if (deltaY !== undefined) {\n /**\n * deltaY of mousewheel event\n * @property deltaY\n * @member Event.DomEvent.Object\n */\n event.deltaY = deltaY;\n }\n\n if (delta !== undefined) {\n /**\n * delta of mousewheel event\n * @property delta\n * @member Event.DomEvent.Object\n */\n event.delta = delta;\n }\n }\n}, {\n reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,\n props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],\n fix: function fix(event, nativeEvent) {\n var eventDoc = undefined;\n var doc = undefined;\n var body = undefined;\n var target = event.target;\n var button = nativeEvent.button;\n\n // Calculate pageX/Y if missing and clientX/Y available\n if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {\n eventDoc = target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // which for click: 1 === left; 2 === middle; 3 === right\n // do not use button\n if (!event.which && button !== undefined) {\n if (button & 1) {\n event.which = 1;\n } else if (button & 2) {\n event.which = 3;\n } else if (button & 4) {\n event.which = 2;\n } else {\n event.which = 0;\n }\n }\n\n // add relatedTarget, if necessary\n if (!event.relatedTarget && event.fromElement) {\n event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;\n }\n\n return event;\n }\n}];\n\nfunction retTrue() {\n return TRUE;\n}\n\nfunction retFalse() {\n return FALSE;\n}\n\nfunction DomEventObject(nativeEvent) {\n var type = nativeEvent.type;\n\n var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';\n\n _EventBaseObject2['default'].call(this);\n\n this.nativeEvent = nativeEvent;\n\n // in case dom event has been mark as default prevented by lower dom node\n var isDefaultPrevented = retFalse;\n if ('defaultPrevented' in nativeEvent) {\n isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;\n } else if ('getPreventDefault' in nativeEvent) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=691151\n isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;\n } else if ('returnValue' in nativeEvent) {\n isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;\n }\n\n this.isDefaultPrevented = isDefaultPrevented;\n\n var fixFns = [];\n var fixFn = undefined;\n var l = undefined;\n var prop = undefined;\n var props = commonProps.concat();\n\n eventNormalizers.forEach(function (normalizer) {\n if (type.match(normalizer.reg)) {\n props = props.concat(normalizer.props);\n if (normalizer.fix) {\n fixFns.push(normalizer.fix);\n }\n }\n });\n\n l = props.length;\n\n // clone properties of the original event object\n while (l) {\n prop = props[--l];\n this[prop] = nativeEvent[prop];\n }\n\n // fix target property, if necessary\n if (!this.target && isNative) {\n this.target = nativeEvent.srcElement || document; // srcElement might not be defined either\n }\n\n // check if target is a text node (safari)\n if (this.target && this.target.nodeType === 3) {\n this.target = this.target.parentNode;\n }\n\n l = fixFns.length;\n\n while (l) {\n fixFn = fixFns[--l];\n fixFn(this, nativeEvent);\n }\n\n this.timeStamp = nativeEvent.timeStamp || Date.now();\n}\n\nvar EventBaseObjectProto = _EventBaseObject2['default'].prototype;\n\n(0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {\n constructor: DomEventObject,\n\n preventDefault: function preventDefault() {\n var e = this.nativeEvent;\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n // otherwise set the returnValue property of the original event to FALSE (IE)\n e.returnValue = FALSE;\n }\n\n EventBaseObjectProto.preventDefault.call(this);\n },\n\n stopPropagation: function stopPropagation() {\n var e = this.nativeEvent;\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n } else {\n // otherwise set the cancelBubble property of the original event to TRUE (IE)\n e.cancelBubble = TRUE;\n }\n\n EventBaseObjectProto.stopPropagation.call(this);\n }\n});\n\nexports['default'] = DomEventObject;\nmodule.exports = exports['default'];","/**\n * @ignore\n * base event object for custom and dom event.\n * @author yiminghe@gmail.com\n */\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction returnFalse() {\n return false;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction EventBaseObject() {\n this.timeStamp = Date.now();\n this.target = undefined;\n this.currentTarget = undefined;\n}\n\nEventBaseObject.prototype = {\n isEventObject: 1,\n\n constructor: EventBaseObject,\n\n isDefaultPrevented: returnFalse,\n\n isPropagationStopped: returnFalse,\n\n isImmediatePropagationStopped: returnFalse,\n\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n },\n\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n },\n\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n // fixed 1.2\n // call stopPropagation implicitly\n this.stopPropagation();\n },\n\n halt: function halt(immediate) {\n if (immediate) {\n this.stopImmediatePropagation();\n } else {\n this.stopPropagation();\n }\n this.preventDefault();\n }\n};\n\nexports[\"default\"] = EventBaseObject;\nmodule.exports = exports[\"default\"];","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\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","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n","var api = require(\"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../css-loader/dist/cjs.js!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function insertAtTop(element) {\n\t\t\t\t document.head.insertBefore(element, document.head.firstElementChild);\n\t\t\t\t};\noptions.singleton = false;\n\nvar update = api(content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;","\"use strict\";\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 = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\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 && btoa) {\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 ';\n };\n};\n\n/* takes a css factory function and outputs an element factory */\nvar wrapAsElement = function wrapAsElement(css, names) {\n return function () {\n var _props;\n\n var props = (_props = {}, _props[SC_ATTR] = stringifyNames(names), _props[SC_VERSION_ATTR] = \"4.4.0\", _props);\n\n var nonce = getNonce();\n if (nonce) {\n // $FlowFixMe\n props.nonce = nonce;\n }\n\n // eslint-disable-next-line react/no-danger\n return React.createElement('style', _extends({}, props, { dangerouslySetInnerHTML: { __html: css() } }));\n };\n};\n\nvar getIdsFromMarkersFactory = function getIdsFromMarkersFactory(markers) {\n return function () {\n return Object.keys(markers);\n };\n};\n\n/* speedy tags utilise insertRule */\nvar makeSpeedyTag = function makeSpeedyTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var sizes = [];\n\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = sizes.length;\n sizes.push(0);\n resetIdNames(names, id);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var sheet = sheetForTag(el);\n var insertIndex = addUpUntilIndex(sizes, marker);\n\n var injectedRules = 0;\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = cssRules[i];\n var mayHaveImport = extractImport; /* @import rules are reordered to appear first */\n if (mayHaveImport && cssRule.indexOf('@import') !== -1) {\n importRules.push(cssRule);\n } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n mayHaveImport = false;\n injectedRules += 1;\n }\n }\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n\n sizes[marker] += injectedRules; /* add up no of injected rules */\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n // $FlowFixMe\n if (el.isConnected === false) return;\n\n var size = sizes[marker];\n var sheet = sheetForTag(el);\n var removalIndex = addUpUntilIndex(sizes, marker) - 1;\n deleteRules(sheet, removalIndex, size);\n sizes[marker] = 0;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var _sheetForTag = sheetForTag(el),\n cssRules = _sheetForTag.cssRules;\n\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += makeTextMarker(id);\n var marker = markers[id];\n var end = addUpUntilIndex(sizes, marker);\n var size = sizes[marker];\n for (var i = end - size; i < end; i += 1) {\n var rule = cssRules[i];\n if (rule !== undefined) {\n str += rule.cssText;\n }\n }\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeTextNode = function makeTextNode(targetDocument, id) {\n return targetDocument.createTextNode(makeTextMarker(id));\n};\n\nvar makeBrowserTag = function makeBrowserTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n\n var extractImport = getImportRuleTag !== undefined;\n\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = makeTextNode(el.ownerDocument, id);\n el.appendChild(markers[id]);\n names[id] = Object.create(null);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var rule = cssRules[i];\n var mayHaveImport = extractImport;\n if (mayHaveImport && rule.indexOf('@import') !== -1) {\n importRules.push(rule);\n } else {\n mayHaveImport = false;\n var separator = i === cssRulesSize - 1 ? '' : ' ';\n marker.appendData('' + rule + separator);\n }\n }\n\n addNameForId(names, id, name);\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n\n /* create new empty text node and replace the current one */\n var newMarker = makeTextNode(el.ownerDocument, id);\n el.replaceChild(newMarker, marker);\n markers[id] = newMarker;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += markers[id].data;\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeServerTag = function makeServerTag(namesArg, markersArg) {\n var names = namesArg === undefined ? Object.create(null) : namesArg;\n var markers = markersArg === undefined ? Object.create(null) : markersArg;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n return markers[id] = [''];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n marker[0] += cssRules.join(' ');\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n marker[0] = '';\n resetIdNames(names, id);\n };\n\n var css = function css() {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n var cssForId = markers[id][0];\n if (cssForId) {\n str += makeTextMarker(id) + cssForId;\n }\n }\n return str;\n };\n\n var clone = function clone() {\n var namesClone = cloneNames(names);\n var markersClone = Object.create(null);\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n markersClone[id] = [markers[id][0]];\n }\n\n return makeServerTag(namesClone, markersClone);\n };\n\n var tag = {\n clone: clone,\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: null,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n\n return tag;\n};\n\nvar makeTag = function makeTag(target, tagEl, forceServer, insertBefore, getImportRuleTag) {\n if (IS_BROWSER && !forceServer) {\n var el = makeStyleTag(target, tagEl, insertBefore);\n\n if (DISABLE_SPEEDY) {\n return makeBrowserTag(el, getImportRuleTag);\n } else {\n return makeSpeedyTag(el, getImportRuleTag);\n }\n }\n\n return makeServerTag();\n};\n\nvar rehydrate = function rehydrate(tag, els, extracted) {\n /* add all extracted components to the new tag */\n for (var i = 0, len = extracted.length; i < len; i += 1) {\n var _extracted$i = extracted[i],\n componentId = _extracted$i.componentId,\n cssFromDOM = _extracted$i.cssFromDOM;\n\n var cssRules = splitByRules(cssFromDOM);\n tag.insertRules(componentId, cssRules);\n }\n\n /* remove old HTMLStyleElements, since they have been rehydrated */\n for (var _i = 0, _len = els.length; _i < _len; _i += 1) {\n var el = els[_i];\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n};\n\n// \n\nvar SPLIT_REGEX = /\\s+/;\n\n/* determine the maximum number of components before tags are sharded */\nvar MAX_SIZE = void 0;\nif (IS_BROWSER) {\n /* in speedy mode we can keep a lot more rules in a sheet before a slowdown can be expected */\n MAX_SIZE = DISABLE_SPEEDY ? 40 : 1000;\n} else {\n /* for servers we do not need to shard at all */\n MAX_SIZE = -1;\n}\n\nvar sheetRunningId = 0;\nvar master = void 0;\n\nvar StyleSheet = function () {\n\n /* a map from ids to tags */\n\n /* deferred rules for a given id */\n\n /* this is used for not reinjecting rules via hasNameForId() */\n\n /* when rules for an id are removed using remove() we have to ignore rehydratedNames for it */\n\n /* a list of tags belonging to this StyleSheet */\n\n /* a tag for import rules */\n\n /* current capacity until a new tag must be created */\n\n /* children (aka clones) of this StyleSheet inheriting all and future injections */\n\n function StyleSheet() {\n var _this = this;\n\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : IS_BROWSER ? document.head : null;\n var forceServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n classCallCheck(this, StyleSheet);\n\n this.getImportRuleTag = function () {\n var importRuleTag = _this.importRuleTag;\n\n if (importRuleTag !== undefined) {\n return importRuleTag;\n }\n\n var firstTag = _this.tags[0];\n var insertBefore = true;\n\n return _this.importRuleTag = makeTag(_this.target, firstTag ? firstTag.styleTag : null, _this.forceServer, insertBefore);\n };\n\n sheetRunningId += 1;\n this.id = sheetRunningId;\n this.forceServer = forceServer;\n this.target = forceServer ? null : target;\n this.tagMap = {};\n this.deferred = {};\n this.rehydratedNames = {};\n this.ignoreRehydratedNames = {};\n this.tags = [];\n this.capacity = 1;\n this.clones = [];\n }\n\n /* rehydrate all SSR'd style tags */\n\n\n StyleSheet.prototype.rehydrate = function rehydrate$$1() {\n if (!IS_BROWSER || this.forceServer) return this;\n\n var els = [];\n var extracted = [];\n var isStreamed = false;\n\n /* retrieve all of our SSR style elements from the DOM */\n var nodes = document.querySelectorAll('style[' + SC_ATTR + '][' + SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"]');\n\n var nodesSize = nodes.length;\n\n /* abort rehydration if no previous style tags were found */\n if (!nodesSize) return this;\n\n for (var i = 0; i < nodesSize; i += 1) {\n var el = nodes[i];\n\n /* check if style tag is a streamed tag */\n if (!isStreamed) isStreamed = !!el.getAttribute(SC_STREAM_ATTR);\n\n /* retrieve all component names */\n var elNames = (el.getAttribute(SC_ATTR) || '').trim().split(SPLIT_REGEX);\n var elNamesSize = elNames.length;\n for (var j = 0, name; j < elNamesSize; j += 1) {\n name = elNames[j];\n /* add rehydrated name to sheet to avoid re-adding styles */\n this.rehydratedNames[name] = true;\n }\n\n /* extract all components and their CSS */\n extracted.push.apply(extracted, extractComps(el.textContent));\n\n /* store original HTMLStyleElement */\n els.push(el);\n }\n\n /* abort rehydration if nothing was extracted */\n var extractedSize = extracted.length;\n if (!extractedSize) return this;\n\n /* create a tag to be used for rehydration */\n var tag = this.makeTag(null);\n\n rehydrate(tag, els, extracted);\n\n /* reset capacity and adjust MAX_SIZE by the initial size of the rehydration */\n this.capacity = Math.max(1, MAX_SIZE - extractedSize);\n this.tags.push(tag);\n\n /* retrieve all component ids */\n for (var _j = 0; _j < extractedSize; _j += 1) {\n this.tagMap[extracted[_j].componentId] = tag;\n }\n\n return this;\n };\n\n /* retrieve a \"master\" instance of StyleSheet which is typically used when no other is available\n * The master StyleSheet is targeted by createGlobalStyle, keyframes, and components outside of any\n * StyleSheetManager's context */\n\n\n /* reset the internal \"master\" instance */\n StyleSheet.reset = function reset() {\n var forceServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n master = new StyleSheet(undefined, forceServer).rehydrate();\n };\n\n /* adds \"children\" to the StyleSheet that inherit all of the parents' rules\n * while their own rules do not affect the parent */\n\n\n StyleSheet.prototype.clone = function clone() {\n var sheet = new StyleSheet(this.target, this.forceServer);\n\n /* add to clone array */\n this.clones.push(sheet);\n\n /* clone all tags */\n sheet.tags = this.tags.map(function (tag) {\n var ids = tag.getIds();\n var newTag = tag.clone();\n\n /* reconstruct tagMap */\n for (var i = 0; i < ids.length; i += 1) {\n sheet.tagMap[ids[i]] = newTag;\n }\n\n return newTag;\n });\n\n /* clone other maps */\n sheet.rehydratedNames = _extends({}, this.rehydratedNames);\n sheet.deferred = _extends({}, this.deferred);\n\n return sheet;\n };\n\n /* force StyleSheet to create a new tag on the next injection */\n\n\n StyleSheet.prototype.sealAllTags = function sealAllTags() {\n this.capacity = 1;\n\n this.tags.forEach(function (tag) {\n // eslint-disable-next-line no-param-reassign\n tag.sealed = true;\n });\n };\n\n StyleSheet.prototype.makeTag = function makeTag$$1(tag) {\n var lastEl = tag ? tag.styleTag : null;\n var insertBefore = false;\n\n return makeTag(this.target, lastEl, this.forceServer, insertBefore, this.getImportRuleTag);\n };\n\n /* get a tag for a given componentId, assign the componentId to one, or shard */\n StyleSheet.prototype.getTagForId = function getTagForId(id) {\n /* simply return a tag, when the componentId was already assigned one */\n var prev = this.tagMap[id];\n if (prev !== undefined && !prev.sealed) {\n return prev;\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n /* shard (create a new tag) if the tag is exhausted (See MAX_SIZE) */\n this.capacity -= 1;\n\n if (this.capacity === 0) {\n this.capacity = MAX_SIZE;\n tag = this.makeTag(tag);\n this.tags.push(tag);\n }\n\n return this.tagMap[id] = tag;\n };\n\n /* mainly for createGlobalStyle to check for its id */\n\n\n StyleSheet.prototype.hasId = function hasId(id) {\n return this.tagMap[id] !== undefined;\n };\n\n /* caching layer checking id+name to already have a corresponding tag and injected rules */\n\n\n StyleSheet.prototype.hasNameForId = function hasNameForId(id, name) {\n /* exception for rehydrated names which are checked separately */\n if (this.ignoreRehydratedNames[id] === undefined && this.rehydratedNames[name]) {\n return true;\n }\n\n var tag = this.tagMap[id];\n return tag !== undefined && tag.hasNameForId(id, name);\n };\n\n /* registers a componentId and registers it on its tag */\n\n\n StyleSheet.prototype.deferredInject = function deferredInject(id, cssRules) {\n /* don't inject when the id is already registered */\n if (this.tagMap[id] !== undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].deferredInject(id, cssRules);\n }\n\n this.getTagForId(id).insertMarker(id);\n this.deferred[id] = cssRules;\n };\n\n /* injects rules for a given id with a name that will need to be cached */\n\n\n StyleSheet.prototype.inject = function inject(id, cssRules, name) {\n var clones = this.clones;\n\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].inject(id, cssRules, name);\n }\n\n var tag = this.getTagForId(id);\n\n /* add deferred rules for component */\n if (this.deferred[id] !== undefined) {\n // Combine passed cssRules with previously deferred CSS rules\n // NOTE: We cannot mutate the deferred array itself as all clones\n // do the same (see clones[i].inject)\n var rules = this.deferred[id].concat(cssRules);\n tag.insertRules(id, rules, name);\n\n this.deferred[id] = undefined;\n } else {\n tag.insertRules(id, cssRules, name);\n }\n };\n\n /* removes all rules for a given id, which doesn't remove its marker but resets it */\n\n\n StyleSheet.prototype.remove = function remove(id) {\n var tag = this.tagMap[id];\n if (tag === undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].remove(id);\n }\n\n /* remove all rules from the tag */\n tag.removeRules(id);\n\n /* ignore possible rehydrated names */\n this.ignoreRehydratedNames[id] = true;\n\n /* delete possible deferred rules */\n this.deferred[id] = undefined;\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n var id = this.id;\n\n\n return this.tags.map(function (tag, i) {\n var key = 'sc-' + id + '-' + i;\n return cloneElement(tag.toElement(), { key: key });\n });\n };\n\n createClass(StyleSheet, null, [{\n key: 'master',\n get: function get$$1() {\n return master || (master = new StyleSheet().rehydrate());\n }\n\n /* NOTE: This is just for backwards-compatibility with jest-styled-components */\n\n }, {\n key: 'instance',\n get: function get$$1() {\n return StyleSheet.master;\n }\n }]);\n return StyleSheet;\n}();\n\n// \n\nvar Keyframes = function () {\n function Keyframes(name, rules) {\n var _this = this;\n\n classCallCheck(this, Keyframes);\n\n this.inject = function (styleSheet) {\n if (!styleSheet.hasNameForId(_this.id, _this.name)) {\n styleSheet.inject(_this.id, _this.rules, _this.name);\n }\n };\n\n this.toString = function () {\n throw new StyledComponentsError(12, String(_this.name));\n };\n\n this.name = name;\n this.rules = rules;\n\n this.id = 'sc-keyframes-' + name;\n }\n\n Keyframes.prototype.getName = function getName() {\n return this.name;\n };\n\n return Keyframes;\n}();\n\n// \n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\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 * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return string.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\n// \n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nfunction addUnitIfNeeded(name, value) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n}\n\n// \n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nvar isFalsish = function isFalsish(chunk) {\n return chunk === undefined || chunk === null || chunk === false || chunk === '';\n};\n\nvar objToCssArray = function objToCssArray(obj, prevKey) {\n var rules = [];\n var keys = Object.keys(obj);\n\n keys.forEach(function (key) {\n if (!isFalsish(obj[key])) {\n if (isPlainObject(obj[key])) {\n rules.push.apply(rules, objToCssArray(obj[key], key));\n\n return rules;\n } else if (isFunction(obj[key])) {\n rules.push(hyphenateStyleName(key) + ':', obj[key], ';');\n\n return rules;\n }\n rules.push(hyphenateStyleName(key) + ': ' + addUnitIfNeeded(key, obj[key]) + ';');\n }\n return rules;\n });\n\n return prevKey ? [prevKey + ' {'].concat(rules, ['}']) : rules;\n};\n\nfunction flatten(chunk, executionContext, styleSheet) {\n if (Array.isArray(chunk)) {\n var ruleSet = [];\n\n for (var i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet);\n\n if (result === null) continue;else if (Array.isArray(result)) ruleSet.push.apply(ruleSet, result);else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return null;\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return '.' + chunk.styledComponentId;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n var _result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(_result)) {\n // eslint-disable-next-line no-console\n console.warn(getComponentName(chunk) + ' is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.');\n }\n\n return flatten(_result, executionContext, styleSheet);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet);\n return chunk.getName();\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n}\n\n// \n\nfunction css(styles) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return flatten(interleave(EMPTY_ARRAY, [styles].concat(interpolations)));\n }\n\n // $FlowFixMe\n return flatten(interleave(styles, interpolations));\n}\n\n// \n\nfunction constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n if (!isValidElementType(tag)) {\n throw new StyledComponentsError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n var templateFunction = function templateFunction() {\n return componentConstructor(tag, options, css.apply(undefined, arguments));\n };\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean)\n }));\n };\n\n return templateFunction;\n}\n\n// \n// Source: https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash(c) {\n for (var e = c.length | 0, a = e | 0, d = 0, b; e >= 4;) {\n b = c.charCodeAt(d) & 255 | (c.charCodeAt(++d) & 255) << 8 | (c.charCodeAt(++d) & 255) << 16 | (c.charCodeAt(++d) & 255) << 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), b ^= b >>> 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16) ^ b, e -= 4, ++d;\n }\n switch (e) {\n case 3:\n a ^= (c.charCodeAt(d + 2) & 255) << 16;\n case 2:\n a ^= (c.charCodeAt(d + 1) & 255) << 8;\n case 1:\n a ^= c.charCodeAt(d) & 255, a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n }\n a ^= a >>> 13;\n a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n return (a ^ a >>> 15) >>> 0;\n}\n\n// \n/* eslint-disable no-bitwise */\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nvar charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nvar getAlphabeticChar = function getAlphabeticChar(code) {\n return String.fromCharCode(code + (code > 25 ? 39 : 97));\n};\n\n/* input a number, usually a hash and convert it to base-52 */\nfunction generateAlphabeticName(code) {\n var name = '';\n var x = void 0;\n\n /* get a char and divide by alphabet-length */\n for (x = code; x > charsLength; x = Math.floor(x / charsLength)) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return getAlphabeticChar(x % charsLength) + name;\n}\n\n// \n\nfunction hasFunctionObjectKey(obj) {\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in obj) {\n if (isFunction(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isStaticRules(rules, attrs) {\n for (var i = 0; i < rules.length; i += 1) {\n var rule = rules[i];\n\n // recursive case\n if (Array.isArray(rule) && !isStaticRules(rule, attrs)) {\n return false;\n } else if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n if (attrs.some(function (x) {\n return isFunction(x) || hasFunctionObjectKey(x);\n })) return false;\n\n return true;\n}\n\n// \n\n/* combines hashStr (murmurhash) and nameGenerator for convenience */\nvar hasher = function hasher(str) {\n return generateAlphabeticName(murmurhash(str));\n};\n\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\n\nvar ComponentStyle = function () {\n function ComponentStyle(rules, attrs, componentId) {\n classCallCheck(this, ComponentStyle);\n\n this.rules = rules;\n this.isStatic = process.env.NODE_ENV === 'production' && isStaticRules(rules, attrs);\n this.componentId = componentId;\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n\n\n ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) {\n var isStatic = this.isStatic,\n componentId = this.componentId,\n lastClassName = this.lastClassName;\n\n if (IS_BROWSER && isStatic && typeof lastClassName === 'string' && styleSheet.hasNameForId(componentId, lastClassName)) {\n return lastClassName;\n }\n\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var name = hasher(this.componentId + flatCSS.join(''));\n if (!styleSheet.hasNameForId(componentId, name)) {\n styleSheet.inject(this.componentId, stringifyRules(flatCSS, '.' + name, undefined, componentId), name);\n }\n\n this.lastClassName = name;\n return name;\n };\n\n ComponentStyle.generateName = function generateName(str) {\n return hasher(str);\n };\n\n return ComponentStyle;\n}();\n\n// \n\nvar LIMIT = 200;\n\nvar createWarnTooManyClasses = (function (displayName) {\n var generatedClasses = {};\n var warningSeen = false;\n\n return function (className) {\n if (!warningSeen) {\n generatedClasses[className] = true;\n if (Object.keys(generatedClasses).length >= LIMIT) {\n // Unable to find latestRule in test environment.\n /* eslint-disable no-console, prefer-template */\n console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \\n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\\n' + 'Example:\\n' + ' const Component = styled.div.attrs(props => ({\\n' + ' style: {\\n' + ' background: props.background,\\n' + ' },\\n' + ' }))`width: 100%;`\\n\\n' + ' ');\n warningSeen = true;\n generatedClasses = {};\n }\n }\n };\n});\n\n// \n\nvar determineTheme = (function (props, fallbackTheme) {\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types, flowtype-errors/show-errors */\n var isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;\n /* eslint-enable */\n\n return theme;\n});\n\n// \nvar escapeRegex = /[[\\].#*$><+~=|^:(),\"'`-]+/g;\nvar dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nfunction escape(str) {\n return str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n\n// \n\nfunction isTag(target) {\n return typeof target === 'string' && (process.env.NODE_ENV !== 'production' ? target.charAt(0) === target.charAt(0).toLowerCase() : true);\n}\n\n// \n\nfunction generateDisplayName(target) {\n // $FlowFixMe\n return isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')';\n}\n\nvar _TYPE_STATICS;\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDerivedStateFromProps: true,\n propTypes: true,\n type: true\n};\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};\n\nvar TYPE_STATICS = (_TYPE_STATICS = {}, _TYPE_STATICS[ForwardRef] = {\n $$typeof: true,\n render: true\n}, _TYPE_STATICS);\n\nvar defineProperty$1 = Object.defineProperty,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n _Object$getOwnPropert = Object.getOwnPropertySymbols,\n getOwnPropertySymbols = _Object$getOwnPropert === undefined ? function () {\n return [];\n} : _Object$getOwnPropert,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getPrototypeOf = Object.getPrototypeOf,\n objectPrototype = Object.prototype;\nvar arrayPrototype = Array.prototype;\n\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n\n var keys = arrayPrototype.concat(getOwnPropertyNames(sourceComponent),\n // $FlowFixMe\n getOwnPropertySymbols(sourceComponent));\n\n var targetStatics = TYPE_STATICS[targetComponent.$$typeof] || REACT_STATICS;\n\n var sourceStatics = TYPE_STATICS[sourceComponent.$$typeof] || REACT_STATICS;\n\n var i = keys.length;\n var descriptor = void 0;\n var key = void 0;\n\n // eslint-disable-next-line no-plusplus\n while (i--) {\n key = keys[i];\n\n if (\n // $FlowFixMe\n !KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) &&\n // $FlowFixMe\n !(targetStatics && targetStatics[key])) {\n descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n if (descriptor) {\n try {\n // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {\n /* fail silently */\n }\n }\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\n// \nfunction isDerivedReactComponent(fn) {\n return !!(fn && fn.prototype && fn.prototype.isReactComponent);\n}\n\n// \n// Helper to call a given function, only once\nvar once = (function (cb) {\n var called = false;\n\n return function () {\n if (!called) {\n called = true;\n cb.apply(undefined, arguments);\n }\n };\n});\n\n// \n\nvar ThemeContext = createContext();\n\nvar ThemeConsumer = ThemeContext.Consumer;\n\n/**\n * Provide a theme to an entire react component tree via context\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider(props) {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext.bind(_this));\n _this.renderInner = _this.renderInner.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) return null;\n\n return React.createElement(\n ThemeContext.Consumer,\n null,\n this.renderInner\n );\n };\n\n ThemeProvider.prototype.renderInner = function renderInner(outerTheme) {\n var context = this.getContext(this.props.theme, outerTheme);\n\n return React.createElement(\n ThemeContext.Provider,\n { value: context },\n this.props.children\n );\n };\n\n /**\n * Get the theme from the props, supporting both (outerTheme) => {}\n * as well as object notation\n */\n\n\n ThemeProvider.prototype.getTheme = function getTheme(theme, outerTheme) {\n if (isFunction(theme)) {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme === null || Array.isArray(mergedTheme) || (typeof mergedTheme === 'undefined' ? 'undefined' : _typeof(mergedTheme)) !== 'object')) {\n throw new StyledComponentsError(7);\n }\n\n return mergedTheme;\n }\n\n if (theme === null || Array.isArray(theme) || (typeof theme === 'undefined' ? 'undefined' : _typeof(theme)) !== 'object') {\n throw new StyledComponentsError(8);\n }\n\n return _extends({}, outerTheme, theme);\n };\n\n ThemeProvider.prototype.getContext = function getContext(theme, outerTheme) {\n return this.getTheme(theme, outerTheme);\n };\n\n return ThemeProvider;\n}(Component);\n\n// \n\nvar CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nvar ServerStyleSheet = function () {\n function ServerStyleSheet() {\n classCallCheck(this, ServerStyleSheet);\n\n /* The master sheet might be reset, so keep a reference here */\n this.masterSheet = StyleSheet.master;\n this.instance = this.masterSheet.clone();\n this.sealed = false;\n }\n\n /**\n * Mark the ServerStyleSheet as being fully emitted and manually GC it from the\n * StyleSheet singleton.\n */\n\n\n ServerStyleSheet.prototype.seal = function seal() {\n if (!this.sealed) {\n /* Remove sealed StyleSheets from the master sheet */\n var index = this.masterSheet.clones.indexOf(this.instance);\n this.masterSheet.clones.splice(index, 1);\n this.sealed = true;\n }\n };\n\n ServerStyleSheet.prototype.collectStyles = function collectStyles(children) {\n if (this.sealed) {\n throw new StyledComponentsError(2);\n }\n\n return React.createElement(\n StyleSheetManager,\n { sheet: this.instance },\n children\n );\n };\n\n ServerStyleSheet.prototype.getStyleTags = function getStyleTags() {\n this.seal();\n return this.instance.toHTML();\n };\n\n ServerStyleSheet.prototype.getStyleElement = function getStyleElement() {\n this.seal();\n return this.instance.toReactElements();\n };\n\n ServerStyleSheet.prototype.interleaveWithNodeStream = function interleaveWithNodeStream(readableStream) {\n var _this = this;\n\n {\n throw new StyledComponentsError(3);\n }\n\n /* the tag index keeps track of which tags have already been emitted */\n var instance = this.instance;\n\n var instanceTagIndex = 0;\n\n var streamAttr = SC_STREAM_ATTR + '=\"true\"';\n\n var transformer = new stream.Transform({\n transform: function appendStyleChunks(chunk, /* encoding */_, callback) {\n var tags = instance.tags;\n\n var html = '';\n\n /* retrieve html for each new style tag */\n for (; instanceTagIndex < tags.length; instanceTagIndex += 1) {\n var tag = tags[instanceTagIndex];\n html += tag.toHTML(streamAttr);\n }\n\n /* force our StyleSheets to emit entirely new tags */\n instance.sealAllTags();\n\n var renderedHtml = chunk.toString();\n\n /* prepend style html to chunk, unless the start of the chunk is a closing tag in which case append right after that */\n if (CLOSING_TAG_R.test(renderedHtml)) {\n var endOfClosingTag = renderedHtml.indexOf('>');\n\n this.push(renderedHtml.slice(0, endOfClosingTag + 1) + html + renderedHtml.slice(endOfClosingTag + 1));\n } else this.push(html + renderedHtml);\n\n callback();\n }\n });\n\n readableStream.on('end', function () {\n return _this.seal();\n });\n\n readableStream.on('error', function (err) {\n _this.seal();\n\n // forward the error to the transform stream\n transformer.emit('error', err);\n });\n\n return readableStream.pipe(transformer);\n };\n\n return ServerStyleSheet;\n}();\n\n// \n\nvar StyleSheetContext = createContext();\nvar StyleSheetConsumer = StyleSheetContext.Consumer;\n\nvar StyleSheetManager = function (_Component) {\n inherits(StyleSheetManager, _Component);\n\n function StyleSheetManager(props) {\n classCallCheck(this, StyleSheetManager);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext);\n return _this;\n }\n\n StyleSheetManager.prototype.getContext = function getContext(sheet, target) {\n if (sheet) {\n return sheet;\n } else if (target) {\n return new StyleSheet(target);\n } else {\n throw new StyledComponentsError(4);\n }\n };\n\n StyleSheetManager.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n sheet = _props.sheet,\n target = _props.target;\n\n\n return React.createElement(\n StyleSheetContext.Provider,\n { value: this.getContext(sheet, target) },\n process.env.NODE_ENV !== 'production' ? React.Children.only(children) : children\n );\n };\n\n return StyleSheetManager;\n}(Component);\nprocess.env.NODE_ENV !== \"production\" ? StyleSheetManager.propTypes = {\n sheet: PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]),\n\n target: PropTypes.shape({\n appendChild: PropTypes.func.isRequired\n })\n} : void 0;\n\n// \n\nvar THEME_PROP_REGEX = /\\.theme[.[]/;\nvar identifiers = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(_ComponentStyle, _displayName, parentComponentId) {\n var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName);\n\n /**\n * This ensures uniqueness if two components happen to share\n * the same displayName.\n */\n var nr = (identifiers[displayName] || 0) + 1;\n identifiers[displayName] = nr;\n\n var componentId = displayName + '-' + _ComponentStyle.generateName(displayName + nr);\n\n return parentComponentId ? parentComponentId + '-' + componentId : componentId;\n}\n\n// $FlowFixMe\n\nvar StyledComponent = function (_Component) {\n inherits(StyledComponent, _Component);\n\n function StyledComponent() {\n classCallCheck(this, StyledComponent);\n\n var _this = possibleConstructorReturn(this, _Component.call(this));\n\n _this.attrs = {};\n\n _this.renderOuter = _this.renderOuter.bind(_this);\n _this.renderInner = _this.renderInner.bind(_this);\n\n if (process.env.NODE_ENV !== 'production') {\n _this.warnInnerRef = once(function (displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('The \"innerRef\" API has been removed in styled-components v4 in favor of React 16 ref forwarding, use \"ref\" instead like a typical component. \"innerRef\" was detected on component \"' + displayName + '\".')\n );\n });\n\n _this.warnAttrsFnObjectKeyDeprecated = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('Functions as object-form attrs({}) keys are now deprecated and will be removed in a future version of styled-components. Switch to the new attrs(props => ({})) syntax instead for easier and more powerful composition. The attrs key in question is \"' + key + '\" on component \"' + displayName + '\".', '\\n ' + new Error().stack)\n );\n });\n\n _this.warnNonStyledComponentAttrsObjectKey = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('It looks like you\\'ve used a non styled-component as the value for the \"' + key + '\" prop in an object-form attrs constructor of \"' + displayName + '\".\\n' + 'You should use the new function-form attrs constructor which avoids this issue: attrs(props => ({ yourStuff }))\\n' + \"To continue using the deprecated object syntax, you'll need to wrap your component prop in a function to make it available inside the styled component (you'll still get the deprecation warning though.)\\n\" + ('For example, { ' + key + ': () => InnerComponent } instead of { ' + key + ': InnerComponent }'))\n );\n });\n }\n return _this;\n }\n\n StyledComponent.prototype.render = function render() {\n return React.createElement(\n StyleSheetConsumer,\n null,\n this.renderOuter\n );\n };\n\n StyledComponent.prototype.renderOuter = function renderOuter() {\n var styleSheet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : StyleSheet.master;\n\n this.styleSheet = styleSheet;\n\n // No need to subscribe a static component to theme changes, it won't change anything\n if (this.props.forwardedComponent.componentStyle.isStatic) return this.renderInner();\n\n return React.createElement(\n ThemeConsumer,\n null,\n this.renderInner\n );\n };\n\n StyledComponent.prototype.renderInner = function renderInner(theme) {\n var _props$forwardedCompo = this.props.forwardedComponent,\n componentStyle = _props$forwardedCompo.componentStyle,\n defaultProps = _props$forwardedCompo.defaultProps,\n displayName = _props$forwardedCompo.displayName,\n foldedComponentIds = _props$forwardedCompo.foldedComponentIds,\n styledComponentId = _props$forwardedCompo.styledComponentId,\n target = _props$forwardedCompo.target,\n usesTheme = _props$forwardedCompo.usesTheme;\n\n\n var generatedClassName = void 0;\n var rawTheme = void 0;\n\n if (componentStyle.isStatic) {\n generatedClassName = this.generateAndInjectStyles(EMPTY_OBJECT, this.props);\n } else {\n rawTheme = determineTheme(this.props, theme, defaultProps);\n generatedClassName = this.generateAndInjectStyles(rawTheme || EMPTY_OBJECT, this.props);\n\n if (process.env.NODE_ENV !== 'production' && usesTheme && !rawTheme) {\n console.error('Component \\'' +\n // $FlowFixMe\n displayName + '\\' (.' + styledComponentId + ') references the \\'theme\\' prop in its styles but no theme was provided via prop or .');\n }\n }\n\n var elementToBeCreated = this.props.as || this.attrs.as || target;\n var isTargetTag = isTag(elementToBeCreated);\n\n var propsForElement = {};\n var computedProps = _extends({}, this.props, this.attrs);\n\n var key = void 0;\n // eslint-disable-next-line guard-for-in\n for (key in computedProps) {\n if (process.env.NODE_ENV !== 'production' && key === 'innerRef' && isTargetTag) {\n this.warnInnerRef(displayName);\n }\n\n if (key === 'forwardedComponent' || key === 'as') {\n continue;\n } else if (key === 'forwardedRef') propsForElement.ref = computedProps[key];else if (key === 'forwardedAs') propsForElement.as = computedProps[key];else if (!isTargetTag || validAttr(key)) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (this.props.style && this.attrs.style) {\n propsForElement.style = _extends({}, this.attrs.style, this.props.style);\n }\n\n propsForElement.className = Array.prototype.concat(foldedComponentIds, styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : null, this.props.className, this.attrs.className).filter(Boolean).join(' ');\n\n return createElement(elementToBeCreated, propsForElement);\n };\n\n StyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props, attrs) {\n var _this2 = this;\n\n var context = _extends({}, props, { theme: theme });\n\n if (!attrs.length) return context;\n\n this.attrs = {};\n\n attrs.forEach(function (attrDef) {\n var resolvedAttrDef = attrDef;\n var attrDefWasFn = false;\n var attr = void 0;\n var key = void 0;\n\n if (isFunction(resolvedAttrDef)) {\n // $FlowFixMe\n resolvedAttrDef = resolvedAttrDef(context);\n attrDefWasFn = true;\n }\n\n /* eslint-disable guard-for-in */\n // $FlowFixMe\n for (key in resolvedAttrDef) {\n attr = resolvedAttrDef[key];\n\n if (!attrDefWasFn) {\n if (isFunction(attr) && !isDerivedReactComponent(attr) && !isStyledComponent(attr)) {\n if (process.env.NODE_ENV !== 'production') {\n _this2.warnAttrsFnObjectKeyDeprecated(key, props.forwardedComponent.displayName);\n }\n\n attr = attr(context);\n\n if (process.env.NODE_ENV !== 'production' && React.isValidElement(attr)) {\n _this2.warnNonStyledComponentAttrsObjectKey(key, props.forwardedComponent.displayName);\n }\n }\n }\n\n _this2.attrs[key] = attr;\n context[key] = attr;\n }\n /* eslint-enable */\n });\n\n return context;\n };\n\n StyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var _props$forwardedCompo2 = props.forwardedComponent,\n attrs = _props$forwardedCompo2.attrs,\n componentStyle = _props$forwardedCompo2.componentStyle,\n warnTooManyClasses = _props$forwardedCompo2.warnTooManyClasses;\n\n // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n\n if (componentStyle.isStatic && !attrs.length) {\n return componentStyle.generateAndInjectStyles(EMPTY_OBJECT, this.styleSheet);\n }\n\n var className = componentStyle.generateAndInjectStyles(this.buildExecutionContext(theme, props, attrs), this.styleSheet);\n\n if (process.env.NODE_ENV !== 'production' && warnTooManyClasses) warnTooManyClasses(className);\n\n return className;\n };\n\n return StyledComponent;\n}(Component);\n\nfunction createStyledComponent(target, options, rules) {\n var isTargetStyledComp = isStyledComponent(target);\n var isClass = !isTag(target);\n\n var _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? generateDisplayName(target) : _options$displayName,\n _options$componentId = options.componentId,\n componentId = _options$componentId === undefined ? generateId(ComponentStyle, options.displayName, options.parentComponentId) : _options$componentId,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? StyledComponent : _options$ParentCompon,\n _options$attrs = options.attrs,\n attrs = _options$attrs === undefined ? EMPTY_ARRAY : _options$attrs;\n\n\n var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n var finalAttrs =\n // $FlowFixMe\n isTargetStyledComp && target.attrs ? Array.prototype.concat(target.attrs, attrs).filter(Boolean) : attrs;\n\n var componentStyle = new ComponentStyle(isTargetStyledComp ? // fold the underlying StyledComponent rules up (implicit extend)\n // $FlowFixMe\n target.componentStyle.rules.concat(rules) : rules, finalAttrs, styledComponentId);\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n var WrappedStyledComponent = void 0;\n var forwardRef = function forwardRef(props, ref) {\n return React.createElement(ParentComponent, _extends({}, props, { forwardedComponent: WrappedStyledComponent, forwardedRef: ref }));\n };\n forwardRef.displayName = displayName;\n WrappedStyledComponent = React.forwardRef(forwardRef);\n WrappedStyledComponent.displayName = displayName;\n\n // $FlowFixMe\n WrappedStyledComponent.attrs = finalAttrs;\n // $FlowFixMe\n WrappedStyledComponent.componentStyle = componentStyle;\n\n // $FlowFixMe\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp ? // $FlowFixMe\n Array.prototype.concat(target.foldedComponentIds, target.styledComponentId) : EMPTY_ARRAY;\n\n // $FlowFixMe\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n // $FlowFixMe\n WrappedStyledComponent.target = isTargetStyledComp ? target.target : target;\n\n // $FlowFixMe\n WrappedStyledComponent.withComponent = function withComponent(tag) {\n var previousComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['componentId']);\n\n\n var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag)));\n\n var newOptions = _extends({}, optionsToCopy, {\n attrs: finalAttrs,\n componentId: newComponentId,\n ParentComponent: ParentComponent\n });\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n // $FlowFixMe\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get: function get$$1() {\n return this._foldedDefaultProps;\n },\n set: function set$$1(obj) {\n // $FlowFixMe\n this._foldedDefaultProps = isTargetStyledComp ? merge(target.defaultProps, obj) : obj;\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n WrappedStyledComponent.usesTheme = componentStyle.rules.some(function (x) {\n return isFunction(x) && THEME_PROP_REGEX.test(x.toString());\n });\n\n // $FlowFixMe\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName);\n }\n\n // $FlowFixMe\n WrappedStyledComponent.toString = function () {\n return '.' + WrappedStyledComponent.styledComponentId;\n };\n\n if (isClass) {\n hoistNonReactStatics(WrappedStyledComponent, target, {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n styledComponentId: true,\n target: true,\n withComponent: true\n });\n }\n\n return WrappedStyledComponent;\n}\n\n// \n// Thanks to ReactDOMFactories for this handy list!\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr',\n\n// SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'marker', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// \n\nvar styled = function styled(tag) {\n return constructWithOptions(createStyledComponent, tag);\n};\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(function (domElement) {\n styled[domElement] = styled(domElement);\n});\n\n// \n\nvar GlobalStyle = function () {\n function GlobalStyle(rules, componentId) {\n classCallCheck(this, GlobalStyle);\n\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules, EMPTY_ARRAY);\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n GlobalStyle.prototype.createStyles = function createStyles(executionContext, styleSheet) {\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var css = stringifyRules(flatCSS, '');\n\n styleSheet.inject(this.componentId, css);\n };\n\n GlobalStyle.prototype.removeStyles = function removeStyles(styleSheet) {\n var componentId = this.componentId;\n\n if (styleSheet.hasId(componentId)) {\n styleSheet.remove(componentId);\n }\n };\n\n // TODO: overwrite in-place instead of remove+create?\n\n\n GlobalStyle.prototype.renderStyles = function renderStyles(executionContext, styleSheet) {\n this.removeStyles(styleSheet);\n this.createStyles(executionContext, styleSheet);\n };\n\n return GlobalStyle;\n}();\n\n// \n\n// place our cache into shared context so it'll persist between HMRs\nif (IS_BROWSER) {\n window.scCGSHMRCache = {};\n}\n\nfunction createGlobalStyle(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var id = 'sc-global-' + murmurhash(JSON.stringify(rules));\n var style = new GlobalStyle(rules, id);\n\n var GlobalStyleComponent = function (_React$Component) {\n inherits(GlobalStyleComponent, _React$Component);\n\n function GlobalStyleComponent(props) {\n classCallCheck(this, GlobalStyleComponent);\n\n var _this = possibleConstructorReturn(this, _React$Component.call(this, props));\n\n var _this$constructor = _this.constructor,\n globalStyle = _this$constructor.globalStyle,\n styledComponentId = _this$constructor.styledComponentId;\n\n\n if (IS_BROWSER) {\n window.scCGSHMRCache[styledComponentId] = (window.scCGSHMRCache[styledComponentId] || 0) + 1;\n }\n\n /**\n * This fixes HMR compatibility. Don't ask me why, but this combination of\n * caching the closure variables via statics and then persisting the statics in\n * state works across HMR where no other combination did. ¯\\_(ツ)_/¯\n */\n _this.state = {\n globalStyle: globalStyle,\n styledComponentId: styledComponentId\n };\n return _this;\n }\n\n GlobalStyleComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n if (window.scCGSHMRCache[this.state.styledComponentId]) {\n window.scCGSHMRCache[this.state.styledComponentId] -= 1;\n }\n /**\n * Depending on the order \"render\" is called this can cause the styles to be lost\n * until the next render pass of the remaining instance, which may\n * not be immediate.\n */\n if (window.scCGSHMRCache[this.state.styledComponentId] === 0) {\n this.state.globalStyle.removeStyles(this.styleSheet);\n }\n };\n\n GlobalStyleComponent.prototype.render = function render() {\n var _this2 = this;\n\n if (process.env.NODE_ENV !== 'production' && React.Children.count(this.props.children)) {\n // eslint-disable-next-line no-console\n console.warn('The global style component ' + this.state.styledComponentId + ' was given child JSX. createGlobalStyle does not render children.');\n }\n\n return React.createElement(\n StyleSheetConsumer,\n null,\n function (styleSheet) {\n _this2.styleSheet = styleSheet || StyleSheet.master;\n\n var globalStyle = _this2.state.globalStyle;\n\n\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(STATIC_EXECUTION_CONTEXT, _this2.styleSheet);\n\n return null;\n } else {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = _this2.constructor.defaultProps;\n\n\n var context = _extends({}, _this2.props);\n\n if (typeof theme !== 'undefined') {\n context.theme = determineTheme(_this2.props, theme, defaultProps);\n }\n\n globalStyle.renderStyles(context, _this2.styleSheet);\n\n return null;\n }\n );\n }\n }\n );\n };\n\n return GlobalStyleComponent;\n }(React.Component);\n\n GlobalStyleComponent.globalStyle = style;\n GlobalStyleComponent.styledComponentId = id;\n\n\n return GlobalStyleComponent;\n}\n\n// \n\nvar replaceWhitespace = function replaceWhitespace(str) {\n return str.replace(/\\s|\\\\n/g, '');\n};\n\nfunction keyframes(strings) {\n /* Warning if you've used keyframes on React Native */\n if (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn('`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.');\n }\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n\n var name = generateAlphabeticName(murmurhash(replaceWhitespace(JSON.stringify(rules))));\n\n return new Keyframes(name, stringifyRules(rules, name, '@keyframes'));\n}\n\n// \n\nvar withTheme = (function (Component$$1) {\n var WithTheme = React.forwardRef(function (props, ref) {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = Component$$1.defaultProps;\n\n var themeProp = determineTheme(props, theme, defaultProps);\n\n if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + getComponentName(Component$$1) + '\"');\n }\n\n return React.createElement(Component$$1, _extends({}, props, { theme: themeProp, ref: ref }));\n }\n );\n });\n\n hoistNonReactStatics(WithTheme, Component$$1);\n\n WithTheme.displayName = 'WithTheme(' + getComponentName(Component$$1) + ')';\n\n return WithTheme;\n});\n\n// \n\n/* eslint-disable */\nvar __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS = {\n StyleSheet: StyleSheet\n};\n\n// \n\n/* Warning if you've imported this file on React Native */\nif (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like you've imported 'styled-components' on React Native.\\n\" + \"Perhaps you're looking to import 'styled-components/native'?\\n\" + 'Read more about this at https://www.styled-components.com/docs/basics#react-native');\n}\n\n/* Warning if there are several instances of styled-components */\nif (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test' && typeof window !== 'undefined' && typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Node.js') === -1 && navigator.userAgent.indexOf('jsdom') === -1) {\n window['__styled-components-init__'] = window['__styled-components-init__'] || 0;\n\n if (window['__styled-components-init__'] === 1) {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. \" + 'This may cause dynamic styles not rendering properly, errors happening during rehydration process ' + 'and makes your application bigger without a good reason.\\n\\n' + 'See https://s-c.sh/2BAXzed for more info.');\n }\n\n window['__styled-components-init__'] += 1;\n}\n\n//\n\nexport default styled;\nexport { createGlobalStyle, css, isStyledComponent, keyframes, ServerStyleSheet, StyleSheetConsumer, StyleSheetContext, StyleSheetManager, ThemeConsumer, ThemeContext, ThemeProvider, withTheme, __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS };\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","export const colors = {\n PRIMARY: '#ABE2FB',\n SECONDARY: '#E6E6E6',\n DARKER_PRIMARY: '#87ceeb',\n OFF_WHITE: '#15181A',\n GREY: '#D3D3D3',\n RED: '#FF5E5E',\n DARK_GREY: '#535D63'\n};\n\nexport const TRACK_TOTAL_DEG = 270.0;\n\nexport const RADIAN = Math.PI / 180.0;\n\nexport const light = {\n primary: colors.PRIMARY,\n secondary: colors.SECONDARY,\n detail: colors.GREY,\n dark: false\n};\n\nexport const dark = {\n primary: colors.PRIMARY,\n secondary: colors.DARK_GREY,\n detail: colors.DARK_GREY,\n dark: true\n};\n\nexport default {\n dark,\n light,\n colors\n};\n","import { omit } from 'ramda';\n\nexport const getClassName = (componentName, theme) => {\n return 'daq-' + componentName + (theme && theme.dark ? '--dark' : '--light');\n};\n\nexport const getFilteredProps = props => omit(['className', 'id', 'setProps', 'style'], props);\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(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};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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};","import React from 'react';\nimport styled from 'styled-components';\n\nimport Label from './Label.styled';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-around;\n flex-direction: column;\n ${({ fullSize }) => {\n if (fullSize) return 'width: 100%;';\n return '';\n }}\n`;\n\nfunction LabelContainer(props) {\n let labelText = props.label;\n let customLabelStyle = {};\n if (typeof props.label === 'object') {\n labelText = props.label.label;\n customLabelStyle = props.label.style;\n }\n const labelElement = \n // if (labelText && labelText.length) {\n return (\n \n {props.labelPosition == 'top' && labelElement}\n {props.children}\n {props.labelPosition != 'top' && labelElement}\n \n );\n // }\n // return
{props.children}
;\n}\n\nLabelContainer.defaultProps = {\n labelPosition: 'bottom'\n};\n\nexport default LabelContainer;\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = 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 (0, _defineProperty2.default)(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}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","(function() { module.exports = window[\"ReactDOM\"]; }());","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n\tvar _react = __webpack_require__(1);\n\n\tvar _react2 = _interopRequireDefault(_react);\n\n\tvar _propTypes = __webpack_require__(2);\n\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\tvar KEYCODE_UP = 38;\n\tvar KEYCODE_DOWN = 40;\n\tvar IS_BROWSER = typeof document != 'undefined';\n\tvar RE_NUMBER = /^[+-]?((\\.\\d+)|(\\d+(\\.\\d+)?))$/;\n\tvar RE_INCOMPLETE_NUMBER = /^([+-]|\\.0*|[+-]\\.0*|[+-]?\\d+\\.)?$/;\n\n\tfunction addClass(element, className) {\n\t if (element.classList) {\n\t return element.classList.add(className);\n\t }\n\t if (!element.className.search(new RegExp(\"\\\\b\" + className + \"\\\\b\"))) {\n\t element.className = \" \" + className;\n\t }\n\t}\n\n\tfunction removeClass(element, className) {\n\t if (element.className) {\n\t if (element.classList) {\n\t return element.classList.remove(className);\n\t }\n\n\t element.className = element.className.replace(new RegExp(\"\\\\b\" + className + \"\\\\b\", \"g\"), \"\");\n\t }\n\t}\n\n\tfunction access(object, prop, defaultValue) {\n\t var result = object[prop];\n\t if (typeof result == \"function\") {\n\t for (var _len = arguments.length, args = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n\t args[_key - 3] = arguments[_key];\n\t }\n\n\t result = result.apply(undefined, args);\n\t }\n\t return result === undefined ? defaultValue : result;\n\t}\n\n\tvar NumericInput = function (_Component) {\n\t _inherits(NumericInput, _Component);\n\n\t function NumericInput() {\n\t var _ref;\n\n\t _classCallCheck(this, NumericInput);\n\n\t for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t args[_key2] = arguments[_key2];\n\t }\n\n\t var _this = _possibleConstructorReturn(this, (_ref = NumericInput.__proto__ || Object.getPrototypeOf(NumericInput)).call.apply(_ref, [this].concat(args)));\n\n\t _this._isStrict = !!_this.props.strict;\n\n\t _this.state = _extends({\n\t btnDownHover: false,\n\t btnDownActive: false,\n\t btnUpHover: false,\n\t btnUpActive: false,\n\t stringValue: \"\"\n\t }, _this._propsToState(_this.props));\n\t _this.stop = _this.stop.bind(_this);\n\t _this.onTouchEnd = _this.onTouchEnd.bind(_this);\n\t _this.refsInput = {};\n\t _this.refsWrapper = {};\n\t return _this;\n\t }\n\n\t _createClass(NumericInput, [{\n\t key: '_propsToState',\n\t value: function _propsToState(props) {\n\t var out = {};\n\n\t if (props.hasOwnProperty(\"value\")) {\n\t out.stringValue = String(props.value || props.value === 0 ? props.value : '').trim();\n\n\t out.value = out.stringValue !== '' ? this._parse(props.value) : null;\n\t } else if (!this._isMounted && props.hasOwnProperty(\"defaultValue\")) {\n\t out.stringValue = String(props.defaultValue || props.defaultValue === 0 ? props.defaultValue : '').trim();\n\n\t out.value = props.defaultValue !== '' ? this._parse(props.defaultValue) : null;\n\t }\n\n\t return out;\n\t }\n\t }, {\n\t key: 'componentWillReceiveProps',\n\t value: function componentWillReceiveProps(props) {\n\t var _this2 = this;\n\n\t this._isStrict = !!props.strict;\n\t var nextState = this._propsToState(props);\n\t if (Object.keys(nextState).length) {\n\t this._ignoreValueChange = true;\n\t this.setState(nextState, function () {\n\t _this2._ignoreValueChange = false;\n\t });\n\t }\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate() {\n\t this.saveSelection();\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate(prevProps, prevState) {\n\t if (!this._ignoreValueChange && prevState.value !== this.state.value && (!isNaN(this.state.value) || this.state.value === null)) {\n\t this._invokeEventCallback(\"onChange\", this.state.value, this.refsInput.value, this.refsInput);\n\t }\n\n\t if (this._inputFocus) {\n\t this.refsInput.focus();\n\n\t if (this.state.selectionStart || this.state.selectionStart === 0) {\n\t this.refsInput.selectionStart = this.state.selectionStart;\n\t }\n\n\t if (this.state.selectionEnd || this.state.selectionEnd === 0) {\n\t this.refsInput.selectionEnd = this.state.selectionEnd;\n\t }\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t this._isMounted = false;\n\t this.stop();\n\t }\n\t }, {\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var _this3 = this;\n\n\t this._isMounted = true;\n\t this.refsInput.getValueAsNumber = function () {\n\t return _this3.state.value || 0;\n\t };\n\n\t this.refsInput.setValue = function (value) {\n\t _this3.setState({\n\t value: _this3._parse(value),\n\t stringValue: value\n\t });\n\t };\n\n\t if (!this._inputFocus && IS_BROWSER && document.activeElement === this.refsInput) {\n\t this._inputFocus = true;\n\t this.refsInput.focus();\n\t this._invokeEventCallback(\"onFocus\", {\n\t target: this.refsInput,\n\t type: \"focus\"\n\t });\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'saveSelection',\n\t value: function saveSelection() {\n\t this.state.selectionStart = this.refsInput.selectionStart;\n\t this.state.selectionEnd = this.refsInput.selectionEnd;\n\t }\n\t }, {\n\t key: 'checkValidity',\n\t value: function checkValidity() {\n\t var valid = void 0,\n\t validationError = \"\";\n\n\t var supportsValidation = !!this.refsInput.checkValidity;\n\n\t var noValidate = !!(this.props.noValidate && this.props.noValidate != \"false\");\n\n\t this.refsInput.noValidate = noValidate;\n\n\t valid = noValidate || !supportsValidation;\n\n\t if (valid) {\n\t validationError = \"\";\n\t } else {\n\t if (this.refsInput.pattern === \"\") {\n\t this.refsInput.pattern = this.props.required ? \".+\" : \".*\";\n\t }\n\n\t if (supportsValidation) {\n\t this.refsInput.checkValidity();\n\t valid = this.refsInput.validity.valid;\n\n\t if (!valid) {\n\t validationError = this.refsInput.validationMessage;\n\t }\n\t }\n\n\t if (valid && supportsValidation && this.props.maxLength) {\n\t if (this.refsInput.value.length > this.props.maxLength) {\n\t validationError = \"This value is too long\";\n\t }\n\t }\n\t }\n\n\t validationError = validationError || (valid ? \"\" : this.refsInput.validationMessage || \"Unknown Error\");\n\n\t var validStateChanged = this._valid !== validationError;\n\t this._valid = validationError;\n\t if (validationError) {\n\t addClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onInvalid\", validationError, this.state.value, this.refsInput.value);\n\t }\n\t } else {\n\t removeClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onValid\", this.state.value, this.refsInput.value);\n\t }\n\t }\n\t }\n\t }, {\n\t key: '_toNumber',\n\t value: function _toNumber(x) {\n\t var n = parseFloat(x);\n\t if (isNaN(n) || !isFinite(n)) {\n\t n = 0;\n\t }\n\n\t if (this._isStrict) {\n\t var precision = access(this.props, \"precision\", null, this);\n\t var q = Math.pow(10, precision === null ? 10 : precision);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t n = Math.min(Math.max(n, _min), _max);\n\t n = Math.round(n * q) / q;\n\t }\n\n\t return n;\n\t }\n\t }, {\n\t key: '_parse',\n\t value: function _parse(x) {\n\t x = String(x);\n\t if (typeof this.props.parse == 'function') {\n\t return parseFloat(this.props.parse(x));\n\t }\n\t return parseFloat(x);\n\t }\n\t }, {\n\t key: '_format',\n\t value: function _format(n) {\n\t var _n = this._toNumber(n);\n\t var precision = access(this.props, \"precision\", null, this);\n\t if (precision !== null) {\n\t _n = n.toFixed(precision);\n\t }\n\n\t _n += \"\";\n\n\t if (this.props.format) {\n\t return this.props.format(_n);\n\t }\n\n\t return _n;\n\t }\n\t }, {\n\t key: '_step',\n\t value: function _step(n, callback) {\n\t var _isStrict = this._isStrict;\n\t this._isStrict = true;\n\n\t var _step = +access(this.props, \"step\", NumericInput.defaultProps.step, this, n > 0 ? NumericInput.DIRECTION_UP : NumericInput.DIRECTION_DOWN);\n\n\t var _n = this._toNumber((this.state.value || 0) + _step * n);\n\n\t if (this.props.snap) {\n\t _n = Math.round(_n / _step) * _step;\n\t }\n\n\t this._isStrict = _isStrict;\n\n\t if (_n !== this.state.value) {\n\t this.setState({ value: _n, stringValue: _n + \"\" }, callback);\n\t return true;\n\t }\n\n\t return false;\n\t }\n\t }, {\n\t key: '_onKeyDown',\n\t value: function _onKeyDown() {\n\t for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n\t args[_key3] = arguments[_key3];\n\t }\n\n\t args[0].persist();\n\t this._invokeEventCallback.apply(this, [\"onKeyDown\"].concat(args));\n\t var e = args[0];\n\t if (!e.isDefaultPrevented()) {\n\t if (e.keyCode === KEYCODE_UP) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? 0.1 : e.shiftKey ? 10 : 1);\n\t } else if (e.keyCode === KEYCODE_DOWN) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? -0.1 : e.shiftKey ? -10 : -1);\n\t } else {\n\t var _value = this.refsInput.value,\n\t length = _value.length;\n\t if (e.keyCode === 8) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd > 0 && _value.length && _value.charAt(this.refsInput.selectionEnd - 1) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd - 1;\n\t }\n\t } else if (e.keyCode === 46) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd < length + 1 && _value.length && _value.charAt(this.refsInput.selectionEnd) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd + 1;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'stop',\n\t value: function stop() {\n\t if (this._timer) {\n\t clearTimeout(this._timer);\n\t }\n\t }\n\t }, {\n\t key: 'increase',\n\t value: function increase() {\n\t var _this4 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(1, callback);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t if (isNaN(this.state.value) || +this.state.value < _max) {\n\t this._timer = setTimeout(function () {\n\t _this4.increase(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'decrease',\n\t value: function decrease() {\n\t var _this5 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(-1, callback);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t if (isNaN(this.state.value) || +this.state.value > _min) {\n\t this._timer = setTimeout(function () {\n\t _this5.decrease(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'onMouseDown',\n\t value: function onMouseDown(dir, callback) {\n\t if (dir == 'down') {\n\t this.decrease(false, callback);\n\t } else if (dir == 'up') {\n\t this.increase(false, callback);\n\t }\n\t }\n\t }, {\n\t key: 'onTouchStart',\n\t value: function onTouchStart(dir, e) {\n\t e.preventDefault();\n\t if (dir == 'down') {\n\t this.decrease();\n\t } else if (dir == 'up') {\n\t this.increase();\n\t }\n\t }\n\t }, {\n\t key: 'onTouchEnd',\n\t value: function onTouchEnd(e) {\n\t e.preventDefault();\n\t this.stop();\n\t }\n\t }, {\n\t key: '_invokeEventCallback',\n\t value: function _invokeEventCallback(callbackName) {\n\t if (typeof this.props[callbackName] == \"function\") {\n\t var _props$callbackName;\n\n\t for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n\t args[_key4 - 1] = arguments[_key4];\n\t }\n\n\t (_props$callbackName = this.props[callbackName]).call.apply(_props$callbackName, [null].concat(args));\n\t }\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _this6 = this;\n\n\t var props = this.props;\n\t var state = this.state;\n\t var css = {};\n\n\t var _props = this.props,\n\t step = _props.step,\n\t min = _props.min,\n\t max = _props.max,\n\t precision = _props.precision,\n\t parse = _props.parse,\n\t format = _props.format,\n\t mobile = _props.mobile,\n\t snap = _props.snap,\n\t componentClass = _props.componentClass,\n\t value = _props.value,\n\t type = _props.type,\n\t style = _props.style,\n\t defaultValue = _props.defaultValue,\n\t onInvalid = _props.onInvalid,\n\t onValid = _props.onValid,\n\t strict = _props.strict,\n\t noStyle = _props.noStyle,\n\t rest = _objectWithoutProperties(_props, ['step', 'min', 'max', 'precision', 'parse', 'format', 'mobile', 'snap', 'componentClass', 'value', 'type', 'style', 'defaultValue', 'onInvalid', 'onValid', 'strict', 'noStyle']);\n\n\t noStyle = noStyle || style === false;\n\n\t for (var x in NumericInput.style) {\n\t css[x] = _extends({}, NumericInput.style[x], style ? style[x] || {} : {});\n\t }\n\n\t var hasFormControl = props.className && /\\bform-control\\b/.test(props.className);\n\n\t if (mobile == 'auto') {\n\t mobile = IS_BROWSER && 'ontouchstart' in document;\n\t }\n\n\t if (typeof mobile == \"function\") {\n\t mobile = mobile.call(this);\n\t }\n\t mobile = !!mobile;\n\n\t var attrs = {\n\t wrap: {\n\t style: noStyle ? null : css.wrap,\n\t className: 'react-numeric-input',\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsWrapper = e;\n\t }\n\t },\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined\n\t },\n\t input: _extends({\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsInput = e;\n\t }\n\t },\n\t type: 'text',\n\t style: noStyle ? null : _extends({}, css.input, !hasFormControl ? css['input:not(.form-control)'] : {}, this._inputFocus ? css['input:focus'] : {})\n\t }, rest),\n\t btnUp: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnUp, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnUpActive ? css['btn:active'] : state.btnUpHover ? css['btn:hover'] : {})\n\t },\n\t btnDown: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnDown, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnDownActive ? css['btn:active'] : state.btnDownHover ? css['btn:hover'] : {})\n\t }\n\t };\n\n\t var stringValue = String(state.stringValue || (state.value || state.value === 0 ? state.value : \"\") || \"\");\n\n\t var loose = !this._isStrict && (this._inputFocus || !this._isMounted);\n\n\t if (loose && RE_INCOMPLETE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (loose && stringValue && !RE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (state.value || state.value === 0) {\n\t attrs.input.value = this._format(state.value);\n\t } else {\n\t attrs.input.value = \"\";\n\t }\n\n\t if (hasFormControl && !noStyle) {\n\t _extends(attrs.wrap.style, css['wrap.hasFormControl']);\n\t }\n\n\t if (mobile && !noStyle) {\n\t _extends(attrs.input.style, css['input.mobile']);\n\t _extends(attrs.btnUp.style, css['btnUp.mobile']);\n\t _extends(attrs.btnDown.style, css['btnDown.mobile']);\n\t }\n\n\t if (!props.disabled && !props.readOnly) {\n\t _extends(attrs.wrap, {\n\t onMouseUp: this.stop,\n\t onMouseLeave: this.stop\n\t });\n\n\t _extends(attrs.btnUp, {\n\t onTouchStart: this.onTouchStart.bind(this, 'up'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnUpHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnUpHover: false,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n\t args[_key5] = arguments[_key5];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('up');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.btnDown, {\n\t onTouchStart: this.onTouchStart.bind(this, 'down'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnDownHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnDownHover: false,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n\t args[_key6] = arguments[_key6];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('down');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.input, {\n\t onChange: function onChange(e) {\n\t var original = e.target.value;\n\t var val = _this6._parse(original);\n\t if (isNaN(val)) {\n\t val = null;\n\t }\n\t _this6.setState({\n\t value: _this6._isStrict ? _this6._toNumber(val) : val,\n\t stringValue: original\n\t });\n\t },\n\t onKeyDown: this._onKeyDown.bind(this),\n\t onInput: function onInput() {\n\t for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n\t args[_key7] = arguments[_key7];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onInput\"].concat(args));\n\t },\n\t onSelect: function onSelect() {\n\t for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n\t args[_key8] = arguments[_key8];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onSelect\"].concat(args));\n\t },\n\t onFocus: function onFocus() {\n\t for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n\t args[_key9] = arguments[_key9];\n\t }\n\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val,\n\t stringValue: val || val === 0 ? val + \"\" : \"\"\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t });\n\t },\n\t onBlur: function onBlur() {\n\t for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n\t args[_key10] = arguments[_key10];\n\t }\n\n\t var _isStrict = _this6._isStrict;\n\t _this6._isStrict = true;\n\t args[0].persist();\n\t _this6._inputFocus = false;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onBlur\"].concat(args));\n\t _this6._isStrict = _isStrict;\n\t });\n\t }\n\t });\n\t } else {\n\t if (!noStyle && props.disabled) {\n\t _extends(attrs.input.style, css['input:disabled']);\n\t }\n\t }\n\n\t var InputTag = componentClass || 'input';\n\n\t if (mobile) {\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus }),\n\t _react2.default.createElement('i', { style: noStyle ? null : css.plus })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus })\n\t )\n\t );\n\t }\n\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowUp })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowDown })\n\t )\n\t );\n\t }\n\t }]);\n\n\t return NumericInput;\n\t}(_react.Component);\n\n\tNumericInput.propTypes = {\n\t step: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t min: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t max: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t precision: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t maxLength: _propTypes2.default.number,\n\t parse: _propTypes2.default.func,\n\t format: _propTypes2.default.func,\n\t className: _propTypes2.default.string,\n\t disabled: _propTypes2.default.bool,\n\t readOnly: _propTypes2.default.bool,\n\t required: _propTypes2.default.bool,\n\t snap: _propTypes2.default.bool,\n\t noValidate: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n\t style: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),\n\t noStyle: _propTypes2.default.bool,\n\t type: _propTypes2.default.string,\n\t pattern: _propTypes2.default.string,\n\t onFocus: _propTypes2.default.func,\n\t onBlur: _propTypes2.default.func,\n\t onKeyDown: _propTypes2.default.func,\n\t onChange: _propTypes2.default.func,\n\t onInvalid: _propTypes2.default.func,\n\t onValid: _propTypes2.default.func,\n\t onInput: _propTypes2.default.func,\n\t onSelect: _propTypes2.default.func,\n\t size: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t strict: _propTypes2.default.bool,\n\t componentClass: _propTypes2.default.string,\n\t mobile: function mobile(props, propName) {\n\t var prop = props[propName];\n\t if (prop !== true && prop !== false && prop !== 'auto' && typeof prop != 'function') {\n\t return new Error('The \"mobile\" prop must be true, false, \"auto\" or a function');\n\t }\n\t }\n\t};\n\tNumericInput.defaultProps = {\n\t step: 1,\n\t min: Number.MIN_SAFE_INTEGER || -9007199254740991,\n\t max: Number.MAX_SAFE_INTEGER || 9007199254740991,\n\t precision: null,\n\t parse: null,\n\t format: null,\n\t mobile: 'auto',\n\t strict: false,\n\t componentClass: \"input\",\n\t style: {}\n\t};\n\tNumericInput.style = {\n\t wrap: {\n\t position: 'relative',\n\t display: 'inline-block'\n\t },\n\n\t 'wrap.hasFormControl': {\n\t display: 'block'\n\t },\n\n\t arrowUp: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0 0.6ex 0.6ex 0.6ex',\n\t borderColor: 'transparent transparent rgba(0, 0, 0, 0.7)',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t arrowDown: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0.6ex 0.6ex 0 0.6ex',\n\t borderColor: 'rgba(0, 0, 0, 0.7) transparent transparent',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t plus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 2,\n\t height: 10,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-5px 0 0 -1px'\n\t },\n\n\t minus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 10,\n\t height: 2,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-1px 0 0 -5px'\n\t },\n\n\t btn: {\n\t position: 'absolute',\n\t right: 2,\n\t width: '2.26ex',\n\t borderColor: 'rgba(0,0,0,.1)',\n\t borderStyle: 'solid',\n\t textAlign: 'center',\n\t cursor: 'default',\n\t transition: 'all 0.1s',\n\t background: 'rgba(0,0,0,.1)',\n\t boxShadow: '-1px -1px 3px rgba(0,0,0,.1) inset,' + '1px 1px 3px rgba(255,255,255,.7) inset'\n\t },\n\n\t btnUp: {\n\t top: 2,\n\t bottom: '50%',\n\t borderRadius: '2px 2px 0 0',\n\t borderWidth: '1px 1px 0 1px'\n\t },\n\n\t 'btnUp.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t btnDown: {\n\t top: '50%',\n\t bottom: 2,\n\t borderRadius: '0 0 2px 2px',\n\t borderWidth: '0 1px 1px 1px'\n\t },\n\n\t 'btnDown.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t left: 2,\n\t top: 2,\n\t right: 'auto',\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t 'btn:hover': {\n\t background: 'rgba(0,0,0,.2)'\n\t },\n\n\t 'btn:active': {\n\t background: 'rgba(0,0,0,.3)',\n\t boxShadow: '0 1px 3px rgba(0,0,0,.2) inset,' + '-1px -1px 4px rgba(255,255,255,.5) inset'\n\t },\n\n\t 'btn:disabled': {\n\t opacity: 0.5,\n\t boxShadow: 'none',\n\t cursor: 'not-allowed'\n\t },\n\n\t input: {\n\t paddingRight: '3ex',\n\t boxSizing: 'border-box',\n\t fontSize: 'inherit'\n\t },\n\n\t 'input:not(.form-control)': {\n\t border: '1px solid #ccc',\n\t borderRadius: 2,\n\t paddingLeft: 4,\n\t display: 'block',\n\t WebkitAppearance: 'none',\n\t lineHeight: 'normal'\n\t },\n\n\t 'input.mobile': {\n\t paddingLeft: ' 3.4ex',\n\t paddingRight: '3.4ex',\n\t textAlign: 'center'\n\t },\n\n\t 'input:focus': {},\n\n\t 'input:disabled': {\n\t color: 'rgba(0, 0, 0, 0.3)',\n\t textShadow: '0 1px 0 rgba(255, 255, 255, 0.8)'\n\t }\n\t};\n\tNumericInput.SPEED = 50;\n\tNumericInput.DELAY = 500;\n\tNumericInput.DIRECTION_UP = \"up\";\n\tNumericInput.DIRECTION_DOWN = \"down\";\n\n\n\tmodule.exports = NumericInput;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"react\");\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"prop-types\");\n\n/***/ })\n/******/ ]);","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","/**\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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (typeof obj === 'undefined') {\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from './_curry1';\nimport _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _isArrayLike from './_isArrayLike';\nimport _xwrap from './_xwrap';\nimport bind from '../bind';\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from './_has';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n};\n\nexport default _isArguments;","import _curry1 from './internal/_curry1';\nimport _has from './internal/_has';\nimport _isArguments from './internal/_isArguments';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar _keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n} : function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n};\nvar keys = /*#__PURE__*/_curry1(_keys);\nexport default keys;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","import _objectAssign from './_objectAssign';\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _curry1 from './internal/_curry1';\nimport _of from './internal/_of';\n\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\nvar of = /*#__PURE__*/_curry1(_of);\nexport default of;","import _curry2 from './internal/_curry2';\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\nvar omit = /*#__PURE__*/_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nexport default omit;","import _cloneRegExp from './internal/_cloneRegExp';\nimport _curry2 from './internal/_curry2';\nimport _isRegExp from './internal/_isRegExp';\nimport toString from './toString';\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\nvar test = /*#__PURE__*/_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n return _cloneRegExp(pattern).test(str);\n});\nexport default test;","import _curry1 from './internal/_curry1';\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\nvar _trim = !hasProtoTrim || /*#__PURE__*/ws.trim() || ! /*#__PURE__*/zeroWidth.trim() ? function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n} : function trim(str) {\n return str.trim();\n};\nvar trim = /*#__PURE__*/_curry1(_trim);\nexport default trim;","export { default as F } from './F';\nexport { default as T } from './T';\nexport { default as __ } from './__';\nexport { default as add } from './add';\nexport { default as addIndex } from './addIndex';\nexport { default as adjust } from './adjust';\nexport { default as all } from './all';\nexport { default as allPass } from './allPass';\nexport { default as always } from './always';\nexport { default as and } from './and';\nexport { default as any } from './any';\nexport { default as anyPass } from './anyPass';\nexport { default as ap } from './ap';\nexport { default as aperture } from './aperture';\nexport { default as append } from './append';\nexport { default as apply } from './apply';\nexport { default as applySpec } from './applySpec';\nexport { default as applyTo } from './applyTo';\nexport { default as ascend } from './ascend';\nexport { default as assoc } from './assoc';\nexport { default as assocPath } from './assocPath';\nexport { default as binary } from './binary';\nexport { default as bind } from './bind';\nexport { default as both } from './both';\nexport { default as call } from './call';\nexport { default as chain } from './chain';\nexport { default as clamp } from './clamp';\nexport { default as clone } from './clone';\nexport { default as comparator } from './comparator';\nexport { default as complement } from './complement';\nexport { default as compose } from './compose';\nexport { default as composeK } from './composeK';\nexport { default as composeP } from './composeP';\nexport { default as concat } from './concat';\nexport { default as cond } from './cond';\nexport { default as construct } from './construct';\nexport { default as constructN } from './constructN';\nexport { default as contains } from './contains';\nexport { default as converge } from './converge';\nexport { default as countBy } from './countBy';\nexport { default as curry } from './curry';\nexport { default as curryN } from './curryN';\nexport { default as dec } from './dec';\nexport { default as defaultTo } from './defaultTo';\nexport { default as descend } from './descend';\nexport { default as difference } from './difference';\nexport { default as differenceWith } from './differenceWith';\nexport { default as dissoc } from './dissoc';\nexport { default as dissocPath } from './dissocPath';\nexport { default as divide } from './divide';\nexport { default as drop } from './drop';\nexport { default as dropLast } from './dropLast';\nexport { default as dropLastWhile } from './dropLastWhile';\nexport { default as dropRepeats } from './dropRepeats';\nexport { default as dropRepeatsWith } from './dropRepeatsWith';\nexport { default as dropWhile } from './dropWhile';\nexport { default as either } from './either';\nexport { default as empty } from './empty';\nexport { default as endsWith } from './endsWith';\nexport { default as eqBy } from './eqBy';\nexport { default as eqProps } from './eqProps';\nexport { default as equals } from './equals';\nexport { default as evolve } from './evolve';\nexport { default as filter } from './filter';\nexport { default as find } from './find';\nexport { default as findIndex } from './findIndex';\nexport { default as findLast } from './findLast';\nexport { default as findLastIndex } from './findLastIndex';\nexport { default as flatten } from './flatten';\nexport { default as flip } from './flip';\nexport { default as forEach } from './forEach';\nexport { default as forEachObjIndexed } from './forEachObjIndexed';\nexport { default as fromPairs } from './fromPairs';\nexport { default as groupBy } from './groupBy';\nexport { default as groupWith } from './groupWith';\nexport { default as gt } from './gt';\nexport { default as gte } from './gte';\nexport { default as has } from './has';\nexport { default as hasIn } from './hasIn';\nexport { default as head } from './head';\nexport { default as identical } from './identical';\nexport { default as identity } from './identity';\nexport { default as ifElse } from './ifElse';\nexport { default as inc } from './inc';\nexport { default as indexBy } from './indexBy';\nexport { default as indexOf } from './indexOf';\nexport { default as init } from './init';\nexport { default as innerJoin } from './innerJoin';\nexport { default as insert } from './insert';\nexport { default as insertAll } from './insertAll';\nexport { default as intersection } from './intersection';\nexport { default as intersperse } from './intersperse';\nexport { default as into } from './into';\nexport { default as invert } from './invert';\nexport { default as invertObj } from './invertObj';\nexport { default as invoker } from './invoker';\nexport { default as is } from './is';\nexport { default as isEmpty } from './isEmpty';\nexport { default as isNil } from './isNil';\nexport { default as join } from './join';\nexport { default as juxt } from './juxt';\nexport { default as keys } from './keys';\nexport { default as keysIn } from './keysIn';\nexport { default as last } from './last';\nexport { default as lastIndexOf } from './lastIndexOf';\nexport { default as length } from './length';\nexport { default as lens } from './lens';\nexport { default as lensIndex } from './lensIndex';\nexport { default as lensPath } from './lensPath';\nexport { default as lensProp } from './lensProp';\nexport { default as lift } from './lift';\nexport { default as liftN } from './liftN';\nexport { default as lt } from './lt';\nexport { default as lte } from './lte';\nexport { default as map } from './map';\nexport { default as mapAccum } from './mapAccum';\nexport { default as mapAccumRight } from './mapAccumRight';\nexport { default as mapObjIndexed } from './mapObjIndexed';\nexport { default as match } from './match';\nexport { default as mathMod } from './mathMod';\nexport { default as max } from './max';\nexport { default as maxBy } from './maxBy';\nexport { default as mean } from './mean';\nexport { default as median } from './median';\nexport { default as memoize } from './memoize';\nexport { default as memoizeWith } from './memoizeWith';\nexport { default as merge } from './merge';\nexport { default as mergeAll } from './mergeAll';\nexport { default as mergeDeepLeft } from './mergeDeepLeft';\nexport { default as mergeDeepRight } from './mergeDeepRight';\nexport { default as mergeDeepWith } from './mergeDeepWith';\nexport { default as mergeDeepWithKey } from './mergeDeepWithKey';\nexport { default as mergeWith } from './mergeWith';\nexport { default as mergeWithKey } from './mergeWithKey';\nexport { default as min } from './min';\nexport { default as minBy } from './minBy';\nexport { default as modulo } from './modulo';\nexport { default as multiply } from './multiply';\nexport { default as nAry } from './nAry';\nexport { default as negate } from './negate';\nexport { default as none } from './none';\nexport { default as not } from './not';\nexport { default as nth } from './nth';\nexport { default as nthArg } from './nthArg';\nexport { default as o } from './o';\nexport { default as objOf } from './objOf';\nexport { default as of } from './of';\nexport { default as omit } from './omit';\nexport { default as once } from './once';\nexport { default as or } from './or';\nexport { default as over } from './over';\nexport { default as pair } from './pair';\nexport { default as partial } from './partial';\nexport { default as partialRight } from './partialRight';\nexport { default as partition } from './partition';\nexport { default as path } from './path';\nexport { default as pathEq } from './pathEq';\nexport { default as pathOr } from './pathOr';\nexport { default as pathSatisfies } from './pathSatisfies';\nexport { default as pick } from './pick';\nexport { default as pickAll } from './pickAll';\nexport { default as pickBy } from './pickBy';\nexport { default as pipe } from './pipe';\nexport { default as pipeK } from './pipeK';\nexport { default as pipeP } from './pipeP';\nexport { default as pluck } from './pluck';\nexport { default as prepend } from './prepend';\nexport { default as product } from './product';\nexport { default as project } from './project';\nexport { default as prop } from './prop';\nexport { default as propEq } from './propEq';\nexport { default as propIs } from './propIs';\nexport { default as propOr } from './propOr';\nexport { default as propSatisfies } from './propSatisfies';\nexport { default as props } from './props';\nexport { default as range } from './range';\nexport { default as reduce } from './reduce';\nexport { default as reduceBy } from './reduceBy';\nexport { default as reduceRight } from './reduceRight';\nexport { default as reduceWhile } from './reduceWhile';\nexport { default as reduced } from './reduced';\nexport { default as reject } from './reject';\nexport { default as remove } from './remove';\nexport { default as repeat } from './repeat';\nexport { default as replace } from './replace';\nexport { default as reverse } from './reverse';\nexport { default as scan } from './scan';\nexport { default as sequence } from './sequence';\nexport { default as set } from './set';\nexport { default as slice } from './slice';\nexport { default as sort } from './sort';\nexport { default as sortBy } from './sortBy';\nexport { default as sortWith } from './sortWith';\nexport { default as split } from './split';\nexport { default as splitAt } from './splitAt';\nexport { default as splitEvery } from './splitEvery';\nexport { default as splitWhen } from './splitWhen';\nexport { default as startsWith } from './startsWith';\nexport { default as subtract } from './subtract';\nexport { default as sum } from './sum';\nexport { default as symmetricDifference } from './symmetricDifference';\nexport { default as symmetricDifferenceWith } from './symmetricDifferenceWith';\nexport { default as tail } from './tail';\nexport { default as take } from './take';\nexport { default as takeLast } from './takeLast';\nexport { default as takeLastWhile } from './takeLastWhile';\nexport { default as takeWhile } from './takeWhile';\nexport { default as tap } from './tap';\nexport { default as test } from './test';\nexport { default as times } from './times';\nexport { default as toLower } from './toLower';\nexport { default as toPairs } from './toPairs';\nexport { default as toPairsIn } from './toPairsIn';\nexport { default as toString } from './toString';\nexport { default as toUpper } from './toUpper';\nexport { default as transduce } from './transduce';\nexport { default as transpose } from './transpose';\nexport { default as traverse } from './traverse';\nexport { default as trim } from './trim';\nexport { default as tryCatch } from './tryCatch';\nexport { default as type } from './type';\nexport { default as unapply } from './unapply';\nexport { default as unary } from './unary';\nexport { default as uncurryN } from './uncurryN';\nexport { default as unfold } from './unfold';\nexport { default as union } from './union';\nexport { default as unionWith } from './unionWith';\nexport { default as uniq } from './uniq';\nexport { default as uniqBy } from './uniqBy';\nexport { default as uniqWith } from './uniqWith';\nexport { default as unless } from './unless';\nexport { default as unnest } from './unnest';\nexport { default as until } from './until';\nexport { default as update } from './update';\nexport { default as useWith } from './useWith';\nexport { default as values } from './values';\nexport { default as valuesIn } from './valuesIn';\nexport { default as view } from './view';\nexport { default as when } from './when';\nexport { default as where } from './where';\nexport { default as whereEq } from './whereEq';\nexport { default as without } from './without';\nexport { default as xprod } from './xprod';\nexport { default as zip } from './zip';\nexport { default as zipObj } from './zipObj';\nexport { default as zipWith } from './zipWith';","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","module.exports = {};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","module.exports = true;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","exports.f = {}.propertyIsEnumerable;\n","import styled, { css } from 'styled-components';\n\nexport default styled.label`\n display: block;\n font-size: 14px;\n ${({ position }) =>\n position === 'top'\n ? css`\n margin-bottom: 8px;\n `\n : css`\n margin-top: 8px;\n `}\n ${props =>\n css`\n ${props.css}\n `}\n`;\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _getPrototypeOf = require(\"../core-js/object/get-prototype-of\");\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _getOwnPropertyDescriptor = require(\"../core-js/object/get-own-property-descriptor\");\n\nvar _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = (0, _getOwnPropertyDescriptor2.default)(object, property);\n\n if (desc === undefined) {\n var parent = (0, _getPrototypeOf2.default)(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};","/**\n * CSS conic-gradient() polyfill\n * By Lea Verou — http://lea.verou.me\n * MIT license\n */\n\n(function(){\n\nvar π = Math.PI;\nvar τ = 2 * π;\nvar ε = .00001;\nvar deg = π/180;\n\nvar dummy = document.createElement(\"div\");\ndocument.head.appendChild(dummy);\n\nvar _ = self.ConicGradient = function(o) {\n\tvar me = this;\n\t_.all.push(this);\n\n\to = o || {};\n\n\tthis.canvas = document.createElement(\"canvas\");\n\tthis.context = this.canvas.getContext(\"2d\");\n\n\tthis.repeating = !!o.repeating;\n\n\tthis.size = o.size || Math.max(innerWidth, innerHeight);\n\n\tthis.canvas.width = this.canvas.height = this.size;\n\n\tvar stops = o.stops;\n\n\tthis.stops = (stops || \"\").split(/\\s*,(?![^(]*\\))\\s*/); // commas that are not followed by a ) without a ( first\n\n\tthis.from = 0;\n\n\tfor (var i=0; i 0) {\n\t\tvar first = this.stops[0].clone();\n\t\tfirst.pos = 0;\n\t\tthis.stops.unshift(first);\n\t}\n\n\t// Add dummy last stop or set first stop’s position to 100% if it doesn’t have one\n\tif (this.stops[this.stops.length - 1].pos === undefined) {\n\t\tthis.stops[this.stops.length - 1].pos = 1;\n\t}\n\telse if (!this.repeating && this.stops[this.stops.length - 1].pos < 1) {\n\t\tvar last = this.stops[this.stops.length - 1].clone();\n\t\tlast.pos = 1;\n\t\tthis.stops.push(last);\n\t}\n\n\tthis.stops.forEach(function(stop, i){\n\t\tif (stop.pos === undefined) {\n\t\t\t// Evenly space color stops with no position\n\t\t\tfor (var j=i+1; this[j]; j++) {\n\t\t\t\tif (this[j].pos !== undefined) {\n\t\t\t\t\tstop.pos = this[i-1].pos + (this[j].pos - this[i-1].pos)/(j-i+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (i > 0) {\n\t\t\t// Normalize color stops whose position is smaller than the position of the stop before them\n\t\t\tstop.pos = Math.max(stop.pos, this[i-1].pos);\n\t\t}\n\t}, this.stops);\n\n\tif (this.repeating) {\n\t\t// Repeat color stops until >= 1\n\t\tvar stops = this.stops.slice();\n\t\tvar lastStop = stops[stops.length-1];\n\t\tvar difference = lastStop.pos - stops[0].pos;\n\n\t\tfor (var i=0; this.stops[this.stops.length-1].pos < 1 && i<10000; i++) {\n\t\t\tfor (var j=0; j' +\n\t\t\t'' +\n\t\t\t'';\n\t},\n\n\tget png() {\n\t\treturn this.canvas.toDataURL();\n\t},\n\n\tget r() {\n\t\treturn Math.sqrt(2) * this.size / 2;\n\t},\n\n\t// Paint the conical gradient on the canvas\n\t// Algorithm inspired from http://jsdo.it/akm2/yr9B\n\tpaint: function() {\n\t\tvar c = this.context;\n\n\t\tvar radius = this.r;\n\t\tvar x = this.size / 2;\n\n\t\tvar stopIndex = 0; // The index of the current color\n\t\tvar stop = this.stops[stopIndex], prevStop;\n\n\t\tvar diff, t;\n\n\t\t// Transform coordinate system so that angles start from the top left, like in CSS\n\t\tc.translate(this.size/2, this.size/2);\n\t\tc.rotate(-90*deg);\n\t\tc.rotate(this.from*deg);\n\t\tc.translate(-this.size/2, -this.size/2);\n\n\t\tfor (var i = 0; i < 360;) {\n\t\t\tif (i/360 + ε >= stop.pos) {\n\t\t\t\t// Switch color stop\n\t\t\t\tdo {\n\t\t\t\t\tprevStop = stop;\n\n\t\t\t\t\tstopIndex++;\n\t\t\t\t\tstop = this.stops[stopIndex];\n\t\t\t\t} while(stop && stop != prevStop && stop.pos === prevStop.pos);\n\n\t\t\t\tif (!stop) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tvar sameColor = prevStop.color + \"\" === stop.color + \"\" && prevStop != stop;\n\n\t\t\t\tdiff = prevStop.color.map(function(c, i){\n\t\t\t\t\treturn stop.color[i] - c;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tt = (i/360 - prevStop.pos) / (stop.pos - prevStop.pos);\n\n\t\t\tvar interpolated = sameColor? stop.color : diff.map(function(d,i){\n\t\t\t\tvar ret = d * t + prevStop.color[i];\n\n\t\t\t\treturn i < 3? ret & 255 : ret;\n\t\t\t});\n\n\t\t\t// Draw a series of arcs, 1deg each\n\t\t\tc.fillStyle = 'rgba(' + interpolated.join(\",\") + ')';\n\t\t\tc.beginPath();\n\t\t\tc.moveTo(x, x);\n\n\t\t\tif (sameColor) {\n\t\t\t\tvar θ = 360 * (stop.pos - prevStop.pos);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar θ = .5;\n\t\t\t}\n\n\t\t\tvar beginArg = i*deg;\n\t\t\tbeginArg = Math.min(360*deg, beginArg);\n\n\t\t\t// .02: To prevent empty blank line and corresponding moire\n\t\t\t// only non-alpha colors are cared now\n\t\t\tvar endArg = beginArg + θ*deg;\n\t\t\tendArg = Math.min(360*deg, endArg + .02);\n\n\t\t\tc.arc(x, x, radius, beginArg, endArg);\n\n\t\t\tc.closePath();\n\t\t\tc.fill();\n\n\t\t\ti += θ;\n\t\t}\n\t}\n};\n\n_.ColorStop = function(gradient, stop) {\n\tthis.gradient = gradient;\n\n\tif (stop) {\n\t\tvar parts = stop.match(/^(.+?)(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?\\s*$/);\n\n\t\tthis.color = _.ColorStop.colorToRGBA(parts[1]);\n\n\t\tif (parts[2]) {\n\t\t\tvar unit = parts[3];\n\n\t\t\tif (unit == \"%\" || parts[2] === \"0\" && !unit) {\n\t\t\t\tthis.pos = parts[2]/100;\n\t\t\t}\n\t\t\telse if (unit == \"turn\") {\n\t\t\t\tthis.pos = +parts[2];\n\t\t\t}\n\t\t\telse if (unit == \"deg\") {\n\t\t\t\tthis.pos = parts[2] / 360;\n\t\t\t}\n\t\t\telse if (unit == \"grad\") {\n\t\t\t\tthis.pos = parts[2] / 400;\n\t\t\t}\n\t\t\telse if (unit == \"rad\") {\n\t\t\t\tthis.pos = parts[2] / τ;\n\t\t\t}\n\t\t}\n\n\t\tif (parts[4]) {\n\t\t\tthis.next = new _.ColorStop(gradient, parts[1] + \" \" + parts[4] + parts[5]);\n\t\t}\n\t}\n}\n\n_.ColorStop.prototype = {\n\tclone: function() {\n\t\tvar ret = new _.ColorStop(this.gradient);\n\t\tret.color = this.color;\n\t\tret.pos = this.pos;\n\n\t\treturn ret;\n\t},\n\n\ttoString: function() {\n\t\treturn \"rgba(\" + this.color.join(\", \") + \") \" + this.pos * 100 + \"%\";\n\t}\n};\n\n_.ColorStop.colorToRGBA = function(color) {\n\tif (!Array.isArray(color) && color.indexOf(\"from\") == -1) {\n\t\tdummy.style.color = color;\n\n\t\tvar rgba = getComputedStyle(dummy).color.match(/rgba?\\(([\\d.]+), ([\\d.]+), ([\\d.]+)(?:, ([\\d.]+))?\\)/);\n\n\t\tif (rgba) {\n\t\t\trgba.shift();\n\t\t\trgba = rgba.map(function(a) { return +a });\n\t\t\trgba[3] = isNaN(rgba[3])? 1 : rgba[3];\n\t\t}\n\n\t\treturn rgba || [0,0,0,0];\n\t}\n\n\treturn color;\n};\n\n})();\n\nif (self.StyleFix) {\n\t// Test if conic gradients are supported first:\n\t(function(){\n\t\tvar dummy = document.createElement(\"p\");\n\t\tdummy.style.backgroundImage = \"conic-gradient(white, black)\";\n\t\tdummy.style.backgroundImage = PrefixFree.prefix + \"conic-gradient(white, black)\";\n\n\t\tif (!dummy.style.backgroundImage) {\n\t\t\t// Not supported, use polyfill\n\t\t\tStyleFix.register(function(css, raw) {\n\t\t\t\tif (css.indexOf(\"conic-gradient\") > -1) {\n\t\t\t\t\tcss = css.replace(/(?:repeating-)?conic-gradient\\(\\s*((?:\\([^()]+\\)|[^;()}])+?)\\)/g, function(gradient, stops) {\n\t\t\t\t\t\treturn new ConicGradient({\n\t\t\t\t\t\t\tstops: stops,\n\t\t\t\t\t\t\trepeating: gradient.indexOf(\"repeating-\") > -1\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn css;\n\t\t\t});\n\t\t}\n\t})();\n}\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","!function(e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(null):\"function\"==typeof define&&define.amd?define(e(null)):window.stylis=e(null)}(function e(a){\"use strict\";var r=/^\\0+/g,c=/[\\0\\r\\f]/g,s=/: */g,t=/zoo|gra/,i=/([,: ])(transform)/g,f=/,+\\s*(?![^(]*[)])/g,n=/ +\\s*(?![^(]*[)])/g,l=/ *[\\0] */g,o=/,\\r+?/g,h=/([\\t\\r\\n ])*\\f?&/g,u=/:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g,d=/\\W+/g,b=/@(k\\w+)\\s*(\\S*)\\s*/,p=/::(place)/g,k=/:(read-only)/g,g=/\\s+(?=[{\\];=:>])/g,A=/([[}=:>])\\s+/g,C=/(\\{[^{]+?);(?=\\})/g,w=/\\s{2,}/g,v=/([^\\(])(:+) */g,m=/[svh]\\w+-[tblr]{2}/,x=/\\(\\s*(.*)\\s*\\)/g,$=/([\\s\\S]*?);/g,y=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\\w-]+)[^]*/,j=/stretch|:\\s*\\w+\\-(?:conte|avail)/,z=/([^-])(image-set\\()/,N=\"-webkit-\",S=\"-moz-\",F=\"-ms-\",W=59,q=125,B=123,D=40,E=41,G=91,H=93,I=10,J=13,K=9,L=64,M=32,P=38,Q=45,R=95,T=42,U=44,V=58,X=39,Y=34,Z=47,_=62,ee=43,ae=126,re=0,ce=12,se=11,te=107,ie=109,fe=115,ne=112,le=111,oe=105,he=99,ue=100,de=112,be=1,pe=1,ke=0,ge=1,Ae=1,Ce=1,we=0,ve=0,me=0,xe=[],$e=[],ye=0,Oe=null,je=-2,ze=-1,Ne=0,Se=1,Fe=2,We=3,qe=0,Be=1,De=\"\",Ee=\"\",Ge=\"\";function He(e,a,s,t,i){for(var f,n,o=0,h=0,u=0,d=0,g=0,A=0,C=0,w=0,m=0,$=0,y=0,O=0,j=0,z=0,R=0,we=0,$e=0,Oe=0,je=0,ze=s.length,Je=ze-1,Re=\"\",Te=\"\",Ue=\"\",Ve=\"\",Xe=\"\",Ye=\"\";R0)Te=Te.replace(c,\"\");if(Te.trim().length>0){switch(C){case M:case K:case W:case J:case I:break;default:Te+=s.charAt(R)}C=W}}if(1===$e)switch(C){case B:case q:case W:case Y:case X:case D:case E:case U:$e=0;case K:case J:case I:case M:break;default:for($e=0,je=R,g=C,R--,C=W;je0)++R,C=g;case B:je=ze}}switch(C){case B:for(g=(Te=Te.trim()).charCodeAt(0),y=1,je=++R;R0)Te=Te.replace(c,\"\");switch(A=Te.charCodeAt(1)){case ue:case ie:case fe:case Q:f=a;break;default:f=xe}if(je=(Ue=He(a,f,Ue,A,i+1)).length,me>0&&0===je)je=Te.length;if(ye>0)if(f=Ie(xe,Te,Oe),n=Pe(We,Ue,f,a,pe,be,je,A,i,t),Te=f.join(\"\"),void 0!==n)if(0===(je=(Ue=n.trim()).length))A=0,Ue=\"\";if(je>0)switch(A){case fe:Te=Te.replace(x,Me);case ue:case ie:case Q:Ue=Te+\"{\"+Ue+\"}\";break;case te:if(Ue=(Te=Te.replace(b,\"$1 $2\"+(Be>0?De:\"\")))+\"{\"+Ue+\"}\",1===Ae||2===Ae&&Le(\"@\"+Ue,3))Ue=\"@\"+N+Ue+\"@\"+Ue;else Ue=\"@\"+Ue;break;default:if(Ue=Te+Ue,t===de)Ve+=Ue,Ue=\"\"}else Ue=\"\";break;default:Ue=He(a,Ie(a,Te,Oe),Ue,t,i+1)}Xe+=Ue,O=0,$e=0,z=0,we=0,Oe=0,j=0,Te=\"\",Ue=\"\",C=s.charCodeAt(++R);break;case q:case W:if((je=(Te=(we>0?Te.replace(c,\"\"):Te).trim()).length)>1){if(0===z)if((g=Te.charCodeAt(0))===Q||g>96&&g<123)je=(Te=Te.replace(\" \",\":\")).length;if(ye>0)if(void 0!==(n=Pe(Se,Te,a,e,pe,be,Ve.length,t,i,t)))if(0===(je=(Te=n.trim()).length))Te=\"\\0\\0\";switch(g=Te.charCodeAt(0),A=Te.charCodeAt(1),g){case re:break;case L:if(A===oe||A===he){Ye+=Te+s.charAt(R);break}default:if(Te.charCodeAt(je-1)===V)break;Ve+=Ke(Te,g,A,Te.charCodeAt(2))}}O=0,$e=0,z=0,we=0,Oe=0,Te=\"\",C=s.charCodeAt(++R)}}switch(C){case J:case I:if(h+d+u+o+ve===0)switch($){case E:case X:case Y:case L:case ae:case _:case T:case ee:case Z:case Q:case V:case U:case W:case B:case q:break;default:if(z>0)$e=1}if(h===Z)h=0;else if(ge+O===0&&t!==te&&Te.length>0)we=1,Te+=\"\\0\";if(ye*qe>0)Pe(Ne,Te,a,e,pe,be,Ve.length,t,i,t);be=1,pe++;break;case W:case q:if(h+d+u+o===0){be++;break}default:switch(be++,Re=s.charAt(R),C){case K:case M:if(d+o+h===0)switch(w){case U:case V:case K:case M:Re=\"\";break;default:if(C!==M)Re=\" \"}break;case re:Re=\"\\\\0\";break;case ce:Re=\"\\\\f\";break;case se:Re=\"\\\\v\";break;case P:if(d+h+o===0&&ge>0)Oe=1,we=1,Re=\"\\f\"+Re;break;case 108:if(d+h+o+ke===0&&z>0)switch(R-z){case 2:if(w===ne&&s.charCodeAt(R-3)===V)ke=w;case 8:if(m===le)ke=m}break;case V:if(d+h+o===0)z=R;break;case U:if(h+u+d+o===0)we=1,Re+=\"\\r\";break;case Y:case X:if(0===h)d=d===C?0:0===d?C:d;break;case G:if(d+h+u===0)o++;break;case H:if(d+h+u===0)o--;break;case E:if(d+h+o===0)u--;break;case D:if(d+h+o===0){if(0===O)switch(2*w+3*m){case 533:break;default:y=0,O=1}u++}break;case L:if(h+u+d+o+z+j===0)j=1;break;case T:case Z:if(d+o+u>0)break;switch(h){case 0:switch(2*C+3*s.charCodeAt(R+1)){case 235:h=Z;break;case 220:je=R,h=T}break;case T:if(C===Z&&w===T&&je+2!==R){if(33===s.charCodeAt(je+2))Ve+=s.substring(je,R+1);Re=\"\",h=0}}}if(0===h){if(ge+d+o+j===0&&t!==te&&C!==W)switch(C){case U:case ae:case _:case ee:case E:case D:if(0===O){switch(w){case K:case M:case I:case J:Re+=\"\\0\";break;default:Re=\"\\0\"+Re+(C===U?\"\":\"\\0\")}we=1}else switch(C){case D:if(z+7===R&&108===w)z=0;O=++y;break;case E:if(0==(O=--y))we=1,Re+=\"\\0\"}break;case K:case M:switch(w){case re:case B:case q:case W:case U:case ce:case K:case M:case I:case J:break;default:if(0===O)we=1,Re+=\"\\0\"}}if(Te+=Re,C!==M&&C!==K)$=C}}m=w,w=C,R++}if(je=Ve.length,me>0)if(0===je&&0===Xe.length&&0===a[0].length==false)if(t!==ie||1===a.length&&(ge>0?Ee:Ge)===a[0])je=a.join(\",\").length+2;if(je>0){if(f=0===ge&&t!==te?function(e){for(var a,r,s=0,t=e.length,i=Array(t);s1)continue;if(u=n.charCodeAt(n.length-1),d=r.charCodeAt(0),a=\"\",0!==o)switch(u){case T:case ae:case _:case ee:case M:case D:break;default:a=\" \"}switch(d){case P:r=a+Ee;case ae:case _:case ee:case M:case E:case D:break;case G:r=a+r+Ee;break;case V:switch(2*r.charCodeAt(1)+3*r.charCodeAt(2)){case 530:if(Ce>0){r=a+r.substring(8,h-1);break}default:if(o<1||f[o-1].length<1)r=a+Ee+r}break;case U:a=\"\";default:if(h>1&&r.indexOf(\":\")>0)r=a+r.replace(v,\"$1\"+Ee+\"$2\");else r=a+r+Ee}n+=r}i[s]=n.replace(c,\"\").trim()}return i}(a):a,ye>0)if(void 0!==(n=Pe(Fe,Ve,f,e,pe,be,je,t,i,t))&&0===(Ve=n).length)return Ye+Ve+Xe;if(Ve=f.join(\",\")+\"{\"+Ve+\"}\",Ae*ke!=0){if(2===Ae&&!Le(Ve,2))ke=0;switch(ke){case le:Ve=Ve.replace(k,\":\"+S+\"$1\")+Ve;break;case ne:Ve=Ve.replace(p,\"::\"+N+\"input-$1\")+Ve.replace(p,\"::\"+S+\"$1\")+Ve.replace(p,\":\"+F+\"input-$1\")+Ve}ke=0}}return Ye+Ve+Xe}function Ie(e,a,r){var c=a.trim().split(o),s=c,t=c.length,i=e.length;switch(i){case 0:case 1:for(var f=0,n=0===i?\"\":e[0]+\" \";f0&&ge>0)return s.replace(u,\"$1\").replace(h,\"$1\"+Ge);break;default:return e.trim()+s.replace(h,\"$1\"+e.trim())}default:if(r*ge>0&&s.indexOf(\"\\f\")>0)return s.replace(h,(e.charCodeAt(0)===V?\"\":\"$1\")+e.trim())}return e+s}function Ke(e,a,r,c){var l,o=0,h=e+\";\",u=2*a+3*r+4*c;if(944===u)return function(e){var a=e.length,r=e.indexOf(\":\",9)+1,c=e.substring(0,r).trim(),s=e.substring(r,a-1).trim();switch(e.charCodeAt(9)*Be){case 0:break;case Q:if(110!==e.charCodeAt(10))break;default:for(var t=s.split((s=\"\",f)),i=0,r=0,a=t.length;iL&&h<90||h>96&&h<123||h===R||h===Q&&l.charCodeAt(1)!==Q))switch(isNaN(parseFloat(l))+(-1!==l.indexOf(\"(\"))){case 1:switch(l){case\"infinite\":case\"alternate\":case\"backwards\":case\"running\":case\"normal\":case\"forwards\":case\"both\":case\"none\":case\"linear\":case\"ease\":case\"ease-in\":case\"ease-out\":case\"ease-in-out\":case\"paused\":case\"reverse\":case\"alternate-reverse\":case\"inherit\":case\"initial\":case\"unset\":case\"step-start\":case\"step-end\":break;default:l+=De}}o[r++]=l}s+=(0===i?\"\":\",\")+o.join(\" \")}}if(s=c+s+\";\",1===Ae||2===Ae&&Le(s,1))return N+s+s;return s}(h);else if(0===Ae||2===Ae&&!Le(h,1))return h;switch(u){case 1015:return 97===h.charCodeAt(10)?N+h+h:h;case 951:return 116===h.charCodeAt(3)?N+h+h:h;case 963:return 110===h.charCodeAt(5)?N+h+h:h;case 1009:if(100!==h.charCodeAt(4))break;case 969:case 942:return N+h+h;case 978:return N+h+S+h+h;case 1019:case 983:return N+h+S+h+F+h+h;case 883:if(h.charCodeAt(8)===Q)return N+h+h;if(h.indexOf(\"image-set(\",11)>0)return h.replace(z,\"$1\"+N+\"$2\")+h;return h;case 932:if(h.charCodeAt(4)===Q)switch(h.charCodeAt(5)){case 103:return N+\"box-\"+h.replace(\"-grow\",\"\")+N+h+F+h.replace(\"grow\",\"positive\")+h;case 115:return N+h+F+h.replace(\"shrink\",\"negative\")+h;case 98:return N+h+F+h.replace(\"basis\",\"preferred-size\")+h}return N+h+F+h+h;case 964:return N+h+F+\"flex-\"+h+h;case 1023:if(99!==h.charCodeAt(8))break;return l=h.substring(h.indexOf(\":\",15)).replace(\"flex-\",\"\").replace(\"space-between\",\"justify\"),N+\"box-pack\"+l+N+h+F+\"flex-pack\"+l+h;case 1005:return t.test(h)?h.replace(s,\":\"+N)+h.replace(s,\":\"+S)+h:h;case 1e3:switch(o=(l=h.substring(13).trim()).indexOf(\"-\")+1,l.charCodeAt(0)+l.charCodeAt(o)){case 226:l=h.replace(m,\"tb\");break;case 232:l=h.replace(m,\"tb-rl\");break;case 220:l=h.replace(m,\"lr\");break;default:return h}return N+h+F+l+h;case 1017:if(-1===h.indexOf(\"sticky\",9))return h;case 975:switch(o=(h=e).length-10,u=(l=(33===h.charCodeAt(o)?h.substring(0,o):h).substring(e.indexOf(\":\",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(l.charCodeAt(8)<111)break;case 115:h=h.replace(l,N+l)+\";\"+h;break;case 207:case 102:h=h.replace(l,N+(u>102?\"inline-\":\"\")+\"box\")+\";\"+h.replace(l,N+l)+\";\"+h.replace(l,F+l+\"box\")+\";\"+h}return h+\";\";case 938:if(h.charCodeAt(5)===Q)switch(h.charCodeAt(6)){case 105:return l=h.replace(\"-items\",\"\"),N+h+N+\"box-\"+l+F+\"flex-\"+l+h;case 115:return N+h+F+\"flex-item-\"+h.replace(y,\"\")+h;default:return N+h+F+\"flex-line-pack\"+h.replace(\"align-content\",\"\").replace(y,\"\")+h}break;case 973:case 989:if(h.charCodeAt(3)!==Q||122===h.charCodeAt(4))break;case 931:case 953:if(true===j.test(e))if(115===(l=e.substring(e.indexOf(\":\")+1)).charCodeAt(0))return Ke(e.replace(\"stretch\",\"fill-available\"),a,r,c).replace(\":fill-available\",\":stretch\");else return h.replace(l,N+l)+h.replace(l,S+l.replace(\"fill-\",\"\"))+h;break;case 962:if(h=N+h+(102===h.charCodeAt(5)?F+h:\"\")+h,r+c===211&&105===h.charCodeAt(13)&&h.indexOf(\"transform\",10)>0)return h.substring(0,h.indexOf(\";\",27)+1).replace(i,\"$1\"+N+\"$2\")+h}return h}function Le(e,a){var r=e.indexOf(1===a?\":\":\"{\"),c=e.substring(0,3!==a?r:10),s=e.substring(r+1,e.length-1);return Oe(2!==a?c:c.replace(O,\"$1\"),s,a)}function Me(e,a){var r=Ke(a,a.charCodeAt(0),a.charCodeAt(1),a.charCodeAt(2));return r!==a+\";\"?r.replace($,\" or ($1)\").substring(4):\"(\"+a+\")\"}function Pe(e,a,r,c,s,t,i,f,n,l){for(var o,h=0,u=a;h0)De=s.replace(d,t===G?\"\":\"-\");if(t=1,1===ge)Ge=s;else Ee=s;var i,f=[Ge];if(ye>0)if(void 0!==(i=Pe(ze,r,f,f,pe,be,0,0,0,0))&&\"string\"==typeof i)r=i;var n=He(xe,f,r,0,0);if(ye>0)if(void 0!==(i=Pe(je,n,f,f,pe,be,n.length,0,0,0))&&\"string\"!=typeof(n=i))t=0;return De=\"\",Ge=\"\",Ee=\"\",ke=0,pe=1,be=1,we*t==0?n:n.replace(c,\"\").replace(g,\"\").replace(A,\"$1\").replace(C,\"$1\").replace(w,\" \")}if(Te.use=function e(a){switch(a){case void 0:case null:ye=$e.length=0;break;default:if(\"function\"==typeof a)$e[ye++]=a;else if(\"object\"==typeof a)for(var r=0,c=a.length;r\n import(/* webpackChunkName: \"colorpicker\" */ '../fragments/ColorPicker.react')\n);\n/**\n * A color picker.\n */\nexport default class ColorPicker extends Component {\n render() {\n return (\n \n \n \n );\n }\n}\n\nColorPicker.defaultProps = {\n size: 225,\n theme: light,\n labelPosition: 'top',\n persisted_props: ['value'],\n persistence_type: 'local'\n};\n\nColorPicker.propTypes = {\n /**\n * The ID used to identify the color picker in Dash callbacks\n */\n id: PropTypes.string,\n\n /**\n * Color value of the picker\n */\n value: PropTypes.shape({\n /**\n * Hex string\n */\n hex: PropTypes.string,\n\n /**\n * RGB/RGBA object\n */\n rbg: PropTypes.shape({\n r: PropTypes.number,\n g: PropTypes.number,\n b: PropTypes.number,\n a: PropTypes.number\n })\n }),\n\n /**\n * If true, color cannot be picked.\n */\n disabled: PropTypes.bool,\n\n /**\n * Size (width) of the component in pixels\n */\n size: PropTypes.number,\n\n /**\n * Theme configuration to be set by a ThemeProvider\n */\n theme: PropTypes.object,\n\n /**\n * Description to be displayed alongside the control. To control styling,\n * pass an object with label and style properties\n */\n label: PropTypes.oneOfType([\n /**\n * Label to be displayed\n */\n PropTypes.string,\n\n /**\n * The style and label\n */\n PropTypes.shape({\n style: PropTypes.object,\n label: PropTypes.string\n })\n ]),\n\n /**\n * Where the indicator label is positioned\n */\n labelPosition: PropTypes.oneOf(['top', 'bottom']),\n\n /**\n * Class to apply to the root component element\n */\n className: PropTypes.string,\n\n /**\n * Dash-assigned callback that gets fired when\n * the color picker's value changes\n */\n setProps: PropTypes.func,\n\n /**\n * Style to apply to the root component element\n */\n style: PropTypes.object,\n\n /**\n * Used to allow user interactions in this component to be persisted when\n * the component - or the page - is refreshed. If `persisted` is truthy and\n * hasn't changed from its previous value, a `value` that the user has\n * changed while using the app will keep that change, as long as\n * the new `value` also matches what was given originally.\n * Used in conjunction with `persistence_type`.\n */\n persistence: PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.number]),\n\n /**\n * Properties whose user interactions will persist after refreshing the\n * component or the page. Since only `value` is allowed this prop can\n * normally be ignored.\n */\n persisted_props: PropTypes.arrayOf(PropTypes.oneOf(['value'])),\n\n /**\n * Where persisted user changes will be stored:\n * memory: only kept in memory, reset on page refresh.\n * local: window.localStorage, data is kept after the browser quit.\n * session: window.sessionStorage, data is cleared once the browser quit.\n */\n persistence_type: PropTypes.oneOf(['local', 'session', 'memory'])\n};\n\nexport const defaultProps = ColorPicker.defaultProps;\nexport const propTypes = ColorPicker.propTypes;\n","// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","// 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","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = require('./_hide');\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","(function (factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory()) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory()) :\n\t\t\t(window['stylisRuleSheet'] = factory())\n}(function () {\n\n\t'use strict'\n\n\treturn function (insertRule) {\n\t\tvar delimiter = '/*|*/'\n\t\tvar needle = delimiter+'}'\n\n\t\tfunction toSheet (block) {\n\t\t\tif (block)\n\t\t\t\ttry {\n\t\t\t\t\tinsertRule(block + '}')\n\t\t\t\t} catch (e) {}\n\t\t}\n\n\t\treturn function ruleSheet (context, content, selectors, parents, line, column, length, ns, depth, at) {\n\t\t\tswitch (context) {\n\t\t\t\t// property\n\t\t\t\tcase 1:\n\t\t\t\t\t// @import\n\t\t\t\t\tif (depth === 0 && content.charCodeAt(0) === 64)\n\t\t\t\t\t\treturn insertRule(content+';'), ''\n\t\t\t\t\tbreak\n\t\t\t\t// selector\n\t\t\t\tcase 2:\n\t\t\t\t\tif (ns === 0)\n\t\t\t\t\t\treturn content + delimiter\n\t\t\t\t\tbreak\n\t\t\t\t// at-rule\n\t\t\t\tcase 3:\n\t\t\t\t\tswitch (ns) {\n\t\t\t\t\t\t// @font-face, @page\n\t\t\t\t\t\tcase 102:\n\t\t\t\t\t\tcase 112:\n\t\t\t\t\t\t\treturn insertRule(selectors[0]+content), ''\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn content + (at === 0 ? delimiter : '')\n\t\t\t\t\t}\n\t\t\t\tcase -2:\n\t\t\t\t\tcontent.split(needle).forEach(toSheet)\n\t\t\t}\n\t\t}\n\t}\n}))\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","/*!\n * TinyGradient 0.4.3\n * Copyright 2014-2018 Damien \"Mistic\" Sorel (http://www.strangeplanet.fr)\n * Licensed under MIT (http://opensource.org/licenses/MIT)\n */\n\n(function (root, factory) {\n if (typeof module !== \"undefined\" && module.exports) {\n module.exports = factory(require('tinycolor2'));\n }\n else if (typeof define === 'function' && define.amd) {\n define(['tinycolor2'], factory);\n }\n else {\n root.tinygradient = factory(root.tinycolor);\n }\n}(this, function (tinycolor) {\n \"use strict\";\n\n var RGBA_MAX = {r: 256, g: 256, b: 256, a: 1};\n var HSVA_MAX = {h: 360, s: 1, v: 1, a: 1};\n\n /**\n * Linearly compute the step size between start and end (not normalized)\n * @param {Object} start - rgba or hsva\n * @param {Object} end - rgba or hsva\n * @param {int} steps - number of desired steps\n * @return {Object} rgba or hsva\n */\n function stepize(start, end, steps) {\n var step = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n step[k] = steps === 0 ? 0 : (end[k] - start[k]) / steps;\n }\n }\n\n return step;\n }\n\n /**\n * Compute the final step color\n * @param {Object} step - rgba or hsva from `stepize`\n * @param {Object} start - rgba or hsva\n * @param {int} i - color index\n * @param {Object} max - rgba or hsva of maximum values for each channel\n * @return {Object} rgba or hsva\n */\n function interpolate(step, start, i, max) {\n var color = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n color[k] = step[k] * i + start[k];\n color[k] = color[k] < 0 ? color[k] + max[k] : ( max[k] !== 1 ? color[k] % max[k] : color[k] );\n }\n }\n\n return color;\n }\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateRgb(stop1, stop2, steps) {\n var start = stop1.color.toRgb(),\n end = stop2.color.toRgb(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n color;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, RGBA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @param {Boolean} trigonometric - true to step in trigonometric order\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateHsv(stop1, stop2, steps, trigonometric) {\n var start = stop1.color.toHsv(),\n end = stop2.color.toHsv(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n diff, color;\n\n // recompute hue\n if ((start.h <= end.h && !trigonometric) || (start.h >= end.h && trigonometric)) {\n diff = end.h - start.h;\n }\n else if (trigonometric) {\n diff = 360 - end.h + start.h;\n }\n else {\n diff = 360 - start.h + end.h;\n }\n step.h = Math.pow(-1, trigonometric ? 1 : 0) * Math.abs(diff) / steps;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, HSVA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Compute substeps between each stops\n * @param {Object[]} stops\n * @param {int} steps\n * @return {int[]}\n */\n function computeSubsteps(stops, steps) {\n var l = stops.length;\n\n // validation\n steps = parseInt(steps);\n\n if (isNaN(steps) || steps < 2) {\n throw new Error('Invalid number of steps (< 2)');\n }\n if (steps < l) {\n throw new Error('Number of steps cannot be inferior to number of stops');\n }\n\n // compute substeps from stop positions\n var substeps = [];\n\n for (var i = 1; i < l; i++) {\n var step = (steps - 1) * (stops[i].pos - stops[i - 1].pos);\n substeps.push(Math.max(1, Math.round(step)));\n }\n\n // adjust number of steps\n var totalSubsteps = 1;\n for (var n = l - 1; n--;) totalSubsteps += substeps[n];\n\n while (totalSubsteps !== steps) {\n if (totalSubsteps < steps) {\n var min = Math.min.apply(null, substeps);\n substeps[substeps.indexOf(min)]++;\n totalSubsteps++;\n }\n else {\n var max = Math.max.apply(null, substeps);\n substeps[substeps.indexOf(max)]--;\n totalSubsteps--;\n }\n }\n\n return substeps;\n }\n\n /**\n * Compute the color at a specific position\n * @param {Object[]} stops\n * @param {float} pos\n * @param {string} method\n * @param {Object} max\n * @returns {tinycolor}\n */\n function computeAt(stops, pos, method, max) {\n if (pos < 0 || pos > 1) {\n throw new Error('Position must be between 0 and 1');\n }\n\n var start, end;\n for (var i = 0, l = stops.length; i < l - 1; i++) {\n if (pos >= stops[i].pos && pos < stops[i + 1].pos) {\n start = stops[i];\n end = stops[i + 1];\n break;\n }\n }\n\n if (!start) {\n start = end = stops[stops.length - 1];\n }\n\n var step = stepize(start.color[method](), end.color[method](), (end.pos - start.pos) * 100);\n var color = interpolate(step, start.color[method](), Math.round((pos - start.pos) * 100), max);\n return tinycolor(color);\n }\n\n /**\n * @class tinygradient\n * @param {*} stops\n */\n var TinyGradient = function (stops) {\n // varargs\n if (arguments.length === 1) {\n if (!(arguments[0] instanceof Array)) {\n throw new Error('\"stops\" is not an array');\n }\n stops = arguments[0];\n }\n else {\n stops = Array.prototype.slice.call(arguments);\n }\n\n // if we are called as a function, call using new instead\n if (!(this instanceof TinyGradient)) {\n return new TinyGradient(stops);\n }\n\n // validation\n if (stops.length < 2) {\n throw new Error('Invalid number of stops (< 2)');\n }\n\n var havingPositions = stops[0].pos !== undefined,\n l = stops.length,\n p = -1;\n // create tinycolor objects and clean positions\n this.stops = stops.map(function (stop, i) {\n var hasPosition = stop.pos !== undefined;\n if (havingPositions ^ hasPosition) {\n throw new Error('Cannot mix positionned and not posionned color stops');\n }\n\n if (hasPosition) {\n stop = {\n color: tinycolor(stop.color),\n pos : stop.pos\n };\n\n if (stop.pos < 0 || stop.pos > 1) {\n throw new Error('Color stops positions must be between 0 and 1');\n }\n else if (stop.pos <= p) {\n throw new Error('Color stops positions are not ordered');\n }\n p = stop.pos;\n }\n else {\n stop = {\n color: tinycolor(stop),\n pos : i / (l - 1)\n };\n }\n\n return stop;\n });\n\n if (this.stops[0].pos !== 0) {\n this.stops.unshift({\n color: this.stops[0].color,\n pos : 0\n });\n }\n if (this.stops[this.stops.length - 1].pos !== 1) {\n this.stops.push({\n color: this.stops[this.stops.length - 1].color,\n pos : 1\n });\n }\n };\n\n /**\n * Return new instance with reversed stops\n * @return {tinygradient}\n */\n TinyGradient.prototype.reverse = function () {\n var stops = [];\n\n this.stops.forEach(function (stop) {\n stops.push({\n color: stop.color,\n pos : 1 - stop.pos\n });\n });\n\n return new TinyGradient(stops.reverse());\n };\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {int} steps\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.rgb = function (steps) {\n var substeps = computeSubsteps(this.stops, steps),\n gradient = [];\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {int} steps\n * @param {Boolean|String} [mode=false]\n * - false to step in clockwise\n * - true to step in trigonometric order\n * - 'short' to use the shortest way\n * - 'long' to use the longest way\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.hsv = function (steps, mode) {\n var substeps = computeSubsteps(this.stops, steps),\n trigonometric = mode === true,\n parametrized = typeof mode === 'string',\n gradient = [],\n start, end, trig;\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n start = this.stops[i].color.toHsv();\n end = this.stops[i + 1].color.toHsv();\n\n if (parametrized) {\n trig = (start.h < end.h && end.h - start.h < 180) || (start.h > end.h && start.h - end.h > 180);\n }\n\n // rgb interpolation if one of the steps in grayscale\n if (start.s === 0 || end.s === 0) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n else {\n gradient = gradient.concat(interpolateHsv(this.stops[i], this.stops[i + 1], substeps[i],\n (mode === 'long' && trig) || (mode === 'short' && !trig) || (!parametrized && trigonometric)\n ));\n }\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate CSS3 command (no prefix) for this gradient\n * @param {String} [mode=linear] - 'linear' or 'radial'\n * @param {String} [direction] - default is 'to right' or 'ellipse at center'\n * @return {String}\n */\n TinyGradient.prototype.css = function (mode, direction) {\n mode = mode || 'linear';\n direction = direction || (mode === 'linear' ? 'to right' : 'ellipse at center');\n\n var css = mode + '-gradient(' + direction;\n this.stops.forEach(function (stop) {\n css += ', ' + stop.color.toRgbString() + ' ' + (stop.pos * 100) + '%';\n });\n css += ')';\n return css;\n };\n\n /**\n * Returns the color at specific position with RGBa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.rgbAt = function (pos) {\n return computeAt(this.stops, pos, 'toRgb', RGBA_MAX);\n };\n\n /**\n * Returns the color at specific position with HSVa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.hsvAt = function (pos) {\n return computeAt(this.stops, pos, 'toHsv', HSVA_MAX);\n };\n\n var STATIC_FNS = {\n 'rgb' : 1,\n 'hsv' : 2,\n 'css' : 2,\n 'rgbAt': 1,\n 'hsvAt': 1\n };\n\n Object.keys(STATIC_FNS).forEach(function (fn) {\n TinyGradient[fn] = function () {\n var colors = Array.prototype.slice.call(arguments);\n var args = colors.splice(-STATIC_FNS[fn]);\n var gradient = new TinyGradient(colors);\n return gradient[fn].apply(gradient, args);\n };\n });\n\n // export\n return TinyGradient;\n}));","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = addEventListener;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventObject = require('./EventObject');\n\nvar _EventObject2 = _interopRequireDefault(_EventObject);\n\nfunction addEventListener(target, eventType, callback, option) {\n function wrapCallback(e) {\n var ne = new _EventObject2['default'](e);\n callback.call(target, ne);\n }\n\n if (target.addEventListener) {\n var _ret = (function () {\n var useCapture = false;\n if (typeof option === 'object') {\n useCapture = option.capture || false;\n } else if (typeof option === 'boolean') {\n useCapture = option;\n }\n\n target.addEventListener(eventType, wrapCallback, option || false);\n\n return {\n v: {\n remove: function remove() {\n target.removeEventListener(eventType, wrapCallback, useCapture);\n }\n }\n };\n })();\n\n if (typeof _ret === 'object') return _ret.v;\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, wrapCallback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, wrapCallback);\n }\n };\n }\n}\n\nmodule.exports = exports['default'];","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\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 }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.nipplejs = f()}})(function(){var define,module,exports;\n'use strict';\n\n// Constants\nvar isTouch = !!('ontouchstart' in window);\nvar isPointer = window.PointerEvent ? true : false;\nvar isMSPointer = window.MSPointerEvent ? true : false;\nvar events = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend, touchcancel'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n },\n pointer: {\n start: 'pointerdown',\n move: 'pointermove',\n end: 'pointerup, pointercancel'\n },\n MSPointer: {\n start: 'MSPointerDown',\n move: 'MSPointerMove',\n end: 'MSPointerUp'\n }\n};\nvar toBind;\nvar secondBind = {};\nif (isPointer) {\n toBind = events.pointer;\n} else if (isMSPointer) {\n toBind = events.MSPointer;\n} else if (isTouch) {\n toBind = events.touch;\n secondBind = events.mouse;\n} else {\n toBind = events.mouse;\n}\n\n///////////////////////\n/// UTILS ///\n///////////////////////\n\nvar u = {};\nu.distance = function (p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return Math.sqrt((dx * dx) + (dy * dy));\n};\n\nu.angle = function(p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return u.degrees(Math.atan2(dy, dx));\n};\n\nu.findCoord = function(p, d, a) {\n var b = {x: 0, y: 0};\n a = u.radians(a);\n b.x = p.x - d * Math.cos(a);\n b.y = p.y - d * Math.sin(a);\n return b;\n};\n\nu.radians = function(a) {\n return a * (Math.PI / 180);\n};\n\nu.degrees = function(a) {\n return a * (180 / Math.PI);\n};\n\nu.bindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.addEventListener) {\n el.addEventListener(type, handler, false);\n } else if (el.attachEvent) {\n el.attachEvent(type, handler);\n }\n }\n};\n\nu.unbindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.removeEventListener) {\n el.removeEventListener(type, handler);\n } else if (el.detachEvent) {\n el.detachEvent(type, handler);\n }\n }\n};\n\nu.trigger = function (el, type, data) {\n var evt = new CustomEvent(type, data);\n el.dispatchEvent(evt);\n};\n\nu.prepareEvent = function (evt) {\n evt.preventDefault();\n return evt.type.match(/^touch/) ? evt.changedTouches : evt;\n};\n\nu.getScroll = function () {\n var x = (window.pageXOffset !== undefined) ?\n window.pageXOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollLeft;\n\n var y = (window.pageYOffset !== undefined) ?\n window.pageYOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollTop;\n return {\n x: x,\n y: y\n };\n};\n\nu.applyPosition = function (el, pos) {\n if (pos.top || pos.right || pos.bottom || pos.left) {\n el.style.top = pos.top;\n el.style.right = pos.right;\n el.style.bottom = pos.bottom;\n el.style.left = pos.left;\n } else {\n el.style.left = pos.x + 'px';\n el.style.top = pos.y + 'px';\n }\n};\n\nu.getTransitionStyle = function (property, values, time) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (typeof values === 'string') {\n obj[i] = values + ' ' + time;\n } else {\n var st = '';\n for (var j = 0, max = values.length; j < max; j += 1) {\n st += values[j] + ' ' + time + ', ';\n }\n obj[i] = st.slice(0, -2);\n }\n }\n }\n return obj;\n};\n\nu.getVendorStyle = function (property, value) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n obj[i] = value;\n }\n }\n return obj;\n};\n\nu.configStylePropertyObject = function (prop) {\n var obj = {};\n obj[prop] = '';\n var vendors = ['webkit', 'Moz', 'o'];\n vendors.forEach(function (vendor) {\n obj[vendor + prop.charAt(0).toUpperCase() + prop.slice(1)] = '';\n });\n return obj;\n};\n\nu.extend = function (objA, objB) {\n for (var i in objB) {\n if (objB.hasOwnProperty(i)) {\n objA[i] = objB[i];\n }\n }\n return objA;\n};\n\n// Overwrite only what's already present\nu.safeExtend = function (objA, objB) {\n var obj = {};\n for (var i in objA) {\n if (objA.hasOwnProperty(i) && objB.hasOwnProperty(i)) {\n obj[i] = objB[i];\n } else if (objA.hasOwnProperty(i)) {\n obj[i] = objA[i];\n }\n }\n return obj;\n};\n\n// Map for array or unique item.\nu.map = function (ar, fn) {\n if (ar.length) {\n for (var i = 0, max = ar.length; i < max; i += 1) {\n fn(ar[i]);\n }\n } else {\n fn(ar);\n }\n};\n\n///////////////////////\n/// SUPER CLASS ///\n///////////////////////\n\nfunction Super () {};\n\n// Basic event system.\nSuper.prototype.on = function (arg, cb) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n self._handlers_[type] = self._handlers_[type] || [];\n self._handlers_[type].push(cb);\n }\n return self;\n};\n\nSuper.prototype.off = function (type, cb) {\n var self = this;\n self._handlers_ = self._handlers_ || {};\n\n if (type === undefined) {\n self._handlers_ = {};\n } else if (cb === undefined) {\n self._handlers_[type] = null;\n } else if (self._handlers_[type] &&\n self._handlers_[type].indexOf(cb) >= 0) {\n self._handlers_[type].splice(self._handlers_[type].indexOf(cb), 1);\n }\n\n return self;\n};\n\nSuper.prototype.trigger = function (arg, data) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (self._handlers_[type] && self._handlers_[type].length) {\n self._handlers_[type].forEach(function (handler) {\n handler.call(self, {\n type: type,\n target: self\n }, data);\n });\n }\n }\n};\n\n// Configuration\nSuper.prototype.config = function (options) {\n var self = this;\n self.options = self.defaults || {};\n if (options) {\n self.options = u.safeExtend(self.options, options);\n }\n};\n\n// Bind internal events.\nSuper.prototype.bindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n self._domHandlers_[type] = function () {\n if (typeof self['on' + type] === 'function') {\n self['on' + type].apply(self, arguments);\n } else {\n console.warn('[WARNING] : Missing \"on' + type + '\" handler.');\n }\n };\n\n u.bindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.bindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n return self;\n};\n\n// Unbind dom events.\nSuper.prototype.unbindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n u.unbindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.unbindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n delete self._domHandlers_[type];\n\n return this;\n};\n\n///////////////////////\n/// THE NIPPLE ///\n///////////////////////\n\nfunction Nipple (collection, options) {\n this.identifier = options.identifier;\n this.position = options.position;\n this.frontPosition = options.frontPosition;\n this.collection = collection;\n\n // Defaults\n this.defaults = {\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n mode: 'dynamic',\n zone: document.body,\n lockX: false,\n lockY: false\n };\n\n this.config(options);\n\n // Overwrites\n if (this.options.mode === 'dynamic') {\n this.options.restOpacity = 0;\n }\n\n this.id = Nipple.id;\n Nipple.id += 1;\n this.buildEl()\n .stylize();\n\n // Nipple's API.\n this.instance = {\n el: this.ui.el,\n on: this.on.bind(this),\n off: this.off.bind(this),\n show: this.show.bind(this),\n hide: this.hide.bind(this),\n add: this.addToDom.bind(this),\n remove: this.removeFromDom.bind(this),\n destroy: this.destroy.bind(this),\n resetDirection: this.resetDirection.bind(this),\n computeDirection: this.computeDirection.bind(this),\n trigger: this.trigger.bind(this),\n position: this.position,\n frontPosition: this.frontPosition,\n ui: this.ui,\n identifier: this.identifier,\n id: this.id,\n options: this.options\n };\n\n return this.instance;\n};\n\nNipple.prototype = new Super();\nNipple.constructor = Nipple;\nNipple.id = 0;\n\n// Build the dom element of the Nipple instance.\nNipple.prototype.buildEl = function (options) {\n this.ui = {};\n\n if (this.options.dataOnly) {\n return this;\n }\n\n this.ui.el = document.createElement('div');\n this.ui.back = document.createElement('div');\n this.ui.front = document.createElement('div');\n\n this.ui.el.className = 'nipple collection_' + this.collection.id;\n this.ui.back.className = 'back';\n this.ui.front.className = 'front';\n\n this.ui.el.setAttribute('id', 'nipple_' + this.collection.id +\n '_' + this.id);\n\n this.ui.el.appendChild(this.ui.back);\n this.ui.el.appendChild(this.ui.front);\n\n return this;\n};\n\n// Apply CSS to the Nipple instance.\nNipple.prototype.stylize = function () {\n if (this.options.dataOnly) {\n return this;\n }\n var animTime = this.options.fadeTime + 'ms';\n var borderStyle = u.getVendorStyle('borderRadius', '50%');\n var transitStyle = u.getTransitionStyle('transition', 'opacity', animTime);\n var styles = {};\n styles.el = {\n position: 'absolute',\n opacity: this.options.restOpacity,\n display: 'block',\n 'zIndex': 999\n };\n\n styles.back = {\n position: 'absolute',\n display: 'block',\n width: this.options.size + 'px',\n height: this.options.size + 'px',\n marginLeft: -this.options.size / 2 + 'px',\n marginTop: -this.options.size / 2 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n styles.front = {\n width: this.options.size / 2 + 'px',\n height: this.options.size / 2 + 'px',\n position: 'absolute',\n display: 'block',\n marginLeft: -this.options.size / 4 + 'px',\n marginTop: -this.options.size / 4 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n u.extend(styles.el, transitStyle);\n u.extend(styles.back, borderStyle);\n u.extend(styles.front, borderStyle);\n\n this.applyStyles(styles);\n\n return this;\n};\n\nNipple.prototype.applyStyles = function (styles) {\n // Apply styles\n for (var i in this.ui) {\n if (this.ui.hasOwnProperty(i)) {\n for (var j in styles[i]) {\n this.ui[i].style[j] = styles[i][j];\n }\n }\n }\n\n return this;\n};\n\n// Inject the Nipple instance into DOM.\nNipple.prototype.addToDom = function () {\n // We're not adding it if we're dataOnly or already in dom.\n if (this.options.dataOnly || document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.appendChild(this.ui.el);\n return this;\n};\n\n// Remove the Nipple instance from DOM.\nNipple.prototype.removeFromDom = function () {\n if (this.options.dataOnly || !document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.removeChild(this.ui.el);\n return this;\n};\n\n// Entirely destroy this nipple\nNipple.prototype.destroy = function () {\n clearTimeout(this.removeTimeout);\n clearTimeout(this.showTimeout);\n clearTimeout(this.restTimeout);\n this.trigger('destroyed', this.instance);\n this.removeFromDom();\n this.off();\n};\n\n// Fade in the Nipple instance.\nNipple.prototype.show = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.addToDom();\n\n self.restCallback();\n\n setTimeout(function () {\n self.ui.el.style.opacity = 1;\n }, 0);\n\n self.showTimeout = setTimeout(function () {\n self.trigger('shown', self.instance);\n if (typeof cb === 'function') {\n cb.call(this);\n }\n }, self.options.fadeTime);\n\n return self;\n};\n\n// Fade out the Nipple instance.\nNipple.prototype.hide = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n self.ui.el.style.opacity = self.options.restOpacity;\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.removeTimeout = setTimeout(\n function () {\n var display = self.options.mode === 'dynamic' ? 'none' : 'block';\n self.ui.el.style.display = display;\n if (typeof cb === 'function') {\n cb.call(self);\n }\n\n self.trigger('hidden', self.instance);\n },\n self.options.fadeTime\n );\n if (self.options.restJoystick) {\n self.restPosition();\n }\n\n return self;\n};\n\nNipple.prototype.restPosition = function (cb) {\n var self = this;\n self.frontPosition = {\n x: 0,\n y: 0\n };\n var animTime = self.options.fadeTime + 'ms';\n\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition',\n ['top', 'left'], animTime);\n\n var styles = {front: {}};\n styles.front = {\n left: self.frontPosition.x + 'px',\n top: self.frontPosition.y + 'px'\n };\n\n self.applyStyles(transitStyle);\n self.applyStyles(styles);\n\n self.restTimeout = setTimeout(\n function () {\n if (typeof cb === 'function') {\n cb.call(self);\n }\n self.restCallback();\n },\n self.options.fadeTime\n );\n};\n\nNipple.prototype.restCallback = function () {\n var self = this;\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition', 'none', '');\n self.applyStyles(transitStyle);\n self.trigger('rested', self.instance);\n};\n\nNipple.prototype.resetDirection = function () {\n // Fully rebuild the object to let the iteration possible.\n this.direction = {\n x: false,\n y: false,\n angle: false\n };\n};\n\nNipple.prototype.computeDirection = function (obj) {\n var rAngle = obj.angle.radian;\n var angle45 = Math.PI / 4;\n var angle90 = Math.PI / 2;\n var direction, directionX, directionY;\n\n // Angular direction\n // \\ UP /\n // \\ /\n // LEFT RIGHT\n // / \\\n // /DOWN \\\n //\n if (\n rAngle > angle45 &&\n rAngle < (angle45 * 3) &&\n !obj.lockX\n ) {\n direction = 'up';\n } else if (\n rAngle > -angle45 &&\n rAngle <= angle45 &&\n !obj.lockY\n ) {\n direction = 'left';\n } else if (\n rAngle > (-angle45 * 3) &&\n rAngle <= -angle45 &&\n !obj.lockX\n ) {\n direction = 'down';\n } else if (!obj.lockY) {\n direction = 'right';\n }\n\n // Plain direction\n // UP |\n // _______ | RIGHT\n // LEFT |\n // DOWN |\n if (!obj.lockY) {\n if (rAngle > -angle90 && rAngle < angle90) {\n directionX = 'left';\n } else {\n directionX = 'right';\n }\n }\n\n if (!obj.lockX) {\n if (rAngle > 0) {\n directionY = 'up';\n } else {\n directionY = 'down';\n }\n }\n\n if (obj.force > this.options.threshold) {\n var oldDirection = {};\n for (var i in this.direction) {\n if (this.direction.hasOwnProperty(i)) {\n oldDirection[i] = this.direction[i];\n }\n }\n\n var same = {};\n\n this.direction = {\n x: directionX,\n y: directionY,\n angle: direction\n };\n\n obj.direction = this.direction;\n\n for (var i in oldDirection) {\n if (oldDirection[i] === this.direction[i]) {\n same[i] = true;\n }\n }\n\n // If all 3 directions are the same, we don't trigger anything.\n if (same.x && same.y && same.angle) {\n return obj;\n }\n\n if (!same.x || !same.y) {\n this.trigger('plain', obj);\n }\n\n if (!same.x) {\n this.trigger('plain:' + directionX, obj);\n }\n\n if (!same.y) {\n this.trigger('plain:' + directionY, obj);\n }\n\n if (!same.angle) {\n this.trigger('dir dir:' + direction, obj);\n }\n }\n return obj;\n};\n\n/* global Nipple, Super */\n\n///////////////////////////\n/// THE COLLECTION ///\n///////////////////////////\n\nfunction Collection (manager, options) {\n var self = this;\n self.nipples = [];\n self.idles = [];\n self.actives = [];\n self.ids = [];\n self.pressureIntervals = {};\n self.manager = manager;\n self.id = Collection.id;\n Collection.id += 1;\n\n // Defaults\n self.defaults = {\n zone: document.body,\n multitouch: false,\n maxNumberOfNipples: 10,\n mode: 'dynamic',\n position: {top: 0, left: 0},\n catchDistance: 200,\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n lockX: false,\n lockY: false\n };\n\n self.config(options);\n\n // Overwrites\n if (self.options.mode === 'static' || self.options.mode === 'semi') {\n self.options.multitouch = false;\n }\n\n if (!self.options.multitouch) {\n self.options.maxNumberOfNipples = 1;\n }\n\n self.updateBox();\n self.prepareNipples();\n self.bindings();\n self.begin();\n\n return self.nipples;\n}\n\nCollection.prototype = new Super();\nCollection.constructor = Collection;\nCollection.id = 0;\n\nCollection.prototype.prepareNipples = function () {\n var self = this;\n var nips = self.nipples;\n\n // Public API Preparation.\n nips.on = self.on.bind(self);\n nips.off = self.off.bind(self);\n nips.options = self.options;\n nips.destroy = self.destroy.bind(self);\n nips.ids = self.ids;\n nips.id = self.id;\n nips.processOnMove = self.processOnMove.bind(self);\n nips.processOnEnd = self.processOnEnd.bind(self);\n nips.get = function (id) {\n if (id === undefined) {\n return nips[0];\n }\n for (var i = 0, max = nips.length; i < max; i += 1) {\n if (nips[i].identifier === id) {\n return nips[i];\n }\n }\n return false;\n };\n};\n\nCollection.prototype.bindings = function () {\n var self = this;\n // Touch start event.\n self.bindEvt(self.options.zone, 'start');\n // Avoid native touch actions (scroll, zoom etc...) on the zone.\n self.options.zone.style.touchAction = 'none';\n self.options.zone.style.msTouchAction = 'none';\n};\n\nCollection.prototype.begin = function () {\n var self = this;\n var opts = self.options;\n\n // We place our static nipple\n // if needed.\n if (opts.mode === 'static') {\n var nipple = self.createNipple(\n opts.position,\n self.manager.getIdentifier()\n );\n // Add it to the dom.\n nipple.add();\n // Store it in idles.\n self.idles.push(nipple);\n }\n};\n\n// Nipple Factory\nCollection.prototype.createNipple = function (position, identifier) {\n var self = this;\n var scroll = u.getScroll();\n var toPutOn = {};\n var opts = self.options;\n\n if (position.x && position.y) {\n toPutOn = {\n x: position.x -\n (scroll.x + self.box.left),\n y: position.y -\n (scroll.y + self.box.top)\n };\n } else if (\n position.top ||\n position.right ||\n position.bottom ||\n position.left\n ) {\n\n // We need to compute the position X / Y of the joystick.\n var dumb = document.createElement('DIV');\n dumb.style.display = 'hidden';\n dumb.style.top = position.top;\n dumb.style.right = position.right;\n dumb.style.bottom = position.bottom;\n dumb.style.left = position.left;\n dumb.style.position = 'absolute';\n\n opts.zone.appendChild(dumb);\n var dumbBox = dumb.getBoundingClientRect();\n opts.zone.removeChild(dumb);\n\n toPutOn = position;\n position = {\n x: dumbBox.left + scroll.x,\n y: dumbBox.top + scroll.y\n };\n }\n\n var nipple = new Nipple(self, {\n color: opts.color,\n size: opts.size,\n threshold: opts.threshold,\n fadeTime: opts.fadeTime,\n dataOnly: opts.dataOnly,\n restJoystick: opts.restJoystick,\n restOpacity: opts.restOpacity,\n mode: opts.mode,\n identifier: identifier,\n position: position,\n zone: opts.zone,\n frontPosition: {\n x: 0,\n y: 0\n }\n });\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.el, toPutOn);\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n self.nipples.push(nipple);\n self.trigger('added ' + nipple.identifier + ':added', nipple);\n self.manager.trigger('added ' + nipple.identifier + ':added', nipple);\n\n self.bindNipple(nipple);\n\n return nipple;\n};\n\nCollection.prototype.updateBox = function () {\n var self = this;\n self.box = self.options.zone.getBoundingClientRect();\n};\n\nCollection.prototype.bindNipple = function (nipple) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's id.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed.\n nipple.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n nipple.on('shown hidden rested dir plain', handler);\n nipple.on('dir:up dir:right dir:down dir:left', handler);\n nipple.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nCollection.prototype.pressureFn = function (touch, nipple, identifier) {\n var self = this;\n var previousPressure = 0;\n clearInterval(self.pressureIntervals[identifier]);\n // Create an interval that will read the pressure every 100ms\n self.pressureIntervals[identifier] = setInterval(function () {\n var pressure = touch.force || touch.pressure ||\n touch.webkitForce || 0;\n if (pressure !== previousPressure) {\n nipple.trigger('pressure', pressure);\n self.trigger('pressure ' +\n nipple.identifier + ':pressure', pressure);\n previousPressure = pressure;\n }\n }.bind(self), 100);\n};\n\nCollection.prototype.onstart = function (evt) {\n var self = this;\n var opts = self.options;\n evt = u.prepareEvent(evt);\n\n // Update the box position\n self.updateBox();\n\n var process = function (touch) {\n // If we can create new nipples\n // meaning we don't have more active nipples than we should.\n if (self.actives.length < opts.maxNumberOfNipples) {\n self.processOnStart(touch);\n }\n };\n\n u.map(evt, process);\n\n // We ask upstream to bind the document\n // on 'move' and 'end'\n self.manager.bindDocument();\n return false;\n};\n\nCollection.prototype.processOnStart = function (evt) {\n var self = this;\n var opts = self.options;\n var indexInIdles;\n var identifier = self.manager.getIdentifier(evt);\n var pressure = evt.force || evt.pressure || evt.webkitForce || 0;\n var position = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var nipple = self.getOrCreate(identifier, position);\n\n // Update its touch identifier\n if (nipple.identifier !== identifier) {\n self.manager.removeIdentifier(nipple.identifier);\n }\n nipple.identifier = identifier;\n\n var process = function (nip) {\n // Trigger the start.\n nip.trigger('start', nip);\n self.trigger('start ' + nip.id + ':start', nip);\n\n nip.show();\n if (pressure > 0) {\n self.pressureFn(evt, nip, nip.identifier);\n }\n // Trigger the first move event.\n self.processOnMove(evt);\n };\n\n // Transfer it from idles to actives.\n if ((indexInIdles = self.idles.indexOf(nipple)) >= 0) {\n self.idles.splice(indexInIdles, 1);\n }\n\n // Store the nipple in the actives array\n self.actives.push(nipple);\n self.ids.push(nipple.identifier);\n\n if (opts.mode !== 'semi') {\n process(nipple);\n } else {\n // In semi we check the distance of the touch\n // to decide if we have to reset the nipple\n var distance = u.distance(position, nipple.position);\n if (distance <= opts.catchDistance) {\n process(nipple);\n } else {\n nipple.destroy();\n self.processOnStart(evt);\n return;\n }\n }\n\n return nipple;\n};\n\nCollection.prototype.getOrCreate = function (identifier, position) {\n var self = this;\n var opts = self.options;\n var nipple;\n\n // If we're in static or semi, we might already have an active.\n if (/(semi|static)/.test(opts.mode)) {\n // Get the active one.\n // TODO: Multi-touche for semi and static will start here.\n // Return the nearest one.\n nipple = self.idles[0];\n if (nipple) {\n self.idles.splice(0, 1);\n return nipple;\n }\n\n if (opts.mode === 'semi') {\n // If we're in semi mode, we need to create one.\n return self.createNipple(position, identifier);\n }\n\n console.warn('Coudln\\'t find the needed nipple.');\n return false;\n }\n // In dynamic, we create a new one.\n nipple = self.createNipple(position, identifier);\n return nipple;\n};\n\nCollection.prototype.processOnMove = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n\n if (!nipple) {\n // This is here just for safety.\n // It shouldn't happen.\n console.error('Found zombie joystick with ID ' + identifier);\n self.manager.removeIdentifier(identifier);\n return;\n }\n\n nipple.identifier = identifier;\n\n var size = nipple.options.size / 2;\n var pos = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var dist = u.distance(pos, nipple.position);\n var angle = u.angle(pos, nipple.position);\n var rAngle = u.radians(angle);\n var force = dist / size;\n\n // If distance is bigger than nipple's size\n // we clamp the position.\n if (dist > size) {\n dist = size;\n pos = u.findCoord(nipple.position, dist, angle);\n }\n\n var xPosition = pos.x - nipple.position.x\n var yPosition = pos.y - nipple.position.y\n\n if (opts.lockX){\n yPosition = 0\n }\n if (opts.lockY) {\n xPosition = 0\n }\n\n nipple.frontPosition = {\n x: xPosition,\n y: yPosition\n };\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n\n // Prepare event's datas.\n var toSend = {\n identifier: nipple.identifier,\n position: pos,\n force: force,\n pressure: evt.force || evt.pressure || evt.webkitForce || 0,\n distance: dist,\n angle: {\n radian: rAngle,\n degree: angle\n },\n instance: nipple,\n lockX: opts.lockX,\n lockY: opts.lockY\n };\n\n // Compute the direction's datas.\n toSend = nipple.computeDirection(toSend);\n\n // Offset angles to follow units circle.\n toSend.angle = {\n radian: u.radians(180 - angle),\n degree: 180 - angle\n };\n\n // Send everything to everyone.\n nipple.trigger('move', toSend);\n self.trigger('move ' + nipple.id + ':move', toSend);\n};\n\nCollection.prototype.processOnEnd = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n var removedIdentifier = self.manager.removeIdentifier(nipple.identifier);\n\n if (!nipple) {\n return;\n }\n\n if (!opts.dataOnly) {\n nipple.hide(function () {\n if (opts.mode === 'dynamic') {\n nipple.trigger('removed', nipple);\n self.trigger('removed ' + nipple.id + ':removed', nipple);\n self.manager\n .trigger('removed ' + nipple.id + ':removed', nipple);\n nipple.destroy();\n }\n });\n }\n\n // Clear the pressure interval reader\n clearInterval(self.pressureIntervals[nipple.identifier]);\n\n // Reset the direciton of the nipple, to be able to trigger a new direction\n // on start.\n nipple.resetDirection();\n\n nipple.trigger('end', nipple);\n self.trigger('end ' + nipple.id + ':end', nipple);\n\n // Remove identifier from our bank.\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Clean our actives array.\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n\n if (/(semi|static)/.test(opts.mode)) {\n // Transfer nipple from actives to idles\n // if we're in semi or static mode.\n self.idles.push(nipple);\n } else if (self.nipples.indexOf(nipple) >= 0) {\n // Only if we're not in semi or static mode\n // we can remove the instance.\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n\n // We unbind move and end.\n self.manager.unbindDocument();\n\n // We add back the identifier of the idle nipple;\n if (/(semi|static)/.test(opts.mode)) {\n self.manager.ids[removedIdentifier.id] = removedIdentifier.identifier;\n }\n};\n\n// Remove destroyed nipple from the lists\nCollection.prototype.onDestroyed = function(evt, nipple) {\n var self = this;\n if (self.nipples.indexOf(nipple) >= 0) {\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n if (self.idles.indexOf(nipple) >= 0) {\n self.idles.splice(self.idles.indexOf(nipple), 1);\n }\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Remove the identifier from our bank\n self.manager.removeIdentifier(nipple.identifier);\n\n // We unbind move and end.\n self.manager.unbindDocument();\n};\n\n// Cleanly destroy the manager\nCollection.prototype.destroy = function () {\n var self = this;\n self.unbindEvt(self.options.zone, 'start');\n\n // Destroy nipples.\n self.nipples.forEach(function(nipple) {\n nipple.destroy();\n });\n\n // Clean 3DTouch intervals.\n for (var i in self.pressureIntervals) {\n if (self.pressureIntervals.hasOwnProperty(i)) {\n clearInterval(self.pressureIntervals[i]);\n }\n }\n\n // Notify the manager passing the instance\n self.trigger('destroyed', self.nipples);\n // We unbind move and end.\n self.manager.unbindDocument();\n // Unbind everything.\n self.off();\n};\n\n/* global u, Super, Collection */\n\n///////////////////////\n/// MANAGER ///\n///////////////////////\n\nfunction Manager (options) {\n var self = this;\n self.ids = {};\n self.index = 0;\n self.collections = [];\n\n self.config(options);\n self.prepareCollections();\n\n // Listen for resize, to reposition every joysticks\n var resizeTimer;\n u.bindEvt(window, 'resize', function (evt) {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(function () {\n var pos;\n var scroll = u.getScroll();\n self.collections.forEach(function (collection) {\n collection.forEach(function (nipple) {\n pos = nipple.el.getBoundingClientRect();\n nipple.position = {\n x: scroll.x + pos.left,\n y: scroll.y + pos.top\n };\n });\n });\n }, 100);\n });\n\n return self.collections;\n};\n\nManager.prototype = new Super();\nManager.constructor = Manager;\n\nManager.prototype.prepareCollections = function () {\n var self = this;\n // Public API Preparation.\n self.collections.create = self.create.bind(self);\n // Listen to anything\n self.collections.on = self.on.bind(self);\n // Unbind general events\n self.collections.off = self.off.bind(self);\n // Destroy everything\n self.collections.destroy = self.destroy.bind(self);\n // Get any nipple\n self.collections.get = function (id) {\n var nipple;\n self.collections.every(function (collection) {\n if (nipple = collection.get(id)) {\n return false;\n }\n return true;\n });\n return nipple;\n };\n};\n\nManager.prototype.create = function (options) {\n return this.createCollection(options);\n};\n\n// Collection Factory\nManager.prototype.createCollection = function (options) {\n var self = this;\n var collection = new Collection(self, options);\n\n self.bindCollection(collection);\n self.collections.push(collection);\n\n return collection;\n};\n\nManager.prototype.bindCollection = function (collection) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's identifier.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed we clean.\n collection.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n collection.on('shown hidden rested dir plain', handler);\n collection.on('dir:up dir:right dir:down dir:left', handler);\n collection.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nManager.prototype.bindDocument = function () {\n var self = this;\n // Bind only if not already binded\n if (!self.binded) {\n self.bindEvt(document, 'move')\n .bindEvt(document, 'end');\n self.binded = true;\n }\n};\n\nManager.prototype.unbindDocument = function (force) {\n var self = this;\n // If there are no touch left\n // unbind the document.\n if (!Object.keys(self.ids).length || force === true) {\n self.unbindEvt(document, 'move')\n .unbindEvt(document, 'end');\n self.binded = false;\n }\n};\n\nManager.prototype.getIdentifier = function (evt) {\n var id;\n // If no event, simple increment\n if (!evt) {\n id = this.index;\n } else {\n // Extract identifier from event object.\n // Unavailable in mouse events so replaced by latest increment.\n id = evt.identifier === undefined ? evt.pointerId : evt.identifier;\n if (id === undefined) {\n id = this.latest || 0;\n }\n }\n\n if (this.ids[id] === undefined) {\n this.ids[id] = this.index;\n this.index += 1;\n }\n\n // Keep the latest id used in case we're using an unidentified mouseEvent\n this.latest = id;\n return this.ids[id];\n};\n\nManager.prototype.removeIdentifier = function (identifier) {\n var removed = {};\n for (var id in this.ids) {\n if (this.ids[id] === identifier) {\n removed.id = id;\n removed.identifier = this.ids[id];\n delete this.ids[id];\n break;\n }\n }\n return removed;\n};\n\nManager.prototype.onmove = function (evt) {\n var self = this;\n self.onAny('move', evt);\n return false;\n};\n\nManager.prototype.onend = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.oncancel = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.onAny = function (which, evt) {\n var self = this;\n var id;\n var processFn = 'processOn' + which.charAt(0).toUpperCase() +\n which.slice(1);\n evt = u.prepareEvent(evt);\n var processColl = function (e, id, coll) {\n if (coll.ids.indexOf(id) >= 0) {\n coll[processFn](e);\n // Mark the event to avoid cleaning it later.\n e._found_ = true;\n }\n };\n var processEvt = function (e) {\n id = self.getIdentifier(e);\n u.map(self.collections, processColl.bind(null, e, id));\n // If the event isn't handled by any collection,\n // we need to clean its identifier.\n if (!e._found_) {\n self.removeIdentifier(id);\n }\n };\n\n u.map(evt, processEvt);\n\n return false;\n};\n\n// Cleanly destroy the manager\nManager.prototype.destroy = function () {\n var self = this;\n self.unbindDocument(true);\n self.ids = {};\n self.index = 0;\n self.collections.forEach(function(collection) {\n collection.destroy();\n });\n self.off();\n};\n\n// When a collection gets destroyed\n// we clean behind.\nManager.prototype.onDestroyed = function (evt, coll) {\n var self = this;\n if (self.collections.indexOf(coll) < 0) {\n return false;\n }\n self.collections.splice(self.collections.indexOf(coll), 1);\n};\n\nvar factory = new Manager();\nreturn {\n create: function (options) {\n return factory.create(options);\n },\n factory: factory\n};\n\n});\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","/**\r\n * Returns the object type of the given payload\r\n *\r\n * @param {*} payload\r\n * @returns {string}\r\n */\r\nfunction getType(payload) {\r\n return Object.prototype.toString.call(payload).slice(8, -1);\r\n}\r\n/**\r\n * Returns whether the payload is undefined\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isUndefined(payload) {\r\n return getType(payload) === 'Undefined';\r\n}\r\n/**\r\n * Returns whether the payload is null\r\n *\r\n * @param {*} payload\r\n * @returns {payload is null}\r\n */\r\nfunction isNull(payload) {\r\n return getType(payload) === 'Null';\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isPlainObject(payload) {\r\n if (getType(payload) !== 'Object')\r\n return false;\r\n return (payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype);\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isObject(payload) {\r\n return isPlainObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isAnyObject(payload) {\r\n return getType(payload) === 'Object';\r\n}\r\n/**\r\n * Returns whether the payload is an object like a type passed in < >\r\n *\r\n * Usage: isObjectLike<{id: any}>(payload) // will make sure it's an object and has an `id` prop.\r\n *\r\n * @template T this must be passed in < >\r\n * @param {*} payload\r\n * @returns {payload is T}\r\n */\r\nfunction isObjectLike(payload) {\r\n return isAnyObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a function\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Function}\r\n */\r\nfunction isFunction(payload) {\r\n return getType(payload) === 'Function';\r\n}\r\n/**\r\n * Returns whether the payload is an array\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isArray(payload) {\r\n return getType(payload) === 'Array';\r\n}\r\n/**\r\n * Returns whether the payload is a string\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isString(payload) {\r\n return getType(payload) === 'String';\r\n}\r\n/**\r\n * Returns whether the payload is a string, BUT returns false for ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isFullString(payload) {\r\n return isString(payload) && payload !== '';\r\n}\r\n/**\r\n * Returns whether the payload is ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isEmptyString(payload) {\r\n return payload === '';\r\n}\r\n/**\r\n * Returns whether the payload is a number\r\n *\r\n * This will return false for NaN\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\r\nfunction isNumber(payload) {\r\n return (getType(payload) === 'Number' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a boolean\r\n *\r\n * @param {*} payload\r\n * @returns {payload is boolean}\r\n */\r\nfunction isBoolean(payload) {\r\n return getType(payload) === 'Boolean';\r\n}\r\n/**\r\n * Returns whether the payload is a regular expression\r\n *\r\n * @param {*} payload\r\n * @returns {payload is RegExp}\r\n */\r\nfunction isRegExp(payload) {\r\n return getType(payload) === 'RegExp';\r\n}\r\n/**\r\n * Returns whether the payload is a date, and that the date is Valid\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Date}\r\n */\r\nfunction isDate(payload) {\r\n return (getType(payload) === 'Date' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a Symbol\r\n *\r\n * @param {*} payload\r\n * @returns {payload is symbol}\r\n */\r\nfunction isSymbol(payload) {\r\n return (getType(payload) === 'Symbol');\r\n}\r\n/**\r\n * Returns whether the payload is a primitive type (eg. Boolean | Null | Undefined | Number | String | Symbol)\r\n *\r\n * @param {*} payload\r\n * @returns {(payload is boolean | null | undefined | number | string | symbol)}\r\n */\r\nfunction isPrimitive(payload) {\r\n return (isBoolean(payload) ||\r\n isNull(payload) ||\r\n isUndefined(payload) ||\r\n isNumber(payload) ||\r\n isString(payload) ||\r\n isSymbol(payload));\r\n}\r\n/**\r\n * Does a generic check to check that the given payload is of a given type.\r\n * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!);\r\n * It will, however, differentiate between object and null\r\n *\r\n * @template T\r\n * @param {*} payload\r\n * @param {T} type\r\n * @throws {TypeError} Will throw type error if type is an invalid type\r\n * @returns {payload is T}\r\n */\r\nfunction isType(payload, type) {\r\n if (!(type instanceof Function)) {\r\n throw new TypeError('Type must be a function');\r\n }\r\n if (!type.hasOwnProperty('prototype')) {\r\n throw new TypeError('Type is not a class');\r\n }\r\n // Classes usually have names (as functions usually have names)\r\n var name = type.name;\r\n return (getType(payload) === name) || Boolean(payload && (payload.constructor === type));\r\n}\n\nexport { getType, isUndefined, isNull, isPlainObject, isObject, isAnyObject, isObjectLike, isFunction, isArray, isString, isFullString, isEmptyString, isNumber, isBoolean, isRegExp, isDate, isSymbol, isPrimitive, isType };\n","import { isArray, isPlainObject, isSymbol } from 'is-what';\n\nfunction assignProp(carry, key, newVal, originalObject) {\r\n var propType = originalObject.propertyIsEnumerable(key)\r\n ? 'enumerable'\r\n : 'nonenumerable';\r\n if (propType === 'enumerable')\r\n carry[key] = newVal;\r\n if (propType === 'nonenumerable') {\r\n Object.defineProperty(carry, key, {\r\n value: newVal,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n });\r\n }\r\n}\r\nfunction mergeRecursively(origin, newComer, extensions) {\r\n // work directly on newComer if its not an object\r\n if (!isPlainObject(newComer)) {\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newComer = extend(origin, newComer);\r\n });\r\n }\r\n return newComer;\r\n }\r\n // define newObject to merge all values upon\r\n var newObject = {};\r\n if (isPlainObject(origin)) {\r\n var props_1 = Object.getOwnPropertyNames(origin);\r\n var symbols_1 = Object.getOwnPropertySymbols(origin);\r\n newObject = props_1.concat(symbols_1).reduce(function (carry, key) {\r\n // @ts-ignore\r\n var targetVal = origin[key];\r\n if ((!isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key)) ||\r\n (isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key))) {\r\n assignProp(carry, key, targetVal, origin);\r\n }\r\n return carry;\r\n }, {});\r\n }\r\n var props = Object.getOwnPropertyNames(newComer);\r\n var symbols = Object.getOwnPropertySymbols(newComer);\r\n var result = props.concat(symbols).reduce(function (carry, key) {\r\n // re-define the origin and newComer as targetVal and newVal\r\n var newVal = newComer[key];\r\n var targetVal = (isPlainObject(origin))\r\n // @ts-ignore\r\n ? origin[key]\r\n : undefined;\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newVal = extend(targetVal, newVal);\r\n });\r\n }\r\n // When newVal is an object do the merge recursively\r\n if (targetVal !== undefined && isPlainObject(newVal)) {\r\n newVal = mergeRecursively(targetVal, newVal, extensions);\r\n }\r\n assignProp(carry, key, newVal, newComer);\r\n return carry;\r\n }, newObject);\r\n return result;\r\n}\r\n/**\r\n * Merge anything recursively.\r\n * Objects get merged, special objects (classes etc.) are re-assigned \"as is\".\r\n * Basic types overwrite objects or other basic types.\r\n *\r\n * @param {(IConfig | any)} origin\r\n * @param {...any[]} newComers\r\n * @returns the result\r\n */\r\nfunction merge(origin) {\r\n var newComers = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n newComers[_i - 1] = arguments[_i];\r\n }\r\n var extensions = null;\r\n var base = origin;\r\n if (isPlainObject(origin) && origin.extensions && Object.keys(origin).length === 1) {\r\n base = {};\r\n extensions = origin.extensions;\r\n }\r\n return newComers.reduce(function (result, newComer) {\r\n return mergeRecursively(result, newComer, extensions);\r\n }, base);\r\n}\n\nfunction concatArrays(originVal, newVal) {\r\n if (isArray(originVal) && isArray(newVal)) {\r\n // concat logic\r\n return originVal.concat(newVal);\r\n }\r\n return newVal; // always return newVal as fallback!!\r\n}\n\nexport default merge;\nexport { merge, concatArrays };\n","/** @license React v16.8.6\n * react-is.production.min.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'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (colorNames.hasOwnProperty(name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar keyword = /(\\D+)/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\n\t\tif (!rgb) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = (parseFloat(match[1]) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = num.toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function () { /* empty */ };\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","/**\n * @ignore\n * event object for dom\n * @author yiminghe@gmail.com\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventBaseObject = require('./EventBaseObject');\n\nvar _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar TRUE = true;\nvar FALSE = false;\nvar commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];\n\nfunction isNullOrUndefined(w) {\n return w === null || w === undefined;\n}\n\nvar eventNormalizers = [{\n reg: /^key/,\n props: ['char', 'charCode', 'key', 'keyCode', 'which'],\n fix: function fix(event, nativeEvent) {\n if (isNullOrUndefined(event.which)) {\n event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;\n }\n\n // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)\n if (event.metaKey === undefined) {\n event.metaKey = event.ctrlKey;\n }\n }\n}, {\n reg: /^touch/,\n props: ['touches', 'changedTouches', 'targetTouches']\n}, {\n reg: /^hashchange$/,\n props: ['newURL', 'oldURL']\n}, {\n reg: /^gesturechange$/i,\n props: ['rotation', 'scale']\n}, {\n reg: /^(mousewheel|DOMMouseScroll)$/,\n props: [],\n fix: function fix(event, nativeEvent) {\n var deltaX = undefined;\n var deltaY = undefined;\n var delta = undefined;\n var wheelDelta = nativeEvent.wheelDelta;\n var axis = nativeEvent.axis;\n var wheelDeltaY = nativeEvent.wheelDeltaY;\n var wheelDeltaX = nativeEvent.wheelDeltaX;\n var detail = nativeEvent.detail;\n\n // ie/webkit\n if (wheelDelta) {\n delta = wheelDelta / 120;\n }\n\n // gecko\n if (detail) {\n // press control e.detail == 1 else e.detail == 3\n delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);\n }\n\n // Gecko\n if (axis !== undefined) {\n if (axis === event.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = 0 - delta;\n } else if (axis === event.VERTICAL_AXIS) {\n deltaX = 0;\n deltaY = delta;\n }\n }\n\n // Webkit\n if (wheelDeltaY !== undefined) {\n deltaY = wheelDeltaY / 120;\n }\n if (wheelDeltaX !== undefined) {\n deltaX = -1 * wheelDeltaX / 120;\n }\n\n // 默认 deltaY (ie)\n if (!deltaX && !deltaY) {\n deltaY = delta;\n }\n\n if (deltaX !== undefined) {\n /**\n * deltaX of mousewheel event\n * @property deltaX\n * @member Event.DomEvent.Object\n */\n event.deltaX = deltaX;\n }\n\n if (deltaY !== undefined) {\n /**\n * deltaY of mousewheel event\n * @property deltaY\n * @member Event.DomEvent.Object\n */\n event.deltaY = deltaY;\n }\n\n if (delta !== undefined) {\n /**\n * delta of mousewheel event\n * @property delta\n * @member Event.DomEvent.Object\n */\n event.delta = delta;\n }\n }\n}, {\n reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,\n props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],\n fix: function fix(event, nativeEvent) {\n var eventDoc = undefined;\n var doc = undefined;\n var body = undefined;\n var target = event.target;\n var button = nativeEvent.button;\n\n // Calculate pageX/Y if missing and clientX/Y available\n if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {\n eventDoc = target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // which for click: 1 === left; 2 === middle; 3 === right\n // do not use button\n if (!event.which && button !== undefined) {\n if (button & 1) {\n event.which = 1;\n } else if (button & 2) {\n event.which = 3;\n } else if (button & 4) {\n event.which = 2;\n } else {\n event.which = 0;\n }\n }\n\n // add relatedTarget, if necessary\n if (!event.relatedTarget && event.fromElement) {\n event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;\n }\n\n return event;\n }\n}];\n\nfunction retTrue() {\n return TRUE;\n}\n\nfunction retFalse() {\n return FALSE;\n}\n\nfunction DomEventObject(nativeEvent) {\n var type = nativeEvent.type;\n\n var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';\n\n _EventBaseObject2['default'].call(this);\n\n this.nativeEvent = nativeEvent;\n\n // in case dom event has been mark as default prevented by lower dom node\n var isDefaultPrevented = retFalse;\n if ('defaultPrevented' in nativeEvent) {\n isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;\n } else if ('getPreventDefault' in nativeEvent) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=691151\n isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;\n } else if ('returnValue' in nativeEvent) {\n isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;\n }\n\n this.isDefaultPrevented = isDefaultPrevented;\n\n var fixFns = [];\n var fixFn = undefined;\n var l = undefined;\n var prop = undefined;\n var props = commonProps.concat();\n\n eventNormalizers.forEach(function (normalizer) {\n if (type.match(normalizer.reg)) {\n props = props.concat(normalizer.props);\n if (normalizer.fix) {\n fixFns.push(normalizer.fix);\n }\n }\n });\n\n l = props.length;\n\n // clone properties of the original event object\n while (l) {\n prop = props[--l];\n this[prop] = nativeEvent[prop];\n }\n\n // fix target property, if necessary\n if (!this.target && isNative) {\n this.target = nativeEvent.srcElement || document; // srcElement might not be defined either\n }\n\n // check if target is a text node (safari)\n if (this.target && this.target.nodeType === 3) {\n this.target = this.target.parentNode;\n }\n\n l = fixFns.length;\n\n while (l) {\n fixFn = fixFns[--l];\n fixFn(this, nativeEvent);\n }\n\n this.timeStamp = nativeEvent.timeStamp || Date.now();\n}\n\nvar EventBaseObjectProto = _EventBaseObject2['default'].prototype;\n\n(0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {\n constructor: DomEventObject,\n\n preventDefault: function preventDefault() {\n var e = this.nativeEvent;\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n // otherwise set the returnValue property of the original event to FALSE (IE)\n e.returnValue = FALSE;\n }\n\n EventBaseObjectProto.preventDefault.call(this);\n },\n\n stopPropagation: function stopPropagation() {\n var e = this.nativeEvent;\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n } else {\n // otherwise set the cancelBubble property of the original event to TRUE (IE)\n e.cancelBubble = TRUE;\n }\n\n EventBaseObjectProto.stopPropagation.call(this);\n }\n});\n\nexports['default'] = DomEventObject;\nmodule.exports = exports['default'];","/**\n * @ignore\n * base event object for custom and dom event.\n * @author yiminghe@gmail.com\n */\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction returnFalse() {\n return false;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction EventBaseObject() {\n this.timeStamp = Date.now();\n this.target = undefined;\n this.currentTarget = undefined;\n}\n\nEventBaseObject.prototype = {\n isEventObject: 1,\n\n constructor: EventBaseObject,\n\n isDefaultPrevented: returnFalse,\n\n isPropagationStopped: returnFalse,\n\n isImmediatePropagationStopped: returnFalse,\n\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n },\n\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n },\n\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n // fixed 1.2\n // call stopPropagation implicitly\n this.stopPropagation();\n },\n\n halt: function halt(immediate) {\n if (immediate) {\n this.stopImmediatePropagation();\n } else {\n this.stopPropagation();\n }\n this.preventDefault();\n }\n};\n\nexports[\"default\"] = EventBaseObject;\nmodule.exports = exports[\"default\"];","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\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","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n","var api = require(\"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../css-loader/dist/cjs.js!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function insertAtTop(element) {\n\t\t\t\t document.head.insertBefore(element, document.head.firstElementChild);\n\t\t\t\t};\noptions.singleton = false;\n\nvar update = api(content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;","\"use strict\";\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 = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\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 && btoa) {\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 "}},te=function(e,t){return function(){var n,r=((n={})[j]=$(t),n["data-styled-version"]="4.4.0",n),o=G();return o&&(r.nonce=o),l.a.createElement("style",g({},r,{dangerouslySetInnerHTML:{__html:e()}}))}},ne=function(e){return function(){return Object.keys(e)}},re=function(e,t){return e.createTextNode(J(t))},oe=function e(t,n){var r=void 0===t?Object.create(null):t,o=void 0===n?Object.create(null):n,a=function(e){var t=o[e];return void 0!==t?t:o[e]=[""]},i=function(){var e="";for(var t in o){var n=o[t][0];n&&(e+=J(t)+n)}return e};return{clone:function(){var t=function(e){var t=Object.create(null);for(var n in e)t[n]=g({},e[n]);return t}(r),n=Object.create(null);for(var a in o)n[a]=[o[a][0]];return e(t,n)},css:i,getIds:ne(o),hasNameForId:K(r),insertMarker:a,insertRules:function(e,t,n){a(e)[0]+=t.join(" "),Y(r,e,n)},removeRules:function(e){var t=o[e];void 0!==t&&(t[0]="",X(r,e))},sealed:!1,styleTag:null,toElement:te(i,r),toHTML:ee(i,r)}},ae=function(e,t,n,r,o){if(C&&!n){var a=function(e,t,n){var r=document;e?r=e.ownerDocument:t&&(r=t.ownerDocument);var o=r.createElement("style");o.setAttribute(j,""),o.setAttribute("data-styled-version","4.4.0");var a=G();if(a&&o.setAttribute("nonce",a),o.appendChild(r.createTextNode("")),e&&!t)e.appendChild(o);else{if(!t||!e||!t.parentNode)throw new M(6);t.parentNode.insertBefore(o,n?t:t.nextSibling)}return o}(e,t,r);return P?function(e,t){var n=Object.create(null),r=Object.create(null),o=void 0!==t,a=!1,i=function(t){var o=r[t];return void 0!==o?o:(r[t]=re(e.ownerDocument,t),e.appendChild(r[t]),n[t]=Object.create(null),r[t])},s=function(){var e="";for(var t in r)e+=r[t].data;return e};return{clone:function(){throw new M(5)},css:s,getIds:ne(r),hasNameForId:K(n),insertMarker:i,insertRules:function(e,r,s){for(var l=i(e),c=[],u=r.length,f=0;f0&&(a=!0,t().insertRules(e+"-import",c))},removeRules:function(i){var s=r[i];if(void 0!==s){var l=re(e.ownerDocument,i);e.replaceChild(l,s),r[i]=l,X(n,i),o&&a&&t().removeRules(i+"-import")}},sealed:!1,styleTag:e,toElement:te(s,n),toHTML:ee(s,n)}}(a,o):function(e,t){var n=Object.create(null),r=Object.create(null),o=[],a=void 0!==t,i=!1,s=function(e){var t=r[e];return void 0!==t?t:(r[e]=o.length,o.push(0),X(n,e),r[e])},l=function(){var t=q(e).cssRules,n="";for(var a in r){n+=J(a);for(var i=r[a],s=Q(o,i),l=s-o[i];l0&&(i=!0,t().insertRules(r+"-import",h)),o[u]+=d,Y(n,r,c)},removeRules:function(s){var l=r[s];if(void 0!==l&&!1!==e.isConnected){var c=o[l];!function(e,t,n){for(var r=t-n,o=t;o>r;o-=1)e.deleteRule(o)}(q(e),Q(o,l)-1,c),o[l]=0,X(n,s),a&&i&&t().removeRules(s+"-import")}},sealed:!1,styleTag:e,toElement:te(l,n),toHTML:ee(l,n)}}(a,o)}return oe()},ie=/\s+/,se=void 0;se=C?P?40:1e3:-1;var le=0,ce=void 0,ue=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C?document.head:null,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];b(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var n=t.tags[0];return t.importRuleTag=ae(t.target,n?n.styleTag:null,t.forceServer,!0)},le+=1,this.id=le,this.forceServer=r,this.target=r?null:n,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!C||this.forceServer)return this;var e=[],t=[],n=!1,r=document.querySelectorAll("style["+j+'][data-styled-version="4.4.0"]'),o=r.length;if(!o)return this;for(var a=0;a0&&void 0!==arguments[0]&&arguments[0];ce=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map((function(e){for(var n=e.getIds(),r=e.clone(),o=0;o1?t-1:0),r=1;r=4;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),n-=4,++o;switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+((1540483477*(r>>>16)&65535)<<16)}return((r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16))^r>>>15)>>>0}var xe=function(e){return String.fromCharCode(e+(e>25?39:97))};function we(e){var t="",n=void 0;for(n=e;n>52;n=Math.floor(n/52))t=xe(n%52)+t;return xe(n%52)+t}function Oe(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:k,r=!!n&&e.theme===n.theme,o=e.theme&&!r?e.theme:t||n.theme;return o},je=/[[\].#*$><+~=|^:(),"'`-]+/g,Ce=/(^-|-$)/g;function Pe(e){return e.replace(je,"-").replace(Ce,"")}function Me(e){return"string"==typeof e&&!0}var Ae={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},Te={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},De=((ke={})[u.ForwardRef]={$$typeof:!0,render:!0},ke),Ne=Object.defineProperty,Ie=Object.getOwnPropertyNames,Le=Object.getOwnPropertySymbols,Re=void 0===Le?function(){return[]}:Le,Fe=Object.getOwnPropertyDescriptor,He=Object.getPrototypeOf,ze=Object.prototype,Be=Array.prototype;function Ue(e,t,n){if("string"!=typeof t){var r=He(t);r&&r!==ze&&Ue(e,r,n);for(var o=Be.concat(Ie(t),Re(t)),a=De[e.$$typeof]||Ae,i=De[t.$$typeof]||Ae,s=o.length,l=void 0,c=void 0;s--;)if(c=o[s],!(Te[c]||n&&n[c]||i&&i[c]||a&&a[c])&&(l=Fe(t,c)))try{Ne(e,c,l)}catch(e){}return e}return e}var Ve=Object(s.createContext)(),We=Ve.Consumer,Ge=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext.bind(r)),r.renderInner=r.renderInner.bind(r),r}return y(t,e),t.prototype.render=function(){return this.props.children?l.a.createElement(Ve.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return l.a.createElement(Ve.Provider,{value:t},this.props.children)},t.prototype.getTheme=function(e,t){if(E(e))return e(t);if(null===e||Array.isArray(e)||"object"!==(void 0===e?"undefined":m(e)))throw new M(8);return g({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)},t}(s.Component),Ye=(function(){function e(){b(this,e),this.masterSheet=ue.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new M(2);return l.a.createElement(Ke,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new M(3)}}(),Object(s.createContext)()),Xe=Ye.Consumer,Ke=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext),r}return y(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new ue(t);throw new M(4)},t.prototype.render=function(){var e=this.props,t=e.children,n=e.sheet,r=e.target;return l.a.createElement(Ye.Provider,{value:this.getContext(n,r)},t)},t}(s.Component),$e={};var qe=function(e){function t(){b(this,t);var n=x(this,e.call(this));return n.attrs={},n.renderOuter=n.renderOuter.bind(n),n.renderInner=n.renderInner.bind(n),n}return y(t,e),t.prototype.render=function(){return l.a.createElement(Xe,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ue.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():l.a.createElement(We,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,n=t.componentStyle,r=t.defaultProps,o=(t.displayName,t.foldedComponentIds),a=t.styledComponentId,i=t.target,l=(t.usesTheme,void 0),c=void 0;n.isStatic?l=this.generateAndInjectStyles(k,this.props):(c=_e(this.props,e,r),l=this.generateAndInjectStyles(c||k,this.props));var u=this.props.as||this.attrs.as||i,f=Me(u),d={},h=g({},this.props,this.attrs),m=void 0;for(m in h)"forwardedComponent"!==m&&"as"!==m&&("forwardedRef"===m?d.ref=h[m]:"forwardedAs"===m?d.as=h[m]:f&&!Object(p.a)(m)||(d[m]=h[m]));return this.props.style&&this.attrs.style&&(d.style=g({},this.attrs.style,this.props.style)),d.className=Array.prototype.concat(o,a,l!==a?l:null,this.props.className,this.attrs.className).filter(Boolean).join(" "),Object(s.createElement)(u,d)},t.prototype.buildExecutionContext=function(e,t,n){var r=this,o=g({},t,{theme:e});return n.length?(this.attrs={},n.forEach((function(e){var t,n=e,a=!1,i=void 0,s=void 0;for(s in E(n)&&(n=n(o),a=!0),n)i=n[s],a||!E(i)||(t=i)&&t.prototype&&t.prototype.isReactComponent||_(i)||(i=i(o)),r.attrs[s]=i,o[s]=i})),o):o},t.prototype.generateAndInjectStyles=function(e,t){var n=t.forwardedComponent,r=n.attrs,o=n.componentStyle;n.warnTooManyClasses;return o.isStatic&&!r.length?o.generateAndInjectStyles(k,this.styleSheet):o.generateAndInjectStyles(this.buildExecutionContext(e,t,r),this.styleSheet)},t}(s.Component);function Ze(e,t,n){var r=_(e),o=!Me(e),a=t.displayName,i=void 0===a?function(e){return Me(e)?"styled."+e:"Styled("+S(e)+")"}(e):a,s=t.componentId,c=void 0===s?function(e,t,n){var r="string"!=typeof t?"sc":Pe(t),o=($e[r]||0)+1;$e[r]=o;var a=r+"-"+e.generateName(r+o);return n?n+"-"+a:a}(Se,t.displayName,t.parentComponentId):s,u=t.ParentComponent,f=void 0===u?qe:u,p=t.attrs,h=void 0===p?O:p,m=t.displayName&&t.componentId?Pe(t.displayName)+"-"+t.componentId:t.componentId||c,b=r&&e.attrs?Array.prototype.concat(e.attrs,h).filter(Boolean):h,v=new Se(r?e.componentStyle.rules.concat(n):n,b,m),y=void 0,x=function(e,t){return l.a.createElement(f,g({},e,{forwardedComponent:y,forwardedRef:t}))};return x.displayName=i,(y=l.a.forwardRef(x)).displayName=i,y.attrs=b,y.componentStyle=v,y.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):O,y.styledComponentId=m,y.target=r?e.target:e,y.withComponent=function(e){var r=t.componentId,o=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(t,["componentId"]),a=r&&r+"-"+(Me(e)?e:Pe(S(e)));return Ze(e,g({},o,{attrs:b,componentId:a,ParentComponent:f}),n)},Object.defineProperty(y,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Object(d.a)(e.defaultProps,t):t}}),y.toString=function(){return"."+y.styledComponentId},o&&Ue(y,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),y}var Je=function(e){return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:k;if(!Object(u.isValidElementType)(n))throw new M(1,String(n));var o=function(){return t(n,r,ge.apply(void 0,arguments))};return o.withConfig=function(o){return e(t,n,g({},r,o))},o.attrs=function(o){return e(t,n,g({},r,{attrs:Array.prototype.concat(r.attrs,o).filter(Boolean)}))},o}(Ze,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){Je[e]=Je(e)}));!function(){function e(t,n){b(this,e),this.rules=t,this.componentId=n,this.isStatic=Oe(t,O),ue.master.hasId(n)||ue.master.deferredInject(n,[])}e.prototype.createStyles=function(e,t){var n=W(ve(this.rules,e,t),"");t.inject(this.componentId,n)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)}}();C&&(window.scCGSHMRCache={});var Qe=function(e){var t=l.a.forwardRef((function(t,n){return l.a.createElement(We,null,(function(r){var o=e.defaultProps,a=_e(t,r,o);return l.a.createElement(e,g({},t,{theme:a,ref:n}))}))}));return Ue(t,e),t.displayName="WithTheme("+S(e)+")",t};t.c=Je}).call(this,n(63))},function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a})),n.d(t,"e",(function(){return i})),n.d(t,"d",(function(){return s}));var r={PRIMARY:"#ABE2FB",SECONDARY:"#E6E6E6",DARKER_PRIMARY:"#87ceeb",OFF_WHITE:"#15181A",GREY:"#D3D3D3",RED:"#FF5E5E",DARK_GREY:"#535D63"},o=270,a=Math.PI/180,i={primary:r.PRIMARY,secondary:r.SECONDARY,detail:r.GREY,dark:!1},s={primary:r.PRIMARY,secondary:r.DARK_GREY,detail:r.DARK_GREY,dark:!0}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return a}));var r=n(30),o=function(e,t){return"daq-"+e+(t&&t.dark?"--dark":"--light")},a=function(e){return Object(r.a)(["className","id","setProps","style"],e)}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(71),a=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,a.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(95),a=(r=o)&&r.__esModule?r:{default:r};t.default=a.default||function(e){for(var t=1;t1?r-1:0),a=1;a0?" Additional arguments: "+o.join(", "):"")));return x(i)}return y(t,e),t}(Error),A=/^[^\S\n]*?\/\* sc-component-id:\s*(\S+)\s+\*\//gm,T=function(e){var t=""+(e||""),n=[];return t.replace(A,(function(e,t,r){return n.push({componentId:t,matchIndex:r}),e})),n.map((function(e,r){var o=e.componentId,a=e.matchIndex,i=n[r+1];return{componentId:o,cssFromDOM:i?t.slice(a,i.matchIndex):t.slice(a)}}))},D=/^\s*\/\/.*$/gm,N=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!1,compress:!1,semicolon:!0}),I=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!0,compress:!1,semicolon:!1}),L=[],R=function(e){if(-2===e){var t=L;return L=[],t}},F=i()((function(e){L.push(e)})),H=void 0,z=void 0,B=void 0,U=function(e,t,n){return t>0&&-1!==n.slice(0,t).indexOf(z)&&n.slice(t-z.length,t)!==z?"."+H:e};I.use([function(e,t,n){2===e&&n.length&&n[0].lastIndexOf(z)>0&&(n[0]=n[0].replace(B,U))},F,R]),N.use([F,R]);var V=function(e){return N("",e)};function W(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"&",o=e.join("").replace(D,""),a=t&&n?n+" "+t+" { "+o+" }":o;return H=r,z=t,B=new RegExp("\\"+z+"\\b","g"),I(n||!t?"":t,a)}var G=function(){return n.nc},Y=function(e,t,n){n&&((e[t]||(e[t]=Object.create(null)))[n]=!0)},X=function(e,t){e[t]=Object.create(null)},K=function(e){return function(t,n){return void 0!==e[t]&&e[t][n]}},$=function(e){var t="";for(var n in e)t+=Object.keys(e[n]).join(" ")+" ";return t.trim()},q=function(e){if(e.sheet)return e.sheet;for(var t=e.ownerDocument.styleSheets.length,n=0;n"+e()+""}},te=function(e,t){return function(){var n,r=((n={})[j]=$(t),n["data-styled-version"]="4.4.0",n),o=G();return o&&(r.nonce=o),l.a.createElement("style",g({},r,{dangerouslySetInnerHTML:{__html:e()}}))}},ne=function(e){return function(){return Object.keys(e)}},re=function(e,t){return e.createTextNode(J(t))},oe=function e(t,n){var r=void 0===t?Object.create(null):t,o=void 0===n?Object.create(null):n,a=function(e){var t=o[e];return void 0!==t?t:o[e]=[""]},i=function(){var e="";for(var t in o){var n=o[t][0];n&&(e+=J(t)+n)}return e};return{clone:function(){var t=function(e){var t=Object.create(null);for(var n in e)t[n]=g({},e[n]);return t}(r),n=Object.create(null);for(var a in o)n[a]=[o[a][0]];return e(t,n)},css:i,getIds:ne(o),hasNameForId:K(r),insertMarker:a,insertRules:function(e,t,n){a(e)[0]+=t.join(" "),Y(r,e,n)},removeRules:function(e){var t=o[e];void 0!==t&&(t[0]="",X(r,e))},sealed:!1,styleTag:null,toElement:te(i,r),toHTML:ee(i,r)}},ae=function(e,t,n,r,o){if(C&&!n){var a=function(e,t,n){var r=document;e?r=e.ownerDocument:t&&(r=t.ownerDocument);var o=r.createElement("style");o.setAttribute(j,""),o.setAttribute("data-styled-version","4.4.0");var a=G();if(a&&o.setAttribute("nonce",a),o.appendChild(r.createTextNode("")),e&&!t)e.appendChild(o);else{if(!t||!e||!t.parentNode)throw new M(6);t.parentNode.insertBefore(o,n?t:t.nextSibling)}return o}(e,t,r);return P?function(e,t){var n=Object.create(null),r=Object.create(null),o=void 0!==t,a=!1,i=function(t){var o=r[t];return void 0!==o?o:(r[t]=re(e.ownerDocument,t),e.appendChild(r[t]),n[t]=Object.create(null),r[t])},s=function(){var e="";for(var t in r)e+=r[t].data;return e};return{clone:function(){throw new M(5)},css:s,getIds:ne(r),hasNameForId:K(n),insertMarker:i,insertRules:function(e,r,s){for(var l=i(e),c=[],u=r.length,f=0;f0&&(a=!0,t().insertRules(e+"-import",c))},removeRules:function(i){var s=r[i];if(void 0!==s){var l=re(e.ownerDocument,i);e.replaceChild(l,s),r[i]=l,X(n,i),o&&a&&t().removeRules(i+"-import")}},sealed:!1,styleTag:e,toElement:te(s,n),toHTML:ee(s,n)}}(a,o):function(e,t){var n=Object.create(null),r=Object.create(null),o=[],a=void 0!==t,i=!1,s=function(e){var t=r[e];return void 0!==t?t:(r[e]=o.length,o.push(0),X(n,e),r[e])},l=function(){var t=q(e).cssRules,n="";for(var a in r){n+=J(a);for(var i=r[a],s=Q(o,i),l=s-o[i];l0&&(i=!0,t().insertRules(r+"-import",h)),o[u]+=d,Y(n,r,c)},removeRules:function(s){var l=r[s];if(void 0!==l&&!1!==e.isConnected){var c=o[l];!function(e,t,n){for(var r=t-n,o=t;o>r;o-=1)e.deleteRule(o)}(q(e),Q(o,l)-1,c),o[l]=0,X(n,s),a&&i&&t().removeRules(s+"-import")}},sealed:!1,styleTag:e,toElement:te(l,n),toHTML:ee(l,n)}}(a,o)}return oe()},ie=/\s+/,se=void 0;se=C?P?40:1e3:-1;var le=0,ce=void 0,ue=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C?document.head:null,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];b(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var n=t.tags[0];return t.importRuleTag=ae(t.target,n?n.styleTag:null,t.forceServer,!0)},le+=1,this.id=le,this.forceServer=r,this.target=r?null:n,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!C||this.forceServer)return this;var e=[],t=[],n=!1,r=document.querySelectorAll("style["+j+'][data-styled-version="4.4.0"]'),o=r.length;if(!o)return this;for(var a=0;a0&&void 0!==arguments[0]&&arguments[0];ce=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map((function(e){for(var n=e.getIds(),r=e.clone(),o=0;o1?t-1:0),r=1;r=4;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),n-=4,++o;switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+((1540483477*(r>>>16)&65535)<<16)}return((r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16))^r>>>15)>>>0}var xe=function(e){return String.fromCharCode(e+(e>25?39:97))};function we(e){var t="",n=void 0;for(n=e;n>52;n=Math.floor(n/52))t=xe(n%52)+t;return xe(n%52)+t}function Oe(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:k,r=!!n&&e.theme===n.theme,o=e.theme&&!r?e.theme:t||n.theme;return o},je=/[[\].#*$><+~=|^:(),"'`-]+/g,Ce=/(^-|-$)/g;function Pe(e){return e.replace(je,"-").replace(Ce,"")}function Me(e){return"string"==typeof e&&!0}var Ae={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},Te={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},De=((ke={})[u.ForwardRef]={$$typeof:!0,render:!0},ke),Ne=Object.defineProperty,Ie=Object.getOwnPropertyNames,Le=Object.getOwnPropertySymbols,Re=void 0===Le?function(){return[]}:Le,Fe=Object.getOwnPropertyDescriptor,He=Object.getPrototypeOf,ze=Object.prototype,Be=Array.prototype;function Ue(e,t,n){if("string"!=typeof t){var r=He(t);r&&r!==ze&&Ue(e,r,n);for(var o=Be.concat(Ie(t),Re(t)),a=De[e.$$typeof]||Ae,i=De[t.$$typeof]||Ae,s=o.length,l=void 0,c=void 0;s--;)if(c=o[s],!(Te[c]||n&&n[c]||i&&i[c]||a&&a[c])&&(l=Fe(t,c)))try{Ne(e,c,l)}catch(e){}return e}return e}var Ve=Object(s.createContext)(),We=Ve.Consumer,Ge=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext.bind(r)),r.renderInner=r.renderInner.bind(r),r}return y(t,e),t.prototype.render=function(){return this.props.children?l.a.createElement(Ve.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return l.a.createElement(Ve.Provider,{value:t},this.props.children)},t.prototype.getTheme=function(e,t){if(E(e))return e(t);if(null===e||Array.isArray(e)||"object"!==(void 0===e?"undefined":m(e)))throw new M(8);return g({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)},t}(s.Component),Ye=(function(){function e(){b(this,e),this.masterSheet=ue.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new M(2);return l.a.createElement(Ke,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new M(3)}}(),Object(s.createContext)()),Xe=Ye.Consumer,Ke=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext),r}return y(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new ue(t);throw new M(4)},t.prototype.render=function(){var e=this.props,t=e.children,n=e.sheet,r=e.target;return l.a.createElement(Ye.Provider,{value:this.getContext(n,r)},t)},t}(s.Component),$e={};var qe=function(e){function t(){b(this,t);var n=x(this,e.call(this));return n.attrs={},n.renderOuter=n.renderOuter.bind(n),n.renderInner=n.renderInner.bind(n),n}return y(t,e),t.prototype.render=function(){return l.a.createElement(Xe,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ue.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():l.a.createElement(We,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,n=t.componentStyle,r=t.defaultProps,o=(t.displayName,t.foldedComponentIds),a=t.styledComponentId,i=t.target,l=(t.usesTheme,void 0),c=void 0;n.isStatic?l=this.generateAndInjectStyles(k,this.props):(c=_e(this.props,e,r),l=this.generateAndInjectStyles(c||k,this.props));var u=this.props.as||this.attrs.as||i,f=Me(u),d={},h=g({},this.props,this.attrs),m=void 0;for(m in h)"forwardedComponent"!==m&&"as"!==m&&("forwardedRef"===m?d.ref=h[m]:"forwardedAs"===m?d.as=h[m]:f&&!Object(p.a)(m)||(d[m]=h[m]));return this.props.style&&this.attrs.style&&(d.style=g({},this.attrs.style,this.props.style)),d.className=Array.prototype.concat(o,a,l!==a?l:null,this.props.className,this.attrs.className).filter(Boolean).join(" "),Object(s.createElement)(u,d)},t.prototype.buildExecutionContext=function(e,t,n){var r=this,o=g({},t,{theme:e});return n.length?(this.attrs={},n.forEach((function(e){var t,n=e,a=!1,i=void 0,s=void 0;for(s in E(n)&&(n=n(o),a=!0),n)i=n[s],a||!E(i)||(t=i)&&t.prototype&&t.prototype.isReactComponent||_(i)||(i=i(o)),r.attrs[s]=i,o[s]=i})),o):o},t.prototype.generateAndInjectStyles=function(e,t){var n=t.forwardedComponent,r=n.attrs,o=n.componentStyle;n.warnTooManyClasses;return o.isStatic&&!r.length?o.generateAndInjectStyles(k,this.styleSheet):o.generateAndInjectStyles(this.buildExecutionContext(e,t,r),this.styleSheet)},t}(s.Component);function Ze(e,t,n){var r=_(e),o=!Me(e),a=t.displayName,i=void 0===a?function(e){return Me(e)?"styled."+e:"Styled("+S(e)+")"}(e):a,s=t.componentId,c=void 0===s?function(e,t,n){var r="string"!=typeof t?"sc":Pe(t),o=($e[r]||0)+1;$e[r]=o;var a=r+"-"+e.generateName(r+o);return n?n+"-"+a:a}(Se,t.displayName,t.parentComponentId):s,u=t.ParentComponent,f=void 0===u?qe:u,p=t.attrs,h=void 0===p?O:p,m=t.displayName&&t.componentId?Pe(t.displayName)+"-"+t.componentId:t.componentId||c,b=r&&e.attrs?Array.prototype.concat(e.attrs,h).filter(Boolean):h,v=new Se(r?e.componentStyle.rules.concat(n):n,b,m),y=void 0,x=function(e,t){return l.a.createElement(f,g({},e,{forwardedComponent:y,forwardedRef:t}))};return x.displayName=i,(y=l.a.forwardRef(x)).displayName=i,y.attrs=b,y.componentStyle=v,y.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):O,y.styledComponentId=m,y.target=r?e.target:e,y.withComponent=function(e){var r=t.componentId,o=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(t,["componentId"]),a=r&&r+"-"+(Me(e)?e:Pe(S(e)));return Ze(e,g({},o,{attrs:b,componentId:a,ParentComponent:f}),n)},Object.defineProperty(y,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Object(d.a)(e.defaultProps,t):t}}),y.toString=function(){return"."+y.styledComponentId},o&&Ue(y,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),y}var Je=function(e){return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:k;if(!Object(u.isValidElementType)(n))throw new M(1,String(n));var o=function(){return t(n,r,ge.apply(void 0,arguments))};return o.withConfig=function(o){return e(t,n,g({},r,o))},o.attrs=function(o){return e(t,n,g({},r,{attrs:Array.prototype.concat(r.attrs,o).filter(Boolean)}))},o}(Ze,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){Je[e]=Je(e)}));!function(){function e(t,n){b(this,e),this.rules=t,this.componentId=n,this.isStatic=Oe(t,O),ue.master.hasId(n)||ue.master.deferredInject(n,[])}e.prototype.createStyles=function(e,t){var n=W(ve(this.rules,e,t),"");t.inject(this.componentId,n)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)}}();C&&(window.scCGSHMRCache={});var Qe=function(e){var t=l.a.forwardRef((function(t,n){return l.a.createElement(We,null,(function(r){var o=e.defaultProps,a=_e(t,r,o);return l.a.createElement(e,g({},t,{theme:a,ref:n}))}))}));return Ue(t,e),t.displayName="WithTheme("+S(e)+")",t};t.c=Je}).call(this,n(63))},function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a})),n.d(t,"e",(function(){return i})),n.d(t,"d",(function(){return s}));var r={PRIMARY:"#ABE2FB",SECONDARY:"#E6E6E6",DARKER_PRIMARY:"#87ceeb",OFF_WHITE:"#15181A",GREY:"#D3D3D3",RED:"#FF5E5E",DARK_GREY:"#535D63"},o=270,a=Math.PI/180,i={primary:r.PRIMARY,secondary:r.SECONDARY,detail:r.GREY,dark:!1},s={primary:r.PRIMARY,secondary:r.DARK_GREY,detail:r.DARK_GREY,dark:!0}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return a}));var r=n(30),o=function(e,t){return"daq-"+e+(t&&t.dark?"--dark":"--light")},a=function(e){return Object(r.a)(["className","id","setProps","style"],e)}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(71),a=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,a.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(95),a=(r=o)&&r.__esModule?r:{default:r};t.default=a.default||function(e){for(var t=1;t1?arguments[1]:void 0,b=void 0!==m,v=0,g=u(p);if(b&&(m=r(m,h>2?arguments[2]:void 0,2)),null==g||d==Array&&s(g))for(n=new d(t=l(p.length));t>v;v++)c(n,v,b?m(p[v],v):p[v]);else for(f=g.call(p),n=new d;!(o=f.next()).done;v++)c(n,v,b?i(f,m,[o.value,v],!0):o.value);return n.length=v,n}})},function(e,t,n){var r=n(26);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var a=e.return;throw void 0!==a&&r(a.call(e)),t}}},function(e,t,n){var r=n(35),o=n(16)("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||a[o]===e)}},function(e,t,n){"use strict";var r=n(19),o=n(33);e.exports=function(e,t,n){t in e?r.f(e,t,o(0,n)):e[t]=n}},function(e,t,n){var r=n(147),o=n(16)("iterator"),a=n(35);e.exports=n(10).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||a[r(e)]}},function(e,t,n){var r=n(45),o=n(16)("toStringTag"),a="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,i;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:a?r(t):"Object"==(i=r(t))&&"function"==typeof t.callee?"Arguments":i}},function(e,t,n){var r=n(16)("iterator"),o=!1;try{var a=[7][r]();a.return=function(){o=!0},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var a=[7],i=a[r]();i.next=function(){return{done:n=!0}},a[r]=function(){return i},e(a)}catch(e){}return n}},function(e,t,n){(function(t){(function(){var n,r,o,a,i,s;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:null!=t&&t.hrtime?(e.exports=function(){return(n()-i)/1e6},r=t.hrtime,a=(n=function(){var e;return 1e9*(e=r())[0]+e[1]})(),s=1e9*t.uptime(),i=a-s):Date.now?(e.exports=function(){return Date.now()-o},o=Date.now()):(e.exports=function(){return(new Date).getTime()-o},o=(new Date).getTime())}).call(this)}).call(this,n(63))},function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}(e.exports="function"==typeof Object.keys?Object.keys:n).shim=n},function(e,t){var n="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();function r(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function o(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}(t=e.exports=n?r:o).supported=r,t.unsupported=o},function(e,t,n){var r=n(153),o=n(154);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[e.i,o,""]]);var a={insert:function(e){document.head.insertBefore(e,document.head.firstElementChild)},singleton:!1},i=(r(o,a),o.locals?o.locals:{});e.exports=i},function(e,t,n){"use strict";var r,o=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},a=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),i=[];function s(e){for(var t=-1,n=0;n0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;if(isNaN(e))return e;var n=t.toString().split("."),r=ke(n,2),o=(r[0],r[1]),a=o?o.length:0;return e.toFixed(a)},_e=function(e){var t=e.min,n=e.max,r=e.value;return null==r||rn?n:r},je=function(e){var t=e.min,n=e.max,r=e.value,o=e.progressionTarget,a=void 0===o?100:o;return r=Number(r),1*Math.abs(r-t)/Math.abs(n-t)*a},Ce=function(e,t){return Number(Math.round(e+"e"+t)+"e-"+t)},Pe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9999;return Math.floor(Math.random()*(t-e+1))+e},Me=n(81),Ae=n.n(Me);function Te(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e))&&"[object Arguments]"!==Object.prototype.toString.call(e))return;var n=[],r=!0,o=!1,a=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function De(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);ta&&f.push({key:p,subKey:o,index:0}),n[p][1]>a&&f.push({key:p,subKey:o,index:1}),n[p][0]i&&(n[p][0]=i),s[0]==n[p][1]&&n[p][1]>i&&(n[p][1]=i),s[s.length-1]==n[p][0]&&n[p][0]1&&void 0!==arguments[1]?arguments[1]:10;return"e"===t&&(t=Math.exp(1)),Math.log(e)/Math.log(t)},generateLogFormatter:function(e){var t=e.base,n=void 0===t?10:t,r=e.isSVG,a=void 0!==r&&r;return function(e){return a?o.a.createElement("tspan",null,n,o.a.createElement("tspan",{dy:"-6px"},e)):o.a.createElement("span",null,n,o.a.createElement("sup",null,e))}},formatValue:function(e,t){return o.a.createElement(Yt,null,"~",t,o.a.createElement("sup",null,Ce(e,2)))},genLogMarks:function(e,t){var n=e.min,r=e.max,a=e.step,i=void 0===a?1:a,s=e.base,l=void 0===s?10:s,c=e.marks;if(!c){var u=n;for(c={};u<=r;)c[u]=!0,u+=i}return Object.keys(c).forEach((function(e){"boolean"==typeof c[e]&&(c[e]=t?o.a.createElement("tspan",null,l,o.a.createElement("tspan",{dy:"-6px"},e)):o.a.createElement("span",null,l,o.a.createElement("sup",null,e)))})),c}};function Kt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qt(e){var t=function(e){var t=e.min,n=e.max,r=e.scale,o=void 0===r?{}:r,a=e.formatter,i={},s=null!=o.start,l=null!=o.interval,c=null!=o.labelInterval;i.min=t,i.max=n,i.start=s?o.start:t,i.interval=l?o.interval:function(e,t){var n=Math.ceil,r=1*Math.abs(t-e)/10;return r>1?n(r):(o=r,Number(o.toFixed(2)));var o}(i.start,n),i.labelInterval=c?o.labelInterval:2,i.custom=o.custom||{},i.formatter=a||Zt;var u=!s&&!l&&!c,f=Object.keys(i.custom).length;return i.onlyRenderCustom=f&&u,i.start=i.start!=t?t:i.start,i}(e),n=function(e){for(var t=1;to){h.current.innerHTML=e.exceedMessage?"string"==typeof e.exceedMessage?e.exceedMessage:e.exceedMessage(r,o)||"":""}else if(r=10?.05*n:.5,o=n-2*r;return Object(s.b)(cn(),e.vertical?"".concat(o,"px"):"100%",e.vertical?"100%":"".concat(o,"px"),e.vertical?"".concat(r,"px 0"):"0 ".concat(r,"px"))}),(function(e){return e.theme.dark&&Sn}));En.defaultProps={theme:c.e};var Sn=Object(s.b)(ln(),(function(e){var t=e.color,n=e.theme;if(!e.gradient)return Object(s.b)(sn(),t||n.primary)}),(function(e){var t=e.color,n=e.theme;return"2px 2px 6px 1px rgba(0, 0, 0, 0.45), inset 1px 1px 2px 0 rgba(255, 255, 255, 0.3),\n 1px 1px 1px 0px rgba(0, 0, 0, 0.6), 0 0 3px 0px ".concat(t||n.primary)})),_n=s.c.div(an(),(function(e){return e.vertical?Object(s.b)(on()):""}));function jn(){return(jn=Object.assign||function(e){for(var t=1;t=n[0]&&e<=n[1]}))[0];return n&&n[0]},Dn=function(e){var t=e.step,n=e.min,r=e.max,a=e.label,i=e.labelPosition,s=e.id,l=e.className,c=e.color,u=e.size,f=e.style,p=e.showCurrentValue,d=e.vertical,h=e.theme,m=e.value||n,b=null,v=[],g=Math.max(Math.min(r,m),n);c.gradient&&Re({color:c,min:n,max:r})&&(b=function(e){var t=e.color,n=e.min,r=e.max,o=0,a=Be(t.ranges).map((function(e){var t=Te(e,2),a=t[0],i=t[1],s=1*(i[1]-i[0])/(r-n),l=o;return o=o+s,{color:a,pos:l}}));return Ae()(a)}({color:c,min:n,max:r}));for(var y=Object(q.a)("graduatedbar",h),x=Object(q.b)(e),w=n;wthis.props.min&&ee?this.props.min:this.props.max}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){void 0!==e.value&&this.setState({value:e.value}),this.state.max!=e.max&&this.setState({max:e.max instanceof Number?e.max:this.state.max}),this.state.min!=e.min&&this.setState({min:e.min instanceof Number?e.min:this.state.min})}},{key:"componentDidMount",value:function(){window.addEventListener("mouseup",this.onMouseUp,!1),n(42)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("mouseup",this.onMouseUp,!1)}},{key:"onMouseDown",value:function(){this.setState({isDragging:!0})}},{key:"onMouseUp",value:function(){this.state.isDragging&&this.setState((function(e){return{rotation:e.currentDeg,isDragging:!1,startAngle:-1}}))}},{key:"onMouseMove",value:function(e){if(this.state.isDragging){var t=this.props,n=t.min,r=t.max,o=this.state.rotation,a=this.state.startAngle;e.touches&&(e=e.touches[0]);var i=this.knobElement.getBoundingClientRect(),s=i.width/2+i.left,l=i.height/2+i.top,u=Math.atan2(e.clientX-s,e.clientY-l)*(180/Math.PI);e.clientX-s>=0?u=Math.abs(360-u)+180:u-=180,u=Math.abs(u),-1===a&&(a=u,this.setState({startAngle:a}));var f=Math.floor(u-a+o);f=Math.min(f,c.b),f=Math.max(f,0),this.setState({currentDeg:f}),this.setValue(Ce(function(e){var t=e.min,n=e.max,r=e.deg;return je({min:0,max:c.b,value:r,progressionTarget:n-t})+t}({min:n,max:r,deg:f}),2))}}},{key:"setValue",value:function(e){this.setState({value:e}),this.props.setProps&&this.props.setProps({value:e})}},{key:"render",value:function(){var e=this,t=this.props,n=t.min,r=t.max,a=t.value,i=void 0===a?this.props.min:a,s=this.props,l=s.id,c=s.className,u=s.labelPosition,f=s.color,p=s.style,d=s.disabled,h=s.theme,m=s.textColor,b=je({min:n,max:r,value:this.getValue(i),progressionTarget:1}),v=m||Ve(f),g=Object(q.a)("knob",h),y=Object(q.b)(this.props),x=o.a.createElement(o.a.Fragment,null,o.a.createElement(gt,{className:g+"__current-value",valueColor:v,valueSize:Math.min(13.3333*(this.props.size+32)/100,32),units:!1,css:"transform: translateY(0%); top: 0;"},i.toFixed(this.props.digits)));return o.a.createElement("div",{id:l,className:g+(c?" "+c:""),style:p},o.a.createElement($.a,Kn({className:g+"__label"},y,{labelCSS:"top"===u?null:"transform: translateY(-40px);"}),o.a.createElement(Yn,{className:g+"__container",colorValue:v,color:Ve(f)},this.props.showCurrentValue&&x,o.a.createElement(Fn,Kn({progress:b},y,this.state,{min:this.props.min!=this.state.min?this.props.min:this.state.min,max:this.props.max!=this.state.max?this.props.max:this.state.max,value:this.getValue(i),scale:qt(this.props),currentDeg:Qn({min:this.props.min,max:this.props.max,value:this.getValue(i)}),refFunc:function(t){return e.knobElement=t},onMouseDown:d?this.noop:this.onMouseDown,onMouseUp:d?this.noop:this.onMouseUp,onMouseMove:d?this.noop:this.onMouseMove})))))}}])&&$n(r.prototype,a),i&&$n(r,i),t}(r.Component);er.defaultProps={min:0,max:10,theme:c.e,labelPosition:"top",persisted_props:["value"],persistence_type:"local",size:114},er.propTypes={id:i.a.string,value:i.a.number,color:i.a.oneOfType([i.a.string,i.a.shape({default:i.a.string,gradient:i.a.bool,ranges:i.a.shape({color:i.a.arrayOf(i.a.number)})})]),size:i.a.number,min:i.a.number,max:i.a.number,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),scale:i.a.shape({start:i.a.number,interval:i.a.number,labelInterval:i.a.number,custom:i.a.oneOfType([i.a.number,i.a.shape({style:i.a.string,label:i.a.string})])}),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"]),showCurrentValue:i.a.bool,textColor:i.a.string,digits:i.a.number};var tr=Object(s.d)(er);tr.defaultProps=er.defaultProps;var nr=tr;function rr(){var e=lr(["\n & .darkLED-fill {\n fill: ",";\n }\n"]);return rr=function(){return e},e}function or(){var e=lr(["\n border-radius: 3px;\n padding: 12px 8px 12px 14px;\n border: 1px solid ",";\n background: ",";\n"]);return or=function(){return e},e}function ar(){var e=lr(["\n padding: 12px 8px 4px 16px;\n background-color: #22272a;\n background-image: linear-gradient(145deg, rgba(255, 255, 255, 0.05) 0%, rgba(0, 0, 0, 0.5) 100%);\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1);\n"]);return ar=function(){return e},e}function ir(){var e=lr(["\n background-color: ",";\n "]);return ir=function(){return e},e}function sr(){var e=lr(["\n display: inline-flex;\n flex-direction: row;\n ",";\n ","\n"]);return sr=function(){return e},e}function lr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var cr=s.c.div(sr(),(function(e){return e.theme.dark?ur:fr}),(function(e){var t=e.backgroundColor;return Object(s.b)(ir(),t)})),ur=Object(s.b)(ar()),fr=Object(s.b)(or(),(function(e){return e.theme.detail}),(function(e){return e.backgroundColor}));cr.defaultProps={theme:c.e};var pr=s.c.div(rr(),(function(e){return e.color})),dr={0:["A","B","C","D","E","F"],1:["B","C"],2:["A","B","G","E","D"],3:["A","B","G","C","D"],4:["F","G","B","C"],5:["A","F","G","C","D"],6:["A","F","G","C","D","E"],7:["A","B","C"],8:["A","B","C","D","E","F","G"],9:["A","B","C","D","F","G"],"-":["G"]},hr={A:{base:"M3.778 3.778L6.555 1h16.667L26 3.778l-2.778 2.778H6.555L3.778 3.778z",stroke:"M3.778 3.778L6.555 1h16.667L26 3.778l-2.778 2.778H6.555L3.778 3.778z"},B:{base:"M26 3.778l2.778 2.777v16.667L26 26l-2.778-2.778V6.555L26 3.778z",stroke:"M26 3.778l2.778 2.777v16.667L26 26l-2.778-2.778V6.555L26 3.778z"},C:{base:"M26 26l2.778 2.778v16.666L26 48.222l-2.778-2.778V28.778L26 26z",stroke:"M26 26l2.778 2.778v16.666L26 48.222l-2.778-2.778V28.778L26 26z"},D:{base:"M26 48.222L23.222 51H6.555l-2.777-2.778 2.777-2.778h16.667L26 48.222z",stroke:"M26 48.222L23.222 51H6.555l-2.777-2.778 2.777-2.778h16.667L26 48.222z"},E:{base:"M3.778 48.222L1 45.444V28.778L3.778 26l2.778 2.778v16.666l-2.778 2.778z",stroke:"M3.778 48.222L1 45.444V28.778L3.778 26l2.778 2.778v16.666l-2.778 2.778z"},F:{base:"M3.778 26L1 23.222V6.555l2.778-2.777 2.778 2.777v16.667L3.778 26z",stroke:"M3.778 26L1 23.222V6.555l2.778-2.777 2.778 2.777v16.667L3.778 26z"},G:{base:"M3.778 26l2.777-2.778h16.667L26 26l-2.778 2.778H6.555L3.778 26z",stroke:"M3.778 26l2.777-2.778h16.667L26 26l-2.778 2.778H6.555L3.778 26z"}},mr=function(e){var t=e.paths,n=t.base,r=t.stroke,a=e.fillColor,i=e.strokeColor;return o.a.createElement("g",null,o.a.createElement("path",{fill:a,fillRule:"evenodd",d:n,clipRule:"evenodd"}),o.a.createElement("path",{stroke:i,strokeWidth:".75",d:r}))},br=function(e){var t=e.fillColor,n=e.strokeColor;return o.a.createElement("g",{transform:"translate(29 46)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"}))},vr=function(e){var t=e.fillColor,n=e.strokeColor;return o.a.createElement("g",null,o.a.createElement("g",{transform:"translate(32 36)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"})),o.a.createElement("g",{transform:"translate(32 9)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"})))},gr=function(e){var t=e.value,n=e.hasColon,r=e.hasDecimal,a=e.color,i=e.backgroundColor,s=e.size,l=e.className,c=xt()(i).darken(.2).fade(.85),u=dr[t].map((function(e){return o.a.createElement(mr,{key:e,fillColor:a,strokeColor:i,paths:hr[e]})})),f=["A","B","C","D","E","F","G"].map((function(e){return o.a.createElement(mr,{key:e,fillColor:c,strokeColor:i,paths:hr[e]})})),p=n?s:s*(6/7),d=s*(9/7);return o.a.createElement("div",{className:l},o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:p,height:d},o.a.createElement("g",{fill:"none",style:{transform:"scale(".concat(Number(s)/42,")")}},f,u,n&&o.a.createElement(vr,{fillColor:a,strokeColor:i}),r&&o.a.createElement(br,{fillColor:a,strokeColor:i}))))},yr=function(e){var t=e.value,n=e.hasColon,r=e.hasDecimal,a=e.color,i=e.size,s=e.className,l=dr[t].map((function(e){return ye[e]})),c=n?i:i*(6/7),u=i*(9/7);return o.a.createElement(pr,{className:s,color:a},o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:c,height:u},ge,o.a.createElement("g",{fill:"none",fillRule:"evenodd",filter:"url(#darkLED-a)",style:{transform:"scale(".concat(Number(i)/42,")")}},l,n&&we,r&&xe)))},xr=function(e){return e.theme.dark?o.a.createElement(yr,e):o.a.createElement(gr,e)},wr=/^(\-)?((\.|:)?[0-9])*$/,Or=wr.test.bind(wr),kr=function(e){var t=Object(q.a)("leddisplay",e.theme),n=Or(e.value)?function(e,t){var n=e.value,r=e.color,a=e.backgroundColor,i=e.theme,s=e.size,l=n.toString().split("").reverse(),c=[];!function(e){var t=!1;"-"===e[e.length-1]&&(t=!0,e.pop());var n=e[e.length-1];[".",":"].includes(n)&&e.push("0");t&&e.push("-")}(l);var u=0;for(;l.length;){var f=l.pop(),p=l.pop();c.push(o.a.createElement(xr,{className:t+"__digit",theme:i,key:u++,value:f,hasColon:":"===p,hasDecimal:"."===p,color:r,backgroundColor:a,size:s})),p&&"."!==p&&":"!==p&&l.push(p)}return c}(e,t):null,r=o.a.createElement(cr,{backgroundColor:e.backgroundColor},n),a=Object(q.b)(e);return o.a.createElement("div",{id:e.id,className:t+(e.className?" "+e.className:""),style:e.style},o.a.createElement($.a,a,n?r:"Invalid Input"))};kr.defaultProps={color:c.c.PRIMARY,backgroundColor:"#fff",size:42,theme:c.e,labelPosition:"top"},kr.propTypes={id:i.a.string,value:i.a.oneOfType([i.a.number,i.a.string]),color:i.a.string,backgroundColor:i.a.string,size:i.a.number,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object};var Er=Object(s.d)(kr),Sr=n(15),_r=n.n(Sr);_r.a.prototype.UNSAFE_componentWillMount=_r.a.prototype.componentWillMount,_r.a.prototype.UNSAFE_componentWillReceiveProps=_r.a.prototype.componentWillReceiveProps,_r.a.prototype.UNSAFE_componentWillUpdate=_r.a.prototype.componentWillUpdate,delete _r.a.prototype.componentWillMount,delete _r.a.prototype.componentWillReceiveProps,delete _r.a.prototype.componentWillUpdate;var jr=_r.a;function Cr(e){return(Cr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Pr(){return(Pr=Object.assign||function(e){for(var t=1;t=this.props.min&&e<=this.props.max&&(this.setState({value:e}),this.props.setProps&&this.props.setProps({value:e}))}},{key:"render",value:function(){var e=this.props,t=e.size,n=e.theme,r=e.style,a=e.className,i=e.id,s=e.disabled,l=e.min,u=e.max,f={background:"none",boxShadow:"none",border:"none",color:n.secondary,cursor:"pointer"},p=Math.max(this.state.value?16-2*this.state.value.toString().length:16,10),d={borderRadius:3,border:n.dark?"none":"1px solid ".concat(c.c.GREY),outline:"none",paddingRight:p,paddingLeft:p,paddingTop:8,paddingBottom:8,width:t||56,color:n.dark?"#fff":c.c.OFF_WHITE,backgroundColor:n.dark?"#22272a":"#fff",fontSize:14,boxSizing:"border-box"},h=Object(q.a)("numericinput",n),m=Object(q.b)(this.props);return o.a.createElement("div",{id:i,className:h+(a?" "+a:""),style:r},o.a.createElement($.a,Pr({className:h+"__label"},m),o.a.createElement(jr,{className:h+"__input",disabled:s,style:{input:d,"input:not(.form-control)":d,btn:f,"btn:hover":f,"btn:active":f,"input:disabled":{opacity:.65,cursor:"not-allowed"}},min:l,max:u,value:this.state.value,onChange:this.setValue,mobile:!1})))}}])&&Mr(n.prototype,r),a&&Mr(n,a),t}(r.Component);Nr.defaultProps={min:0,max:10,theme:c.e,labelPosition:"top",persisted_props:["value"],persistence_type:"local",style:{display:"flex",justifyContent:"center"}},Nr.propTypes={id:i.a.string,value:i.a.number,size:i.a.number,min:i.a.number,max:i.a.number,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"])};var Ir=Object(s.d)(Nr);Ir.defaultProps=Nr.defaultProps;var Lr=Ir;function Rr(){var e=Wr(["\n box-shadow: 0 0 8px 2px ",";\n "]);return Rr=function(){return e},e}function Fr(){var e=Wr(["\n width: ","px;\n height: ","px;\n "]);return Fr=function(){return e},e}function Hr(){var e=Wr(["\n "," border-radius: 100%;\n padding: 0;\n margin-bottom: 8px;\n\n &::before,\n &::after {\n left: 4%;\n border-radius: 100%;\n transition: all 0.1s ease-in;\n }\n\n &::before {\n top: 8%;\n width: 86%;\n height: 86%;\n }\n\n &::after {\n top: 4%;\n width: 92%;\n height: 92%;\n\n ",";\n }\n\n &:hover::before {\n background-color: rgba(0, 0, 0, 0.8);\n }\n\n &:hover::after {\n box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.66);\n }\n\n &:focus::after,\n &:active::after {\n box-shadow: ",";\n }\n"]);return Hr=function(){return e},e}function zr(){var e=Wr(["\n width: ","px;\n height: ","px;\n "]);return zr=function(){return e},e}function Br(){var e=Wr(["\n border-radius: 50%;\n box-sizing: border-box;\n background: #fff;\n border: 1px solid ",";\n "," margin-bottom: ",";\n padding: 0;\n\n &:focus,\n &:hover {\n border-color: ",";\n }\n"]);return Br=function(){return e},e}function Ur(){var e=Wr(["\n cursor: pointer;\n outline: none;\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:disabled {\n opacity: ",";\n cursor: not-allowed;\n }\n\n ",";\n"]);return Ur=function(){return e},e}function Vr(){var e=Wr(["\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n\n & svg {\n margin: 0 auto;\n }\n"]);return Vr=function(){return e},e}function Wr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Gr=Object(s.c)("div")(Vr()),Yr=s.c.button(Ur(),(function(e){return e.theme.dark?1:.65}),(function(e){return e.theme.dark?Kr:Xr})),Xr=Object(s.b)(Br(),(function(e){return e.theme.secondary}),(function(e){var t=e.size;return Object(s.b)(zr(),t,t)}),(function(e){var t=e.size;return"".concat(.0625*t,"px")}),(function(e){return e.theme.secondary})),Kr=Object(s.b)(Hr(),(function(e){var t=e.size;return Object(s.b)(Fr(),t,t)}),(function(e){var t=e.on,n=e.color,r=e.theme;return t?Object(s.b)(Rr(),n||r.primary):""}),(function(e){var t=e.on,n=e.color,r=e.theme;return t?"0 0 8px 2px ".concat(n||r.primary):"0 0 3px 0 rgba(0,0,0,0.66)"}));Yr.defaultProps={theme:c.e};var $r=function(e){var t=e.color,n=e.theme,r=e.on,a=e.size;return o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:a,height:a,viewBox:"0 0 14 14"},o.a.createElement("path",{fill:r?t||n.primary:n.secondary,fillRule:"evenodd",d:"M24.5173333,14.68 C25.2764482,15.3271143 25.8799978,16.1111065 26.328,17.032 C26.7760022,17.9777825 27,18.9671059 27,20 C27,21.2693397 26.6826698,22.4453279 26.048,23.528 C25.4257747,24.5857831 24.5857831,25.4257747 23.528,26.048 C22.4453279,26.6826698 21.2693397,27 20,27 C18.7306603,27 17.5546721,26.6826698 16.472,26.048 C15.4142169,25.4257747 14.5742253,24.5857831 13.952,23.528 C13.3173302,22.4453279 13,21.2693397 13,20 C13,18.9671059 13.2302199,17.9777825 13.6906667,17.032 C14.1262244,16.1111065 14.7235518,15.3271143 15.4826667,14.68 L16.5653333,15.7626667 C15.9555525,16.2728914 15.4764462,16.8888853 15.128,17.6106667 C14.7546648,18.3697816 14.568,19.1662181 14.568,20 C14.568,20.9955605 14.8106642,21.9102181 15.296,22.744 C15.7813358,23.5653374 16.4346626,24.2186642 17.256,24.704 C18.0897819,25.1893358 19.0044395,25.432 20,25.432 C20.9955605,25.432 21.9102181,25.1893358 22.744,24.704 C23.5653374,24.2186642 24.2186642,23.5653374 24.704,22.744 C25.1893358,21.9102181 25.432,20.9955605 25.432,20 C25.432,19.1537735 25.2546684,18.3666703 24.9,17.6386667 C24.5453316,16.910663 24.056892,16.2977803 23.4346667,15.8 L24.5173333,14.68 Z M20.7653333,13 L20.7653333,20.7653333 L19.2346667,20.7653333 L19.2346667,13 L20.7653333,13 Z",transform:"translate(-13 -13)"}))};$r.defaultProps={theme:c.e};var qr=$r;function Zr(e){return(Zr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Jr(){return(Jr=Object.assign||function(e){for(var t=1;t=this.props.min&&e<=this.props.max){var t=this.formatPrecision(e);this.setState({value:t}),this.props.setProps&&this.props.setProps({value:t})}}},{key:"toggleInput",value:function(){if(!this.props.disabled){var e=!this.state.isInput;this.setState({isInput:e}),e&&this.setState({tempValue:this.state.value})}}},{key:"setTempValue",value:function(e){this.setState({tempValue:e})}},{key:"blur",value:function(){null!=this.state.tempValue&&this.setValue(this.state.tempValue),this.setState({tempValue:null}),this.toggleInput()}},{key:"render",value:function(){var e,t=this.props,n=t.id,r=t.className,a=t.style,i=t.size,s=t.theme,l=t.disabled,u=t.precision,f=t.min,p=t.max,d={background:"none",boxShadow:"none",border:"none",color:s.secondary,cursor:"pointer"},h=this.state.value?16-2*this.state.value.toString().length:16,m=Math.max(h,10),b={borderRadius:3,border:s.dark?"none":"1px solid ".concat(c.c.GREY),outline:"none",paddingRight:m,paddingLeft:m,paddingTop:4,paddingBottom:4,width:i||56+20*u,height:36,backgroundColor:s.dark?"#22272a":"#fff",color:s.dark?"#fff":"#000",fontSize:14,lineHeight:14,boxSizing:"border-box"},v=Object(q.a)("precisioninput",s.dark),g=Object(q.b)(this.props);return e=this.state.isInput?o.a.createElement(jr,{autoFocus:!0,className:v+"__input",disabled:l,style:{input:b,"input:not(.form-control)":b,btn:d,"btn:hover":d,"btn:active":d,"input:disabled":{opacity:.65,cursor:"not-allowed"}},min:f,max:p,value:this.state.tempValue,onChange:this.setTempValue,onBlur:this.blur}):o.a.createElement(No,{elementName:v+"__output",value:this.state.value,size:i,onClick:this.toggleInput,color:s.dark?"#fff":c.c.OFF_WHITE}),o.a.createElement("div",{id:n,className:v+(r?" "+r:""),style:Object.assign({},Ao,a)},o.a.createElement($.a,_o({className:v+"__label"},g),e))}}])&&jo(n.prototype,r),a&&jo(n,a),t}(r.Component),Do=function(e){if("-"===e[0]){e.shift();var t=e.shift();e.unshift("-".concat(t))}return e},No=function(e){var t=e.value,n=e.onClick,r=e.size,a=e.elementName,i=Eo(function(e){return Number(e).toExponential().replace("+","")}(t).split("e"),2),s=i[0],l=i[1],c=Do(s.split("")),u=Do(l.split(""));return o.a.createElement(vo,{size:r,onClick:n,className:a},c.map((function(e,t){return o.a.createElement(xo,{className:a+"__digit",key:"d".concat(t)},e)})),o.a.createElement(ko,{className:a+"__exp"},"E"),u.map((function(e,t){return o.a.createElement(ko,{className:a+"__expdigit",key:"e".concat(t)},e)})))};To.defaultProps={min:0,max:Number.MAX_SAFE_INTEGER,theme:c.e,labelPosition:"top",precision:2,persisted_props:["value"],persistence_type:"local"},To.propTypes={id:i.a.string,value:i.a.number,size:i.a.number,min:i.a.number,max:i.a.number,precision:i.a.number.isRequired,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"])};var Io=Object(s.d)(To);Io.defaultProps=To.defaultProps;var Lo=Io;function Ro(){var e=zo(["\n color: #ff6e6e;\n background-color: #22272a;\n\n text-shadow: 0 0 2px rgba(0, 0, 0, 0.9), 0 0 9px #ff6e6e;\n\n background-image: linear-gradient(145deg, rgba(255, 255, 255, 0.05) 0%, rgba(0, 0, 0, 0.5) 100%);\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1);\n\n display: block;\n box-sizing: border-box;\n border: none;\n border-radius: 2px;\n font-weight: bold;\n font-size: 12px;\n text-transform: uppercase;\n padding: 0;\n width: ",";\n height: ",";\n text-align: center;\n cursor: pointer;\n letter-spacing: 0.1;\n line-height: 1;\n\n background-color: #22272a;\n color: #ff1a1a;\n\n &::before,\n &::after {\n transition: all 0.1s ease-in;\n background-color: #e03a3a;\n }\n\n &:hover::before,\n &:hover::after {\n background-color: #e64545;\n }\n\n &:active::before,\n &:active::after {\n background-color: #c72121;\n }\n\n &:hover::after,\n &:active::after,\n &:focus::after {\n box-shadow: none;\n }\n"]);return Ro=function(){return e},e}function Fo(){var e=zo(["\n color: white;\n background-color: #ff5e5e;\n\n display: block;\n box-sizing: border-box;\n border: none;\n border-radius: 2px;\n font-weight: bold;\n font-size: 12px;\n text-transform: uppercase;\n padding: 0;\n width: ",";\n min-height: ",";\n text-align: center;\n cursor: pointer;\n letter-spacing: 0.1;\n line-height: 1;\n\n &:hover,\n &:focus,\n &:active {\n color: #fff;\n }\n\n &:hover {\n background-color: #ff8585;\n }\n\n &:active {\n background-color: #e64545;\n }\n"]);return Fo=function(){return e},e}function Ho(){var e=zo(["\n outline: none;\n transition: all 0.1s ease-in;\n ",";\n\n &:disabled {\n opacity: ",";\n cursor: not-allowed;\n }\n"]);return Ho=function(){return e},e}function zo(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Bo=s.c.button(Ho(),(function(e){return e.theme.dark?Vo:Uo}),(function(e){return e.theme.dark?1:.65}));Bo.defaultProps={theme:c.e};var Uo=Object(s.b)(Fo(),(function(e){var t=e.size;return"".concat(t,"px")}),(function(e){var t=e.size;return"".concat(.42*t,"px")})),Vo=Object(s.b)(Ro(),(function(e){var t=e.size;return"".concat(t,"px")}),(function(e){var t=e.size;return"".concat(.42*t,"px")})),Wo=function(e){var t=e.id,n=e.className,r=e.style,a=e.size,i=e.disabled,s=e.children,l=e.n_clicks,c=e.buttonText,u=e.theme,f=Object(q.a)("stopbutton",u),p=Object(q.b)(e);return o.a.createElement("div",{id:t,className:f+(n?" "+n:""),style:r},o.a.createElement($.a,p,o.a.createElement(Bo,{className:f+"__button",size:a,disabled:i,onClick:function(){e.setProps&&e.setProps({n_clicks:l+1})}},s||c)))};Wo.defaultProps={buttonText:"Stop",n_clicks:0,size:92,labelPosition:"top"},Wo.propTypes={id:i.a.string,size:i.a.number,buttonText:i.a.string,n_clicks:i.a.number,disabled:i.a.bool,children:i.a.node,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func};var Go=Object(s.d)(Wo),Yo=n(6),Xo=n.n(Yo),Ko=n(11),$o=n.n(Ko),qo=n(12),Zo=n.n(qo),Jo=n(9),Qo=n.n(Jo),ea=n(13),ta=n.n(ea),na=n(23),ra=n.n(na),oa=n(5),aa=n.n(oa),ia=function(e){var t,n,r=e.className,a=e.included,i=e.vertical,s=e.style,l=e.length,c=e.offset,u=e.reverse;l<0&&(u=!u,l=Math.abs(l),c=100-c);var f=i?(t={},aa()(t,u?"top":"bottom",c+"%"),aa()(t,u?"bottom":"top","auto"),aa()(t,"height",l+"%"),t):(n={},aa()(n,u?"right":"left",c+"%"),aa()(n,u?"left":"right","auto"),aa()(n,"width",l+"%"),n),p=Xo()({},s,f);return a?o.a.createElement("div",{className:r,style:p}):null},sa=n(24),la=n.n(sa),ca=n(41),ua=n.n(ca),fa=n(82),pa=n.n(fa),da=n(14),ha=n.n(da);function ma(e,t,n,r){var o=ha.a.unstable_batchedUpdates?function(e){ha.a.unstable_batchedUpdates(n,e)}:n;return pa()(e,t,o,r)}var ba=n(8),va=n.n(ba),ga=function(e){var t=e.prefixCls,n=e.vertical,r=e.reverse,a=e.marks,i=e.dots,s=e.step,l=e.included,c=e.lowerBound,u=e.upperBound,f=e.max,p=e.min,d=e.dotStyle,h=e.activeDotStyle,m=f-p,b=function(e,t,n,r,o,a){ra()(!n||r>0,"`Slider[step]` should be a positive number in order to make Slider[dots] work.");var i=Object.keys(t).map(parseFloat).sort((function(e,t){return e-t}));if(n&&r)for(var s=o;s<=a;s+=r)-1===i.indexOf(s)&&i.push(s);return i}(0,a,i,s,p,f).map((function(e){var a,i=Math.abs(e-p)/m*100+"%",s=!l&&e===u||l&&e<=u&&e>=c,f=n?Xo()({},d,aa()({},r?"top":"bottom",i)):Xo()({},d,aa()({},r?"right":"left",i));s&&(f=Xo()({},f,h));var b=va()((a={},aa()(a,t+"-dot",!0),aa()(a,t+"-dot-active",s),aa()(a,t+"-dot-reverse",r),a));return o.a.createElement("span",{className:b,style:f,key:e})}));return o.a.createElement("div",{className:t+"-step"},b)};ga.propTypes={prefixCls:i.a.string,activeDotStyle:i.a.object,dotStyle:i.a.object,min:i.a.number,max:i.a.number,upperBound:i.a.number,lowerBound:i.a.number,included:i.a.bool,dots:i.a.bool,step:i.a.number,marks:i.a.object,vertical:i.a.bool,reverse:i.a.bool};var ya=ga,xa=function(e){var t=e.className,n=e.vertical,r=e.reverse,a=e.marks,i=e.included,s=e.upperBound,l=e.lowerBound,c=e.max,u=e.min,f=e.onClickLabel,p=Object.keys(a),d=c-u,h=p.map(parseFloat).sort((function(e,t){return e-t})).map((function(e){var c,p=a[e],h="object"==typeof p&&!o.a.isValidElement(p),m=h?p.label:p;if(!m&&0!==m)return null;var b=!i&&e===s||i&&e<=s&&e>=l,v=va()((c={},aa()(c,t+"-text",!0),aa()(c,t+"-text-active",b),c)),g=aa()({marginBottom:"-50%"},r?"top":"bottom",(e-u)/d*100+"%"),y=aa()({transform:"translateX(-50%)",msTransform:"translateX(-50%)"},r?"right":"left",r?(e-u/4)/d*100+"%":(e-u)/d*100+"%"),x=n?g:y,w=h?Xo()({},x,p.style):x;return o.a.createElement("span",{className:v,style:w,key:e,onMouseDown:function(t){return f(t,e)},onTouchStart:function(t){return f(t,e)}},m)}));return o.a.createElement("div",{className:t},h)};xa.propTypes={className:i.a.string,vertical:i.a.bool,reverse:i.a.bool,marks:i.a.object,included:i.a.bool,upperBound:i.a.number,lowerBound:i.a.number,max:i.a.number,min:i.a.number,onClickLabel:i.a.func};var wa=xa,Oa=function(e){function t(){var e,n,r,o;$o()(this,t);for(var a=arguments.length,i=Array(a),s=0;s=_a.F1&&t<=_a.F12)return!1;switch(t){case _a.ALT:case _a.CAPS_LOCK:case _a.CONTEXT_MENU:case _a.CTRL:case _a.DOWN:case _a.END:case _a.ESC:case _a.HOME:case _a.INSERT:case _a.LEFT:case _a.MAC_FF_META:case _a.META:case _a.NUMLOCK:case _a.NUM_CENTER:case _a.PAGE_DOWN:case _a.PAGE_UP:case _a.PAUSE:case _a.PRINT_SCREEN:case _a.RIGHT:case _a.SHIFT:case _a.UP:case _a.WIN_KEY:case _a.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=_a.ZERO&&e<=_a.NINE)return!0;if(e>=_a.NUM_ZERO&&e<=_a.NUM_MULTIPLY)return!0;if(e>=_a.A&&e<=_a.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case _a.SPACE:case _a.QUESTION_MARK:case _a.NUM_PLUS:case _a.NUM_MINUS:case _a.NUM_PERIOD:case _a.NUM_DIVISION:case _a.SEMICOLON:case _a.DASH:case _a.EQUALS:case _a.COMMA:case _a.PERIOD:case _a.SLASH:case _a.APOSTROPHE:case _a.SINGLE_QUOTE:case _a.OPEN_SQUARE_BRACKET:case _a.BACKSLASH:case _a.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},ja=_a;function Ca(e,t){try{return Object.keys(t).some((function(n){return e.target===Object(da.findDOMNode)(t[n])}))}catch(e){return!1}}function Pa(e,t){var n=t.min,r=t.max;return er}function Ma(e){return e.touches.length>1||"touchend"===e.type.toLowerCase()&&e.touches.length>0}function Aa(e,t){var n=t.marks,r=t.step,o=t.min,a=t.max,i=Object.keys(n).map(parseFloat);if(null!==r){var s=Math.floor((a-o)/r),l=Math.min((e-o)/r,s),c=Math.round(l)*r+o;i.push(c)}var u=i.map((function(t){return Math.abs(e-t)}));return i[u.indexOf(Math.min.apply(Math,Sa()(u)))]}function Ta(e,t){return e?t.clientY:t.pageX}function Da(e,t){return e?t.touches[0].clientY:t.touches[0].pageX}function Na(e,t){var n=t.getBoundingClientRect();return e?n.top+.5*n.height:window.pageXOffset+n.left+.5*n.width}function Ia(e,t){var n=t.max,r=t.min;return e<=r?r:e>=n?n:e}function La(e,t){var n=t.step,r=isFinite(Aa(e,t))?Aa(e,t):0;return null===n?r:parseFloat(r.toFixed(function(e){var t=e.toString(),n=0;return t.indexOf(".")>=0&&(n=t.length-t.indexOf(".")-1),n}(n)))}function Ra(e){e.stopPropagation(),e.preventDefault()}function Fa(e,t,n){var r="increase";switch(e.keyCode){case ja.UP:r=t&&n?"decrease":"increase";break;case ja.RIGHT:r=!t&&n?"decrease":"increase";break;case ja.DOWN:r=t&&n?"increase":"decrease";break;case ja.LEFT:r=!t&&n?"increase":"decrease";break;case ja.END:return function(e,t){return t.max};case ja.HOME:return function(e,t){return t.min};case ja.PAGE_UP:return function(e,t){return e+2*t.step};case ja.PAGE_DOWN:return function(e,t){return e-2*t.step};default:return}return function(e,t){return function(e,t,n){var r={increase:function(e,t){return e+t},decrease:function(e,t){return e-t}},o=r[e](Object.keys(n.marks).indexOf(JSON.stringify(t)),1),a=Object.keys(n.marks)[o];return n.step?r[e](t,n.step):Object.keys(n.marks).length&&n.marks[a]?n.marks[a]:t}(r,e,t)}}function Ha(){}function za(e){var t,n;return n=t=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onMouseDown=function(e){if(0===e.button){var t=n.props.vertical,r=Ta(t,e);if(Ca(e,n.handlesRefs)){var o=Na(t,e.target);n.dragOffset=r-o,r=o}else n.dragOffset=0;n.removeDocumentEvents(),n.onStart(r),n.addDocumentMouseEvents()}},n.onTouchStart=function(e){if(!Ma(e)){var t=n.props.vertical,r=Da(t,e);if(Ca(e,n.handlesRefs)){var o=Na(t,e.target);n.dragOffset=r-o,r=o}else n.dragOffset=0;n.onStart(r),n.addDocumentTouchEvents(),Ra(e)}},n.onFocus=function(e){var t=n.props,r=t.onFocus,o=t.vertical;if(Ca(e,n.handlesRefs)){var a=Na(o,e.target);n.dragOffset=0,n.onStart(a),Ra(e),r&&r(e)}},n.onBlur=function(e){var t=n.props.onBlur;n.onEnd(),t&&t(e)},n.onMouseUp=function(){n.handlesRefs[n.prevMovedHandleIndex]&&n.handlesRefs[n.prevMovedHandleIndex].clickFocus()},n.onMouseMove=function(e){if(n.sliderRef){var t=Ta(n.props.vertical,e);n.onMove(e,t-n.dragOffset)}else n.onEnd()},n.onTouchMove=function(e){if(!Ma(e)&&n.sliderRef){var t=Da(n.props.vertical,e);n.onMove(e,t-n.dragOffset)}else n.onEnd()},n.onKeyDown=function(e){n.sliderRef&&Ca(e,n.handlesRefs)&&n.onKeyboard(e)},n.onClickMarkLabel=function(e,t){e.stopPropagation(),n.onChange({value:t}),n.setState({value:t},(function(){return n.onEnd(!0)}))},n.saveSlider=function(e){n.sliderRef=e};var r=e.step,o=e.max,a=e.min,i=!isFinite(o-a)||(o-a)%r==0;return ra()(!r||Math.floor(r)!==r||i,"Slider[max] - Slider[min] (%s) should be a multiple of Slider[step] (%s)",o-a,r),n.handlesRefs={},n}return ta()(t,e),Zo()(t,[{key:"componentDidMount",value:function(){this.document=this.sliderRef&&this.sliderRef.ownerDocument;var e=this.props,t=e.autoFocus,n=e.disabled;t&&!n&&this.focus()}},{key:"componentWillUnmount",value:function(){ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"componentWillUnmount",this)&&ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"componentWillUnmount",this).call(this),this.removeDocumentEvents()}},{key:"getSliderStart",value:function(){var e=this.sliderRef,t=this.props,n=t.vertical,r=t.reverse,o=e.getBoundingClientRect();return n?r?o.bottom:o.top:window.pageXOffset+(r?o.right:o.left)}},{key:"getSliderLength",value:function(){var e=this.sliderRef;if(!e)return 0;var t=e.getBoundingClientRect();return this.props.vertical?t.height:t.width}},{key:"addDocumentTouchEvents",value:function(){this.onTouchMoveListener=ma(this.document,"touchmove",this.onTouchMove),this.onTouchUpListener=ma(this.document,"touchend",this.onEnd)}},{key:"addDocumentMouseEvents",value:function(){this.onMouseMoveListener=ma(this.document,"mousemove",this.onMouseMove),this.onMouseUpListener=ma(this.document,"mouseup",this.onEnd)}},{key:"removeDocumentEvents",value:function(){this.onTouchMoveListener&&this.onTouchMoveListener.remove(),this.onTouchUpListener&&this.onTouchUpListener.remove(),this.onMouseMoveListener&&this.onMouseMoveListener.remove(),this.onMouseUpListener&&this.onMouseUpListener.remove()}},{key:"focus",value:function(){this.props.disabled||this.handlesRefs[0].focus()}},{key:"blur",value:function(){var e=this;this.props.disabled||Object.keys(this.handlesRefs).forEach((function(t){e.handlesRefs[t]&&e.handlesRefs[t].blur&&e.handlesRefs[t].blur()}))}},{key:"calcValue",value:function(e){var t=this.props,n=t.vertical,r=t.min,o=t.max,a=Math.abs(Math.max(e,0)/this.getSliderLength());return n?(1-a)*(o-r)+r:a*(o-r)+r}},{key:"calcValueByPos",value:function(e){var t=(this.props.reverse?-1:1)*(e-this.getSliderStart());return this.trimAlignValue(this.calcValue(t))}},{key:"calcOffset",value:function(e){var t=this.props,n=t.min;return 100*((e-n)/(t.max-n))}},{key:"saveHandle",value:function(e,t){this.handlesRefs[e]=t}},{key:"render",value:function(){var e,n=this.props,r=n.prefixCls,a=n.className,i=n.marks,s=n.dots,l=n.step,c=n.included,u=n.disabled,f=n.vertical,p=n.reverse,d=n.min,h=n.max,m=n.children,b=n.maximumTrackStyle,v=n.style,g=n.railStyle,y=n.dotStyle,x=n.activeDotStyle,w=ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"render",this).call(this),O=w.tracks,k=w.handles,E=va()(r,(e={},aa()(e,r+"-with-marks",Object.keys(i).length),aa()(e,r+"-disabled",u),aa()(e,r+"-vertical",f),aa()(e,a,a),e));return o.a.createElement("div",{ref:this.saveSlider,className:E,onTouchStart:u?Ha:this.onTouchStart,onMouseDown:u?Ha:this.onMouseDown,onMouseUp:u?Ha:this.onMouseUp,onKeyDown:u?Ha:this.onKeyDown,onFocus:u?Ha:this.onFocus,onBlur:u?Ha:this.onBlur,style:v},o.a.createElement("div",{className:r+"-rail",style:Xo()({},b,g)}),O,o.a.createElement(ya,{prefixCls:r,vertical:f,reverse:p,marks:i,dots:s,step:l,included:c,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:h,min:d,dotStyle:y,activeDotStyle:x}),k,o.a.createElement(wa,{className:r+"-mark",onClickLabel:u?Ha:this.onClickMarkLabel,vertical:f,marks:i,included:c,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:h,min:d,reverse:p}),m)}}]),t}(e),t.displayName="ComponentEnhancer("+e.displayName+")",t.propTypes=Xo()({},e.propTypes,{min:i.a.number,max:i.a.number,startPoint:i.a.number,step:i.a.number,marks:i.a.object,included:i.a.bool,className:i.a.string,prefixCls:i.a.string,disabled:i.a.bool,children:i.a.any,onBeforeChange:i.a.func,onChange:i.a.func,onAfterChange:i.a.func,handle:i.a.func,dots:i.a.bool,vertical:i.a.bool,style:i.a.object,reverse:i.a.bool,minimumTrackStyle:i.a.object,maximumTrackStyle:i.a.object,handleStyle:i.a.oneOfType([i.a.object,i.a.arrayOf(i.a.object)]),trackStyle:i.a.oneOfType([i.a.object,i.a.arrayOf(i.a.object)]),railStyle:i.a.object,dotStyle:i.a.object,activeDotStyle:i.a.object,autoFocus:i.a.bool,onFocus:i.a.func,onBlur:i.a.func}),t.defaultProps=Xo()({},e.defaultProps,{prefixCls:"rc-slider",className:"",min:0,max:100,step:1,marks:{},handle:function(e){var t=e.index,n=la()(e,["index"]);return delete n.dragging,null===n.value?null:o.a.createElement(ka,Xo()({},n,{key:t}))},onBeforeChange:Ha,onChange:Ha,onAfterChange:Ha,included:!0,disabled:!1,dots:!1,vertical:!1,reverse:!1,trackStyle:[{}],handleStyle:[{}],railStyle:{},dotStyle:{},activeDotStyle:{}}),n}var Ba=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onEnd=function(e){var t=n.state.dragging;n.removeDocumentEvents(),(t||e)&&n.props.onAfterChange(n.getValue()),n.setState({dragging:!1})};var r=void 0!==e.defaultValue?e.defaultValue:e.min,o=void 0!==e.value?e.value:r;return n.state={value:n.trimAlignValue(o),dragging:!1},ra()(!("minimumTrackStyle"in e),"minimumTrackStyle will be deprecated, please use trackStyle instead."),ra()(!("maximumTrackStyle"in e),"maximumTrackStyle will be deprecated, please use railStyle instead."),n}return ta()(t,e),Zo()(t,[{key:"componentDidUpdate",value:function(e,t){if("value"in this.props||"min"in this.props||"max"in this.props){var n=this.props,r=n.value,o=n.onChange,a=void 0!==r?r:t.value,i=this.trimAlignValue(a,this.props);i!==t.value&&(this.setState({value:i}),Pa(a,this.props)&&o(i))}}},{key:"onChange",value:function(e){var t=this.props,n=!("value"in t),r=e.value>this.props.max?Xo()({},e,{value:this.props.max}):e;n&&this.setState(r);var o=r.value;t.onChange(o)}},{key:"onStart",value:function(e){this.setState({dragging:!0});var t=this.props,n=this.getValue();t.onBeforeChange(n);var r=this.calcValueByPos(e);this.startValue=r,this.startPosition=e,r!==n&&(this.prevMovedHandleIndex=0,this.onChange({value:r}))}},{key:"onMove",value:function(e,t){Ra(e);var n=this.state.value,r=this.calcValueByPos(t);r!==n&&this.onChange({value:r})}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,r=Fa(e,t.vertical,n);if(r){Ra(e);var o=this.state.value,a=r(o,this.props),i=this.trimAlignValue(a);if(i===o)return;this.onChange({value:i}),this.props.onAfterChange(i),this.onEnd()}}},{key:"getValue",value:function(){return this.state.value}},{key:"getLowerBound",value:function(){return this.props.min}},{key:"getUpperBound",value:function(){return this.state.value}},{key:"trimAlignValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null===e)return null;var n=Xo()({},this.props,t),r=Ia(e,n);return La(r,n)}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,r=t.vertical,a=t.included,i=t.disabled,s=t.minimumTrackStyle,l=t.trackStyle,c=t.handleStyle,u=t.tabIndex,f=t.ariaLabelForHandle,p=t.ariaLabelledByForHandle,d=t.ariaValueTextFormatterForHandle,h=t.min,m=t.max,b=t.startPoint,v=t.reverse,g=t.handle,y=this.state,x=y.value,w=y.dragging,O=this.calcOffset(x),k=g({className:n+"-handle",prefixCls:n,vertical:r,offset:O,value:x,dragging:w,disabled:i,min:h,max:m,reverse:v,index:0,tabIndex:u,ariaLabel:f,ariaLabelledBy:p,ariaValueTextFormatter:d,style:c[0]||c,ref:function(t){return e.saveHandle(0,t)}}),E=void 0!==b?this.calcOffset(b):0,S=l[0]||l;return{tracks:o.a.createElement(ia,{className:n+"-track",vertical:r,included:a,offset:E,reverse:v,length:O-E,style:Xo()({},s,S)}),handles:k}}}]),t}(o.a.Component);Ba.propTypes={defaultValue:i.a.number,value:i.a.number,disabled:i.a.bool,autoFocus:i.a.bool,tabIndex:i.a.number,reverse:i.a.bool,min:i.a.number,max:i.a.number,startPoint:i.a.number,ariaLabelForHandle:i.a.string,ariaLabelledByForHandle:i.a.string,ariaValueTextFormatterForHandle:i.a.func};var Ua=za(Ba),Va=n(83),Wa=n.n(Va),Ga=function(e){var t=e.value,n=e.handle,r=e.bounds,o=e.props,a=o.allowCross,i=o.pushable,s=Number(i),l=Ia(t,o),c=l;return a||null==n||void 0===r||(n>0&&l<=r[n-1]+s&&(c=r[n-1]+s),n=r[n+1]-s&&(c=r[n+1]-s)),La(c,o)},Ya=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onEnd=function(e){var t=n.state.handle;n.removeDocumentEvents(),(null!==t||e)&&n.props.onAfterChange(n.getValue()),n.setState({handle:null})};var r=e.count,o=e.min,a=e.max,i=Array.apply(void 0,Sa()(Array(r+1))).map((function(){return o})),s="defaultValue"in e?e.defaultValue:i,l=(void 0!==e.value?e.value:s).map((function(t,n){return Ga({value:t,handle:n,props:e})})),c=l[0]===a?0:l.length-1;return n.state={handle:null,recent:c,bounds:l},n}return ta()(t,e),Zo()(t,[{key:"componentDidUpdate",value:function(e,t){var n=this;if(("value"in this.props||"min"in this.props||"max"in this.props)&&(this.props.min!==e.min||this.props.max!==e.max||!Wa()(this.props.value,e.value))){var r=this.props,o=r.onChange,a=r.value||t.bounds;if(a.some((function(e){return Pa(e,n.props)})))o(a.map((function(e){return Ia(e,n.props)})))}}},{key:"onChange",value:function(e){var t=this.props;if(!("value"in t))this.setState(e);else{var n={};["handle","recent"].forEach((function(t){void 0!==e[t]&&(n[t]=e[t])})),Object.keys(n).length&&this.setState(n)}var r=Xo()({},this.state,e).bounds;t.onChange(r)}},{key:"onStart",value:function(e){var t=this.props,n=this.state,r=this.getValue();t.onBeforeChange(r);var o=this.calcValueByPos(e);this.startValue=o,this.startPosition=e;var a=this.getClosestBound(o);if(this.prevMovedHandleIndex=this.getBoundNeedMoving(o,a),this.setState({handle:this.prevMovedHandleIndex,recent:this.prevMovedHandleIndex}),o!==r[this.prevMovedHandleIndex]){var i=[].concat(Sa()(n.bounds));i[this.prevMovedHandleIndex]=o,this.onChange({bounds:i})}}},{key:"onMove",value:function(e,t){Ra(e);var n=this.state,r=this.calcValueByPos(t);r!==n.bounds[n.handle]&&this.moveTo(r)}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,r=Fa(e,t.vertical,n);if(r){Ra(e);var o=this.state,a=this.props,i=o.bounds,s=o.handle,l=i[null===s?o.recent:s],c=r(l,a),u=Ga({value:c,handle:s,bounds:o.bounds,props:a});if(u===l)return;this.moveTo(u,!0)}}},{key:"getValue",value:function(){return this.state.bounds}},{key:"getClosestBound",value:function(e){for(var t=this.state.bounds,n=0,r=1;r=t[r]&&(n=r);return Math.abs(t[n+1]-e)=r.length||o<0)return!1;var a=t+n,i=r[o],s=this.props.pushable,l=n*(e[a]-i);return!!this.pushHandle(e,a,n,s-l)&&(e[t]=i,!0)}},{key:"trimAlignValue",value:function(e){var t=this.state,n=t.handle,r=t.bounds;return Ga({value:e,handle:n,bounds:r,props:this.props})}},{key:"render",value:function(){var e=this,t=this.state,n=t.handle,r=t.bounds,a=this.props,i=a.prefixCls,s=a.vertical,l=a.included,c=a.disabled,u=a.min,f=a.max,p=a.reverse,d=a.handle,h=a.trackStyle,m=a.handleStyle,b=a.tabIndex,v=a.ariaLabelGroupForHandles,g=a.ariaLabelledByGroupForHandles,y=a.ariaValueTextFormatterGroupForHandles,x=r.map((function(t){return e.calcOffset(t)})),w=i+"-handle",O=r.map((function(t,r){var o,a=b[r]||0;return(c||null===b[r])&&(a=null),d({className:va()((o={},aa()(o,w,!0),aa()(o,w+"-"+(r+1),!0),o)),prefixCls:i,vertical:s,offset:x[r],value:t,dragging:n===r,index:r,tabIndex:a,min:u,max:f,reverse:p,disabled:c,style:m[r],ref:function(t){return e.saveHandle(r,t)},ariaLabel:v[r],ariaLabelledBy:g[r],ariaValueTextFormatter:y[r]})}));return{tracks:r.slice(0,-1).map((function(e,t){var n,r=t+1,a=va()((n={},aa()(n,i+"-track",!0),aa()(n,i+"-track-"+r,!0),n));return o.a.createElement(ia,{className:a,vertical:s,reverse:p,included:l,offset:x[r-1],length:x[r]-x[r-1],style:h[t],key:r})})),handles:O}}}],[{key:"getDerivedStateFromProps",value:function(e,t){if("value"in e||"min"in e||"max"in e){var n=(e.value||t.bounds).map((function(n,r){return Ga({value:n,handle:r,bounds:t.bounds,props:e})}));return n.length===t.bounds.length&&n.every((function(e,n){return e===t.bounds[n]}))?null:Xo()({},t,{bounds:n})}return null}}]),t}(o.a.Component);Ya.displayName="Range",Ya.propTypes={autoFocus:i.a.bool,defaultValue:i.a.arrayOf(i.a.number),value:i.a.arrayOf(i.a.number),count:i.a.number,pushable:i.a.oneOfType([i.a.bool,i.a.number]),allowCross:i.a.bool,disabled:i.a.bool,reverse:i.a.bool,tabIndex:i.a.arrayOf(i.a.number),min:i.a.number,max:i.a.number,ariaLabelGroupForHandles:i.a.arrayOf(i.a.string),ariaLabelledByGroupForHandles:i.a.arrayOf(i.a.string),ariaValueTextFormatterGroupForHandles:i.a.arrayOf(i.a.func)},Ya.defaultProps={count:1,allowCross:!0,pushable:!1,tabIndex:[],ariaLabelGroupForHandles:[],ariaLabelledByGroupForHandles:[],ariaValueTextFormatterGroupForHandles:[]};var Xa=za(Ya);function Ka(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}function $a(e){return e instanceof HTMLElement?e:ha.a.findDOMNode(e)}function qa(e){return(qa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Za(e,t){"function"==typeof e?e(t):"object"===qa(e)&&e&&"current"in e&&(e.current=t)}function Ja(){for(var e=arguments.length,t=new Array(e),n=0;n=0&&t.left>=0&&t.bottom>t.top&&t.right>t.left?t:null}function ts(e){var t,n,r;if(qi.isWindow(e)||9===e.nodeType){var o=qi.getWindow(e);t={left:qi.getWindowScrollLeft(o),top:qi.getWindowScrollTop(o)},n=qi.viewportWidth(o),r=qi.viewportHeight(o)}else t=qi.offset(e),n=qi.outerWidth(e),r=qi.outerHeight(e);return t.width=n,t.height=r,t}function ns(e,t){var n=t.charAt(0),r=t.charAt(1),o=e.width,a=e.height,i=e.left,s=e.top;return"c"===n?s+=a/2:"b"===n&&(s+=a),"c"===r?i+=o/2:"r"===r&&(i+=o),{left:i,top:s}}function rs(e,t,n,r,o){var a=ns(t,n[1]),i=ns(e,n[0]),s=[i.left-a.left,i.top-a.top];return{left:Math.round(e.left-s[0]+r[0]-o[0]),top:Math.round(e.top-s[1]+r[1]-o[1])}}function os(e,t,n){return e.leftn.right}function as(e,t,n){return e.topn.bottom}function is(e,t,n){var r=[];return qi.each(e,(function(e){r.push(e.replace(t,(function(e){return n[e]})))})),r}function ss(e,t){return e[t]=-e[t],e}function ls(e,t){return(/%$/.test(e)?parseInt(e.substring(0,e.length-1),10)/100*t:parseInt(e,10))||0}function cs(e,t){e[0]=ls(e[0],t.width),e[1]=ls(e[1],t.height)}function us(e,t,n,r){var o=n.points,a=n.offset||[0,0],i=n.targetOffset||[0,0],s=n.overflow,l=n.source||e;a=[].concat(a),i=[].concat(i),s=s||{};var c={},u=0,f=es(l),p=ts(l);cs(a,p),cs(i,t);var d=rs(p,t,o,a,i),h=qi.merge(p,d);if(f&&(s.adjustX||s.adjustY)&&r){if(s.adjustX&&os(d,p,f)){var m=is(o,/[lr]/gi,{l:"r",r:"l"}),b=ss(a,0),v=ss(i,0);(function(e,t,n){return e.left>n.right||e.left+t.widthn.bottom||e.top+t.height=n.left&&o.left+a.width>n.right&&(a.width-=o.left+a.width-n.right),r.adjustX&&o.left+a.width>n.right&&(o.left=Math.max(n.right-a.width,n.left)),r.adjustY&&o.top=n.top&&o.top+a.height>n.bottom&&(a.height-=o.top+a.height-n.bottom),r.adjustY&&o.top+a.height>n.bottom&&(o.top=Math.max(n.bottom-a.height,n.top)),qi.mix(o,a)}(d,p,f,c))}return h.width!==p.width&&qi.css(l,"width",qi.width(l)+h.width-p.width),h.height!==p.height&&qi.css(l,"height",qi.height(l)+h.height-p.height),qi.offset(l,{left:h.left,top:h.top},{useCssRight:n.useCssRight,useCssBottom:n.useCssBottom,useCssTransform:n.useCssTransform,ignoreShake:n.ignoreShake}),{points:o,offset:a,targetOffset:i,overflow:c}}function fs(e,t,n){var r=n.target||t;return us(e,ts(r),n,!function(e){var t=es(e),n=ts(e);return!t||n.left+n.width<=t.left||n.top+n.height<=t.top||n.left>=t.right||n.top>=t.bottom}(r))}function ps(e,t,n){var r,o,a=qi.getDocument(e),i=a.defaultView||a.parentWindow,s=qi.getWindowScrollLeft(i),l=qi.getWindowScrollTop(i),c=qi.viewportWidth(i),u=qi.viewportHeight(i);r="pageX"in t?t.pageX:s+t.clientX,o="pageY"in t?t.pageY:l+t.clientY;var f=r>=0&&r<=s+c&&o>=0&&o<=l+u;return us(e,{left:r,top:o,width:0,height:0},function(e){for(var t=1;t1&&(p=o.a.createElement("div",{className:"".concat(n,"-content")},s)),o.a.createElement("div",{ref:t,className:va()(r,!a&&"".concat(e.hiddenClassName)),onMouseEnter:l,onMouseLeave:c,onMouseDown:u,onTouchStart:f,style:i},p)}));zs.displayName="PopupInner";var Bs=zs;function Us(e){var t=e.prefixCls,n=e.motion,r=e.animation,o=e.transitionName;return n||(r?{motionName:"".concat(t,"-").concat(r)}:o?{motionName:o}:null)}function Vs(e){return(Vs="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ws(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Gs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ys(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var El=Object(r.forwardRef)((function(e,t){var n=e.overlayClassName,a=e.trigger,i=void 0===a?["hover"]:a,s=e.mouseEnterDelay,l=void 0===s?0:s,c=e.mouseLeaveDelay,u=void 0===c?.1:c,f=e.overlayStyle,p=e.prefixCls,d=void 0===p?"rc-tooltip":p,h=e.children,m=e.onVisibleChange,b=e.afterVisibleChange,v=e.transitionName,g=e.animation,y=e.placement,x=void 0===y?"right":y,w=e.align,O=void 0===w?{}:w,k=e.destroyTooltipOnHide,E=void 0!==k&&k,S=e.defaultVisible,_=e.getTooltipContainer,j=kl(e,["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer"]),C=Object(r.useRef)(null);Object(r.useImperativeHandle)(t,(function(){return C.current}));var P=function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},n=t.isTarget,r=t.showLabel,a=o.a.createElement(vc,Ac({isTarget:n},e),o.a.createElement("div",{className:"label"},e.label),o.a.createElement("div",{className:"value"},e.value));return o.a.createElement(lc,Ac({isTarget:n},e),r&&a,o.a.createElement(fc,Ac({isTarget:n,showLabel:r},e)))},Dc=function(e){if(!e.color.ranges||!Re(e)){var t=Ve(e.color);return{trackStyle:{backgroundColor:t},activeDotStyle:e.theme.dark?{background:t,boxShadow:"0 0 6px 1px ".concat(t)}:{borderColor:t}}}return{railStyle:{backgroundImage:"".concat(Ue(e),", linear-gradient(0deg, #000, #000)"),backgroundBlendMode:e.theme.dark?"none":"overlay"},trackStyle:{mixBlendMode:"overlay",background:e.theme.dark?"#fff":"#000"},dotStyle:{display:"none"}}},Nc=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=function(e,t){return!t||"object"!==Oc(t)&&"function"!=typeof t?Pc(e):t}(this,Cc(t).call(this,e))).state={value:null!=e.value?e.value:e.min,trackStyle:Dc(e)},n.onChange=n.onChange.bind(Pc(n)),n.onAfterChange=n.onAfterChange.bind(Pc(n)),n.renderSliderHandle=n.renderSliderHandle.bind(Pc(n)),n.renderTargets=n.renderTargets.bind(Pc(n)),n.calcLabelOffset=n.calcLabelOffset.bind(Pc(n)),n}var n,r,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Mc(e,t)}(t,e),n=t,(r=[{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t={},n=Object(q.b)(this.props);void 0!==e.value&&e.value!==this.state.value&&(t.value=e.value),jl()(e.color,this.props.color)||(t.trackStyle=Dc(Sc({},n,{},e))),this.setState(t)}},{key:"onChange",value:function(e){var t=this.props,n=t.updatemode,r=t.setProps;this.props.value&&"drag"===n||this.setState({value:e}),"drag"===n&&r&&r({value:e})}},{key:"onAfterChange",value:function(e){var t=this.props,n=t.updatemode,r=t.setProps;"mouseup"===n&&r&&r({value:e})}},{key:"renderSliderHandle",value:function(e){var t=this.props.handleLabel,n=Sc({},Object(q.b)(this.props),{},e);return t?(n=Sc({},n,{value:t.showCurrentValue&&this.state.value,label:t.label||(t instanceof Object?" ":t),color:t.color||Ve(this.props.color),style:t.style}),Tc(n,{showLabel:!0})):Tc(n)}},{key:"renderTargets",value:function(){var e=Object(q.b)(this.props);return Object.entries(this.props.targets).reduce((function(t,n){var r=kc(n,2),o=r[0],a=r[1],i=Sc({},e,{label:a.label||a,value:a.showCurrentValue&&o,color:a.color,style:a.style}),s=Tc(i,{isTarget:!0,showLabel:!!a});return t[o]={style:bc,label:s},t}),{})}},{key:"calcLabelOffset",value:function(e){var t=e.vertical,n=e.labelPosition,r=e.marks,o=e.targets,a=e.handleLabel;if(t)return null;if("bottom"===n)return"transform: translateY(".concat(r?20:0,"px);");var i=!1;return Object.values(o).map((function(e){e.showCurrentValue&&(i=!0)})),a&&a.showCurrentValue&&(i=!0),"transform: translateY(".concat(i?-38:-16,"px);")}},{key:"render",value:function(){var e=this.state.value,t=this.props,n=t.className,r=t.id,a=t.theme,i=t.label,s=t.size,c=t.vertical,u=t.style,f=t.marks,p=Object(q.a)("slider",a.dark),d=Object(q.b)(this.props),h=this.props.vertical?Sc({},u,{marginLeft:"45px"}):Sc({},u,{marginTop:"45px"});return h=this.props.fullSize?this.props.vertical?Sc({},h,{height:"100%"}):Sc({},h,{width:"100%"}):h,o.a.createElement("div",{id:r,style:h,className:p+(n?" "+n:"")},o.a.createElement($.a,Ac({className:p+"__label",labelCSS:i?this.calcLabelOffset(this.props):null},d),o.a.createElement(sc,{fullSize:this.props.fullSize,size:s,vertical:c},o.a.createElement(Sl,Ac({className:p+"__slider",onChange:this.onChange,onAfterChange:this.onAfterChange,value:e,handle:this.renderSliderHandle,marks:Sc({},f,{},this.renderTargets())},this.state.trackStyle,Object(l.a)(["setProps","updatemode","value","marks"],d))))))}}])&&jc(n.prototype,r),a&&jc(n,a),t}(r.Component);Nc.defaultProps=Vc,Nc.propTypes=Wc;var Ic=Object(s.d)(Nc);function Lc(e){return(Lc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Rc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Fc(e,t){for(var n=0;no){b.current.innerHTML=e.exceedMessage?"string"==typeof e.exceedMessage?e.exceedMessage:e.exceedMessage(r,o)||"":""}else if(r div {\n margin-top: 56px;\n line-height: 28px;\n }\n"]);return Zc=function(){return e},e}function Jc(){var e=eu(["\n width: ","px;\n height: ","px;\n border-radius: 50%;\n background-color: ",";\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n bottom: -","px;\n z-index: -1;\n"]);return Jc=function(){return e},e}function Qc(){var e=eu(["\n display: flex;\n flex-direction: column;\n align-items: center;\n"]);return Qc=function(){return e},e}function eu(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var tu=s.c.div(Qc()),nu=s.c.div(Jc(),30,30,(function(e){return e.on?e.color||e.theme.primary:e.theme.secondary}),20);nu.defaultProps={theme:c.e};var ru=s.c.div(Zc());function ou(){return(ou=Object.assign||function(e){for(var t=1;t1?arguments[1]:void 0,b=void 0!==m,v=0,g=u(p);if(b&&(m=r(m,h>2?arguments[2]:void 0,2)),null==g||d==Array&&s(g))for(n=new d(t=l(p.length));t>v;v++)c(n,v,b?m(p[v],v):p[v]);else for(f=g.call(p),n=new d;!(o=f.next()).done;v++)c(n,v,b?i(f,m,[o.value,v],!0):o.value);return n.length=v,n}})},function(e,t,n){var r=n(26);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var a=e.return;throw void 0!==a&&r(a.call(e)),t}}},function(e,t,n){var r=n(35),o=n(16)("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||a[o]===e)}},function(e,t,n){"use strict";var r=n(19),o=n(33);e.exports=function(e,t,n){t in e?r.f(e,t,o(0,n)):e[t]=n}},function(e,t,n){var r=n(147),o=n(16)("iterator"),a=n(35);e.exports=n(10).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||a[r(e)]}},function(e,t,n){var r=n(45),o=n(16)("toStringTag"),a="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,i;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:a?r(t):"Object"==(i=r(t))&&"function"==typeof t.callee?"Arguments":i}},function(e,t,n){var r=n(16)("iterator"),o=!1;try{var a=[7][r]();a.return=function(){o=!0},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var a=[7],i=a[r]();i.next=function(){return{done:n=!0}},a[r]=function(){return i},e(a)}catch(e){}return n}},function(e,t,n){(function(t){(function(){var n,r,o,a,i,s;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:null!=t&&t.hrtime?(e.exports=function(){return(n()-i)/1e6},r=t.hrtime,a=(n=function(){var e;return 1e9*(e=r())[0]+e[1]})(),s=1e9*t.uptime(),i=a-s):Date.now?(e.exports=function(){return Date.now()-o},o=Date.now()):(e.exports=function(){return(new Date).getTime()-o},o=(new Date).getTime())}).call(this)}).call(this,n(63))},function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}(e.exports="function"==typeof Object.keys?Object.keys:n).shim=n},function(e,t){var n="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();function r(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function o(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}(t=e.exports=n?r:o).supported=r,t.unsupported=o},function(e,t,n){var r=n(153),o=n(154);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[e.i,o,""]]);var a={insert:function(e){document.head.insertBefore(e,document.head.firstElementChild)},singleton:!1},i=(r(o,a),o.locals?o.locals:{});e.exports=i},function(e,t,n){"use strict";var r,o=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},a=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),i=[];function s(e){for(var t=-1,n=0;n0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;if(isNaN(e))return e;var n=t.toString().split("."),r=ke(n,2),o=(r[0],r[1]),a=o?o.length:0;return e.toFixed(a)},_e=function(e){var t=e.min,n=e.max,r=e.value;return null==r||rn?n:r},je=function(e){var t=e.min,n=e.max,r=e.value,o=e.progressionTarget,a=void 0===o?100:o;return r=Number(r),1*Math.abs(r-t)/Math.abs(n-t)*a},Ce=function(e,t){return Number(Math.round(e+"e"+t)+"e-"+t)},Pe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9999;return Math.floor(Math.random()*(t-e+1))+e},Me=n(81),Ae=n.n(Me);function Te(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e))&&"[object Arguments]"!==Object.prototype.toString.call(e))return;var n=[],r=!0,o=!1,a=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function De(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);ta&&f.push({key:p,subKey:o,index:0}),n[p][1]>a&&f.push({key:p,subKey:o,index:1}),n[p][0]i&&(n[p][0]=i),s[0]==n[p][1]&&n[p][1]>i&&(n[p][1]=i),s[s.length-1]==n[p][0]&&n[p][0]1&&void 0!==arguments[1]?arguments[1]:10;return"e"===t&&(t=Math.exp(1)),Math.log(e)/Math.log(t)},generateLogFormatter:function(e){var t=e.base,n=void 0===t?10:t,r=e.isSVG,a=void 0!==r&&r;return function(e){return a?o.a.createElement("tspan",null,n,o.a.createElement("tspan",{dy:"-6px"},e)):o.a.createElement("span",null,n,o.a.createElement("sup",null,e))}},formatValue:function(e,t){return o.a.createElement(Yt,null,"~",t,o.a.createElement("sup",null,Ce(e,2)))},genLogMarks:function(e,t){var n=e.min,r=e.max,a=e.step,i=void 0===a?1:a,s=e.base,l=void 0===s?10:s,c=e.marks;if(!c){var u=n;for(c={};u<=r;)c[u]=!0,u+=i}return Object.keys(c).forEach((function(e){"boolean"==typeof c[e]&&(c[e]=t?o.a.createElement("tspan",null,l,o.a.createElement("tspan",{dy:"-6px"},e)):o.a.createElement("span",null,l,o.a.createElement("sup",null,e)))})),c}};function Kt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qt(e){var t=function(e){var t=e.min,n=e.max,r=e.scale,o=void 0===r?{}:r,a=e.formatter,i={},s=null!=o.start,l=null!=o.interval,c=null!=o.labelInterval;i.min=t,i.max=n,i.start=s?o.start:t,i.interval=l?o.interval:function(e,t){var n=Math.ceil,r=1*Math.abs(t-e)/10;return r>1?n(r):(o=r,Number(o.toFixed(2)));var o}(i.start,n),i.labelInterval=c?o.labelInterval:2,i.custom=o.custom||{},i.formatter=a||Zt;var u=!s&&!l&&!c,f=Object.keys(i.custom).length;return i.onlyRenderCustom=f&&u,i.start=i.start!=t?t:i.start,i}(e),n=function(e){for(var t=1;to){h.current.innerHTML=e.exceedMessage?"string"==typeof e.exceedMessage?e.exceedMessage:e.exceedMessage(r,o)||"":""}else if(r=10?.05*n:.5,o=n-2*r;return Object(s.b)(cn(),e.vertical?"".concat(o,"px"):"100%",e.vertical?"100%":"".concat(o,"px"),e.vertical?"".concat(r,"px 0"):"0 ".concat(r,"px"))}),(function(e){return e.theme.dark&&Sn}));En.defaultProps={theme:c.e};var Sn=Object(s.b)(ln(),(function(e){var t=e.color,n=e.theme;if(!e.gradient)return Object(s.b)(sn(),t||n.primary)}),(function(e){var t=e.color,n=e.theme;return"2px 2px 6px 1px rgba(0, 0, 0, 0.45), inset 1px 1px 2px 0 rgba(255, 255, 255, 0.3),\n 1px 1px 1px 0px rgba(0, 0, 0, 0.6), 0 0 3px 0px ".concat(t||n.primary)})),_n=s.c.div(an(),(function(e){return e.vertical?Object(s.b)(on()):""}));function jn(){return(jn=Object.assign||function(e){for(var t=1;t=n[0]&&e<=n[1]}))[0];return n&&n[0]},Dn=function(e){var t=e.step,n=e.min,r=e.max,a=e.label,i=e.labelPosition,s=e.id,l=e.className,c=e.color,u=e.size,f=e.style,p=e.showCurrentValue,d=e.vertical,h=e.theme,m=e.value||n,b=null,v=[],g=Math.max(Math.min(r,m),n);c.gradient&&Re({color:c,min:n,max:r})&&(b=function(e){var t=e.color,n=e.min,r=e.max,o=0,a=Be(t.ranges).map((function(e){var t=Te(e,2),a=t[0],i=t[1],s=1*(i[1]-i[0])/(r-n),l=o;return o=o+s,{color:a,pos:l}}));return Ae()(a)}({color:c,min:n,max:r}));for(var y=Object(q.a)("graduatedbar",h),x=Object(q.b)(e),w=n;w=this.props.min&&e<=this.props.max?e:this.props.min>e?this.props.min:this.props.max}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){void 0!==e.value&&this.setState({value:e.value}),this.state.max!=e.max&&this.setState({max:e.max instanceof Number?e.max:this.state.max}),this.state.min!=e.min&&this.setState({min:e.min instanceof Number?e.min:this.state.min})}},{key:"componentDidMount",value:function(){window.addEventListener("mouseup",this.onMouseUp,!1),n(42)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("mouseup",this.onMouseUp,!1)}},{key:"onMouseDown",value:function(){this.setState({isDragging:!0})}},{key:"onMouseUp",value:function(){this.state.isDragging&&this.setState((function(e){return{rotation:e.currentDeg,isDragging:!1,startAngle:-1}}))}},{key:"onMouseMove",value:function(e){if(this.state.isDragging){var t=this.props,n=t.min,r=t.max,o=this.state.rotation,a=this.state.startAngle;e.touches&&(e=e.touches[0]);var i=this.knobElement.getBoundingClientRect(),s=i.width/2+i.left,l=i.height/2+i.top,u=Math.atan2(e.clientX-s,e.clientY-l)*(180/Math.PI);e.clientX-s>=0?u=Math.abs(360-u)+180:u-=180,u=Math.abs(u),-1===a&&(a=u,this.setState({startAngle:a}));var f=Math.floor(u-a+o);f=Math.min(f,c.b),f=Math.max(f,0),this.setState({currentDeg:f}),this.setValue(Ce(function(e){var t=e.min,n=e.max,r=e.deg;return je({min:0,max:c.b,value:r,progressionTarget:n-t})+t}({min:n,max:r,deg:f}),2))}}},{key:"setValue",value:function(e){this.setState({value:e}),this.props.setProps&&this.props.setProps({value:e})}},{key:"render",value:function(){var e=this,t=this.props,n=t.min,r=t.max,a=t.value,i=void 0===a?this.props.min:a,s=this.props,l=s.id,c=s.className,u=s.labelPosition,f=s.color,p=s.style,d=s.disabled,h=s.theme,m=s.textColor,b=je({min:n,max:r,value:this.getValue(i),progressionTarget:1}),v=m||Ve(f),g=Object(q.a)("knob",h),y=Object(q.b)(this.props),x=o.a.createElement(o.a.Fragment,null,o.a.createElement(gt,{className:g+"__current-value",valueColor:v,valueSize:Math.min(13.3333*(this.props.size+32)/100,32),units:!1,css:"transform: translateY(0%); top: 0;"},i.toFixed(this.props.digits)));return o.a.createElement("div",{id:l,className:g+(c?" "+c:""),style:p},o.a.createElement($.a,Kn({className:g+"__label"},y,{labelCSS:"top"===u?null:"transform: translateY(-40px);"}),o.a.createElement(Yn,{className:g+"__container",colorValue:v,color:Ve(f)},this.props.showCurrentValue&&x,o.a.createElement(Fn,Kn({progress:b},y,this.state,{min:this.props.min!=this.state.min?this.props.min:this.state.min,max:this.props.max!=this.state.max?this.props.max:this.state.max,value:this.getValue(i),scale:qt(this.props),currentDeg:Qn({min:this.props.min,max:this.props.max,value:this.getValue(i)}),refFunc:function(t){return e.knobElement=t},onMouseDown:d?this.noop:this.onMouseDown,onMouseUp:d?this.noop:this.onMouseUp,onMouseMove:d?this.noop:this.onMouseMove})))))}}])&&$n(r.prototype,a),i&&$n(r,i),t}(r.Component);er.defaultProps={min:0,max:10,theme:c.e,labelPosition:"top",persisted_props:["value"],persistence_type:"local",size:114},er.propTypes={id:i.a.string,value:i.a.number,color:i.a.oneOfType([i.a.string,i.a.shape({default:i.a.string,gradient:i.a.bool,ranges:i.a.shape({color:i.a.arrayOf(i.a.number)})})]),size:i.a.number,min:i.a.number,max:i.a.number,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),scale:i.a.shape({start:i.a.number,interval:i.a.number,labelInterval:i.a.number,custom:i.a.oneOfType([i.a.number,i.a.shape({style:i.a.string,label:i.a.string})])}),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"]),showCurrentValue:i.a.bool,textColor:i.a.string,digits:i.a.number};var tr=Object(s.d)(er);tr.defaultProps=er.defaultProps;var nr=tr;function rr(){var e=lr(["\n & .darkLED-fill {\n fill: ",";\n }\n"]);return rr=function(){return e},e}function or(){var e=lr(["\n border-radius: 3px;\n padding: 12px 8px 12px 14px;\n border: 1px solid ",";\n background: ",";\n"]);return or=function(){return e},e}function ar(){var e=lr(["\n padding: 12px 8px 4px 16px;\n background-color: #22272a;\n background-image: linear-gradient(145deg, rgba(255, 255, 255, 0.05) 0%, rgba(0, 0, 0, 0.5) 100%);\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1);\n"]);return ar=function(){return e},e}function ir(){var e=lr(["\n background-color: ",";\n "]);return ir=function(){return e},e}function sr(){var e=lr(["\n display: inline-flex;\n flex-direction: row;\n ",";\n ","\n"]);return sr=function(){return e},e}function lr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var cr=s.c.div(sr(),(function(e){return e.theme.dark?ur:fr}),(function(e){var t=e.backgroundColor;return Object(s.b)(ir(),t)})),ur=Object(s.b)(ar()),fr=Object(s.b)(or(),(function(e){return e.theme.detail}),(function(e){return e.backgroundColor}));cr.defaultProps={theme:c.e};var pr=s.c.div(rr(),(function(e){return e.color})),dr={0:["A","B","C","D","E","F"],1:["B","C"],2:["A","B","G","E","D"],3:["A","B","G","C","D"],4:["F","G","B","C"],5:["A","F","G","C","D"],6:["A","F","G","C","D","E"],7:["A","B","C"],8:["A","B","C","D","E","F","G"],9:["A","B","C","D","F","G"],"-":["G"]},hr={A:{base:"M3.778 3.778L6.555 1h16.667L26 3.778l-2.778 2.778H6.555L3.778 3.778z",stroke:"M3.778 3.778L6.555 1h16.667L26 3.778l-2.778 2.778H6.555L3.778 3.778z"},B:{base:"M26 3.778l2.778 2.777v16.667L26 26l-2.778-2.778V6.555L26 3.778z",stroke:"M26 3.778l2.778 2.777v16.667L26 26l-2.778-2.778V6.555L26 3.778z"},C:{base:"M26 26l2.778 2.778v16.666L26 48.222l-2.778-2.778V28.778L26 26z",stroke:"M26 26l2.778 2.778v16.666L26 48.222l-2.778-2.778V28.778L26 26z"},D:{base:"M26 48.222L23.222 51H6.555l-2.777-2.778 2.777-2.778h16.667L26 48.222z",stroke:"M26 48.222L23.222 51H6.555l-2.777-2.778 2.777-2.778h16.667L26 48.222z"},E:{base:"M3.778 48.222L1 45.444V28.778L3.778 26l2.778 2.778v16.666l-2.778 2.778z",stroke:"M3.778 48.222L1 45.444V28.778L3.778 26l2.778 2.778v16.666l-2.778 2.778z"},F:{base:"M3.778 26L1 23.222V6.555l2.778-2.777 2.778 2.777v16.667L3.778 26z",stroke:"M3.778 26L1 23.222V6.555l2.778-2.777 2.778 2.777v16.667L3.778 26z"},G:{base:"M3.778 26l2.777-2.778h16.667L26 26l-2.778 2.778H6.555L3.778 26z",stroke:"M3.778 26l2.777-2.778h16.667L26 26l-2.778 2.778H6.555L3.778 26z"}},mr=function(e){var t=e.paths,n=t.base,r=t.stroke,a=e.fillColor,i=e.strokeColor;return o.a.createElement("g",null,o.a.createElement("path",{fill:a,fillRule:"evenodd",d:n,clipRule:"evenodd"}),o.a.createElement("path",{stroke:i,strokeWidth:".75",d:r}))},br=function(e){var t=e.fillColor,n=e.strokeColor;return o.a.createElement("g",{transform:"translate(29 46)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"}))},vr=function(e){var t=e.fillColor,n=e.strokeColor;return o.a.createElement("g",null,o.a.createElement("g",{transform:"translate(32 36)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"})),o.a.createElement("g",{transform:"translate(32 9)"},o.a.createElement("circle",{cx:"3",cy:"3",r:"3",fill:t}),o.a.createElement("circle",{cx:"3",cy:"3",r:"3",stroke:n,strokeWidth:".75"})))},gr=function(e){var t=e.value,n=e.hasColon,r=e.hasDecimal,a=e.color,i=e.backgroundColor,s=e.size,l=e.className,c=xt()(i).darken(.2).fade(.85),u=dr[t].map((function(e){return o.a.createElement(mr,{key:e,fillColor:a,strokeColor:i,paths:hr[e]})})),f=["A","B","C","D","E","F","G"].map((function(e){return o.a.createElement(mr,{key:e,fillColor:c,strokeColor:i,paths:hr[e]})})),p=n?s:s*(6/7),d=s*(9/7);return o.a.createElement("div",{className:l},o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:p,height:d},o.a.createElement("g",{fill:"none",style:{transform:"scale(".concat(Number(s)/42,")")}},f,u,n&&o.a.createElement(vr,{fillColor:a,strokeColor:i}),r&&o.a.createElement(br,{fillColor:a,strokeColor:i}))))},yr=function(e){var t=e.value,n=e.hasColon,r=e.hasDecimal,a=e.color,i=e.size,s=e.className,l=dr[t].map((function(e){return ye[e]})),c=n?i:i*(6/7),u=i*(9/7);return o.a.createElement(pr,{className:s,color:a},o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:c,height:u},ge,o.a.createElement("g",{fill:"none",fillRule:"evenodd",filter:"url(#darkLED-a)",style:{transform:"scale(".concat(Number(i)/42,")")}},l,n&&we,r&&xe)))},xr=function(e){return e.theme.dark?o.a.createElement(yr,e):o.a.createElement(gr,e)},wr=/^(\-)?((\.|:)?[0-9])*$/,Or=wr.test.bind(wr),kr=function(e){var t=Object(q.a)("leddisplay",e.theme),n=Or(e.value)?function(e,t){var n=e.value,r=e.color,a=e.backgroundColor,i=e.theme,s=e.size,l=n.toString().split("").reverse(),c=[];!function(e){var t=!1;"-"===e[e.length-1]&&(t=!0,e.pop());var n=e[e.length-1];[".",":"].includes(n)&&e.push("0");t&&e.push("-")}(l);var u=0;for(;l.length;){var f=l.pop(),p=l.pop();c.push(o.a.createElement(xr,{className:t+"__digit",theme:i,key:u++,value:f,hasColon:":"===p,hasDecimal:"."===p,color:r,backgroundColor:a,size:s})),p&&"."!==p&&":"!==p&&l.push(p)}return c}(e,t):null,r=o.a.createElement(cr,{backgroundColor:e.backgroundColor},n),a=Object(q.b)(e);return o.a.createElement("div",{id:e.id,className:t+(e.className?" "+e.className:""),style:e.style},o.a.createElement($.a,a,n?r:"Invalid Input"))};kr.defaultProps={color:c.c.PRIMARY,backgroundColor:"#fff",size:42,theme:c.e,labelPosition:"top"},kr.propTypes={id:i.a.string,value:i.a.oneOfType([i.a.number,i.a.string]),color:i.a.string,backgroundColor:i.a.string,size:i.a.number,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object};var Er=Object(s.d)(kr),Sr=n(15),_r=n.n(Sr);_r.a.prototype.UNSAFE_componentWillMount=_r.a.prototype.componentWillMount,_r.a.prototype.UNSAFE_componentWillReceiveProps=_r.a.prototype.componentWillReceiveProps,_r.a.prototype.UNSAFE_componentWillUpdate=_r.a.prototype.componentWillUpdate,delete _r.a.prototype.componentWillMount,delete _r.a.prototype.componentWillReceiveProps,delete _r.a.prototype.componentWillUpdate;var jr=_r.a;function Cr(e){return(Cr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Pr(){return(Pr=Object.assign||function(e){for(var t=1;t=this.props.min&&e<=this.props.max&&(this.setState({value:e}),this.props.setProps&&this.props.setProps({value:e}))}},{key:"render",value:function(){var e=this.props,t=e.size,n=e.theme,r=e.style,a=e.className,i=e.id,s=e.disabled,l=e.min,u=e.max,f={background:"none",boxShadow:"none",border:"none",color:n.secondary,cursor:"pointer"},p=Math.max(this.state.value?16-2*this.state.value.toString().length:16,10),d={borderRadius:3,border:n.dark?"none":"1px solid ".concat(c.c.GREY),outline:"none",paddingRight:p,paddingLeft:p,paddingTop:8,paddingBottom:8,width:t||56,color:n.dark?"#fff":c.c.OFF_WHITE,backgroundColor:n.dark?"#22272a":"#fff",fontSize:14,boxSizing:"border-box"},h=Object(q.a)("numericinput",n),m=Object(q.b)(this.props);return o.a.createElement("div",{id:i,className:h+(a?" "+a:""),style:r},o.a.createElement($.a,Pr({className:h+"__label"},m),o.a.createElement(jr,{className:h+"__input",disabled:s,style:{input:d,"input:not(.form-control)":d,btn:f,"btn:hover":f,"btn:active":f,"input:disabled":{opacity:.65,cursor:"not-allowed"}},min:l,max:u,value:this.state.value,onChange:this.setValue,mobile:!1})))}}])&&Mr(n.prototype,r),a&&Mr(n,a),t}(r.Component);Nr.defaultProps={min:0,max:10,theme:c.e,labelPosition:"top",persisted_props:["value"],persistence_type:"local",style:{display:"flex",justifyContent:"center"}},Nr.propTypes={id:i.a.string,value:i.a.number,size:i.a.number,min:i.a.number,max:i.a.number,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"])};var Ir=Object(s.d)(Nr);Ir.defaultProps=Nr.defaultProps;var Lr=Ir;function Rr(){var e=Wr(["\n box-shadow: 0 0 8px 2px ",";\n "]);return Rr=function(){return e},e}function Fr(){var e=Wr(["\n width: ","px;\n height: ","px;\n "]);return Fr=function(){return e},e}function Hr(){var e=Wr(["\n "," border-radius: 100%;\n padding: 0;\n margin-bottom: 8px;\n\n &::before,\n &::after {\n left: 4%;\n border-radius: 100%;\n transition: all 0.1s ease-in;\n }\n\n &::before {\n top: 8%;\n width: 86%;\n height: 86%;\n }\n\n &::after {\n top: 4%;\n width: 92%;\n height: 92%;\n\n ",";\n }\n\n &:hover::before {\n background-color: rgba(0, 0, 0, 0.8);\n }\n\n &:hover::after {\n box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.66);\n }\n\n &:focus::after,\n &:active::after {\n box-shadow: ",";\n }\n"]);return Hr=function(){return e},e}function zr(){var e=Wr(["\n width: ","px;\n height: ","px;\n "]);return zr=function(){return e},e}function Br(){var e=Wr(["\n border-radius: 50%;\n box-sizing: border-box;\n background: #fff;\n border: 1px solid ",";\n "," margin-bottom: ",";\n padding: 0;\n\n &:focus,\n &:hover {\n border-color: ",";\n }\n"]);return Br=function(){return e},e}function Ur(){var e=Wr(["\n cursor: pointer;\n outline: none;\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:disabled {\n opacity: ",";\n cursor: not-allowed;\n }\n\n ",";\n"]);return Ur=function(){return e},e}function Vr(){var e=Wr(["\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n\n & svg {\n margin: 0 auto;\n }\n"]);return Vr=function(){return e},e}function Wr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Gr=Object(s.c)("div")(Vr()),Yr=s.c.button(Ur(),(function(e){return e.theme.dark?1:.65}),(function(e){return e.theme.dark?Kr:Xr})),Xr=Object(s.b)(Br(),(function(e){return e.theme.secondary}),(function(e){var t=e.size;return Object(s.b)(zr(),t,t)}),(function(e){var t=e.size;return"".concat(.0625*t,"px")}),(function(e){return e.theme.secondary})),Kr=Object(s.b)(Hr(),(function(e){var t=e.size;return Object(s.b)(Fr(),t,t)}),(function(e){var t=e.on,n=e.color,r=e.theme;return t?Object(s.b)(Rr(),n||r.primary):""}),(function(e){var t=e.on,n=e.color,r=e.theme;return t?"0 0 8px 2px ".concat(n||r.primary):"0 0 3px 0 rgba(0,0,0,0.66)"}));Yr.defaultProps={theme:c.e};var $r=function(e){var t=e.color,n=e.theme,r=e.on,a=e.size;return o.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:a,height:a,viewBox:"0 0 14 14"},o.a.createElement("path",{fill:r?t||n.primary:n.secondary,fillRule:"evenodd",d:"M24.5173333,14.68 C25.2764482,15.3271143 25.8799978,16.1111065 26.328,17.032 C26.7760022,17.9777825 27,18.9671059 27,20 C27,21.2693397 26.6826698,22.4453279 26.048,23.528 C25.4257747,24.5857831 24.5857831,25.4257747 23.528,26.048 C22.4453279,26.6826698 21.2693397,27 20,27 C18.7306603,27 17.5546721,26.6826698 16.472,26.048 C15.4142169,25.4257747 14.5742253,24.5857831 13.952,23.528 C13.3173302,22.4453279 13,21.2693397 13,20 C13,18.9671059 13.2302199,17.9777825 13.6906667,17.032 C14.1262244,16.1111065 14.7235518,15.3271143 15.4826667,14.68 L16.5653333,15.7626667 C15.9555525,16.2728914 15.4764462,16.8888853 15.128,17.6106667 C14.7546648,18.3697816 14.568,19.1662181 14.568,20 C14.568,20.9955605 14.8106642,21.9102181 15.296,22.744 C15.7813358,23.5653374 16.4346626,24.2186642 17.256,24.704 C18.0897819,25.1893358 19.0044395,25.432 20,25.432 C20.9955605,25.432 21.9102181,25.1893358 22.744,24.704 C23.5653374,24.2186642 24.2186642,23.5653374 24.704,22.744 C25.1893358,21.9102181 25.432,20.9955605 25.432,20 C25.432,19.1537735 25.2546684,18.3666703 24.9,17.6386667 C24.5453316,16.910663 24.056892,16.2977803 23.4346667,15.8 L24.5173333,14.68 Z M20.7653333,13 L20.7653333,20.7653333 L19.2346667,20.7653333 L19.2346667,13 L20.7653333,13 Z",transform:"translate(-13 -13)"}))};$r.defaultProps={theme:c.e};var qr=$r;function Zr(e){return(Zr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Jr(){return(Jr=Object.assign||function(e){for(var t=1;t=this.props.min&&e<=this.props.max){var t=this.formatPrecision(e);this.setState({value:t}),this.props.setProps&&this.props.setProps({value:t})}}},{key:"toggleInput",value:function(){if(!this.props.disabled){var e=!this.state.isInput;this.setState({isInput:e}),e&&this.setState({tempValue:this.state.value})}}},{key:"setTempValue",value:function(e){this.setState({tempValue:e})}},{key:"blur",value:function(){null!=this.state.tempValue&&this.setValue(this.state.tempValue),this.setState({tempValue:null}),this.toggleInput()}},{key:"render",value:function(){var e,t=this.props,n=t.id,r=t.className,a=t.style,i=t.size,s=t.theme,l=t.disabled,u=t.precision,f=t.min,p=t.max,d={background:"none",boxShadow:"none",border:"none",color:s.secondary,cursor:"pointer"},h=this.state.value?16-2*this.state.value.toString().length:16,m=Math.max(h,10),b={borderRadius:3,border:s.dark?"none":"1px solid ".concat(c.c.GREY),outline:"none",paddingRight:m,paddingLeft:m,paddingTop:4,paddingBottom:4,width:i||56+20*u,height:36,backgroundColor:s.dark?"#22272a":"#fff",color:s.dark?"#fff":"#000",fontSize:14,lineHeight:14,boxSizing:"border-box"},v=Object(q.a)("precisioninput",s.dark),g=Object(q.b)(this.props);return e=this.state.isInput?o.a.createElement(jr,{autoFocus:!0,className:v+"__input",disabled:l,style:{input:b,"input:not(.form-control)":b,btn:d,"btn:hover":d,"btn:active":d,"input:disabled":{opacity:.65,cursor:"not-allowed"}},min:f,max:p,value:this.state.tempValue,onChange:this.setTempValue,onBlur:this.blur}):o.a.createElement(No,{elementName:v+"__output",value:this.state.value,size:i,onClick:this.toggleInput,color:s.dark?"#fff":c.c.OFF_WHITE}),o.a.createElement("div",{id:n,className:v+(r?" "+r:""),style:Object.assign({},Ao,a)},o.a.createElement($.a,_o({className:v+"__label"},g),e))}}])&&jo(n.prototype,r),a&&jo(n,a),t}(r.Component),Do=function(e){if("-"===e[0]){e.shift();var t=e.shift();e.unshift("-".concat(t))}return e},No=function(e){var t=e.value,n=e.onClick,r=e.size,a=e.elementName,i=Eo(function(e){return Number(e).toExponential().replace("+","")}(t).split("e"),2),s=i[0],l=i[1],c=Do(s.split("")),u=Do(l.split(""));return o.a.createElement(vo,{size:r,onClick:n,className:a},c.map((function(e,t){return o.a.createElement(xo,{className:a+"__digit",key:"d".concat(t)},e)})),o.a.createElement(ko,{className:a+"__exp"},"E"),u.map((function(e,t){return o.a.createElement(ko,{className:a+"__expdigit",key:"e".concat(t)},e)})))};To.defaultProps={min:0,max:Number.MAX_SAFE_INTEGER,theme:c.e,labelPosition:"top",precision:2,persisted_props:["value"],persistence_type:"local"},To.propTypes={id:i.a.string,value:i.a.number,size:i.a.number,min:i.a.number,max:i.a.number,precision:i.a.number.isRequired,disabled:i.a.bool,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func,persistence:i.a.oneOfType([i.a.bool,i.a.string,i.a.number]),persisted_props:i.a.arrayOf(i.a.oneOf(["value"])),persistence_type:i.a.oneOf(["local","session","memory"])};var Io=Object(s.d)(To);Io.defaultProps=To.defaultProps;var Lo=Io;function Ro(){var e=zo(["\n color: #ff6e6e;\n background-color: #22272a;\n\n text-shadow: 0 0 2px rgba(0, 0, 0, 0.9), 0 0 9px #ff6e6e;\n\n background-image: linear-gradient(145deg, rgba(255, 255, 255, 0.05) 0%, rgba(0, 0, 0, 0.5) 100%);\n box-shadow: inset 0 0 8px -1px rgba(0, 0, 0, 0.7), inset 0 0 4px 0 rgba(0, 0, 0, 0.8),\n -1px -1px 0px 0px rgba(0, 0, 0, 0.8), 1px 1px 0px 0px rgba(255, 255, 255, 0.1);\n\n display: block;\n box-sizing: border-box;\n border: none;\n border-radius: 2px;\n font-weight: bold;\n font-size: 12px;\n text-transform: uppercase;\n padding: 0;\n width: ",";\n height: ",";\n text-align: center;\n cursor: pointer;\n letter-spacing: 0.1;\n line-height: 1;\n\n background-color: #22272a;\n color: #ff1a1a;\n\n &::before,\n &::after {\n transition: all 0.1s ease-in;\n background-color: #e03a3a;\n }\n\n &:hover::before,\n &:hover::after {\n background-color: #e64545;\n }\n\n &:active::before,\n &:active::after {\n background-color: #c72121;\n }\n\n &:hover::after,\n &:active::after,\n &:focus::after {\n box-shadow: none;\n }\n"]);return Ro=function(){return e},e}function Fo(){var e=zo(["\n color: white;\n background-color: #ff5e5e;\n\n display: block;\n box-sizing: border-box;\n border: none;\n border-radius: 2px;\n font-weight: bold;\n font-size: 12px;\n text-transform: uppercase;\n padding: 0;\n width: ",";\n min-height: ",";\n text-align: center;\n cursor: pointer;\n letter-spacing: 0.1;\n line-height: 1;\n\n &:hover,\n &:focus,\n &:active {\n color: #fff;\n }\n\n &:hover {\n background-color: #ff8585;\n }\n\n &:active {\n background-color: #e64545;\n }\n"]);return Fo=function(){return e},e}function Ho(){var e=zo(["\n outline: none;\n transition: all 0.1s ease-in;\n ",";\n\n &:disabled {\n opacity: ",";\n cursor: not-allowed;\n }\n"]);return Ho=function(){return e},e}function zo(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Bo=s.c.button(Ho(),(function(e){return e.theme.dark?Vo:Uo}),(function(e){return e.theme.dark?1:.65}));Bo.defaultProps={theme:c.e};var Uo=Object(s.b)(Fo(),(function(e){var t=e.size;return"".concat(t,"px")}),(function(e){var t=e.size;return"".concat(.42*t,"px")})),Vo=Object(s.b)(Ro(),(function(e){var t=e.size;return"".concat(t,"px")}),(function(e){var t=e.size;return"".concat(.42*t,"px")})),Wo=function(e){var t=e.id,n=e.className,r=e.style,a=e.size,i=e.disabled,s=e.children,l=e.n_clicks,c=e.buttonText,u=e.theme,f=Object(q.a)("stopbutton",u),p=Object(q.b)(e);return o.a.createElement("div",{id:t,className:f+(n?" "+n:""),style:r},o.a.createElement($.a,p,o.a.createElement(Bo,{className:f+"__button",size:a,disabled:i,onClick:function(){e.setProps&&e.setProps({n_clicks:l+1})}},s||c)))};Wo.defaultProps={buttonText:"Stop",n_clicks:0,size:92,labelPosition:"top"},Wo.propTypes={id:i.a.string,size:i.a.number,buttonText:i.a.string,n_clicks:i.a.number,disabled:i.a.bool,children:i.a.node,theme:i.a.object,label:i.a.oneOfType([i.a.string,i.a.shape({style:i.a.object,label:i.a.string})]),labelPosition:i.a.oneOf(["top","bottom"]),className:i.a.string,style:i.a.object,setProps:i.a.func};var Go=Object(s.d)(Wo),Yo=n(6),Xo=n.n(Yo),Ko=n(11),$o=n.n(Ko),qo=n(12),Zo=n.n(qo),Jo=n(9),Qo=n.n(Jo),ea=n(13),ta=n.n(ea),na=n(23),ra=n.n(na),oa=n(5),aa=n.n(oa),ia=function(e){var t,n,r=e.className,a=e.included,i=e.vertical,s=e.style,l=e.length,c=e.offset,u=e.reverse;l<0&&(u=!u,l=Math.abs(l),c=100-c);var f=i?(t={},aa()(t,u?"top":"bottom",c+"%"),aa()(t,u?"bottom":"top","auto"),aa()(t,"height",l+"%"),t):(n={},aa()(n,u?"right":"left",c+"%"),aa()(n,u?"left":"right","auto"),aa()(n,"width",l+"%"),n),p=Xo()({},s,f);return a?o.a.createElement("div",{className:r,style:p}):null},sa=n(24),la=n.n(sa),ca=n(41),ua=n.n(ca),fa=n(82),pa=n.n(fa),da=n(14),ha=n.n(da);function ma(e,t,n,r){var o=ha.a.unstable_batchedUpdates?function(e){ha.a.unstable_batchedUpdates(n,e)}:n;return pa()(e,t,o,r)}var ba=n(8),va=n.n(ba),ga=function(e){var t=e.prefixCls,n=e.vertical,r=e.reverse,a=e.marks,i=e.dots,s=e.step,l=e.included,c=e.lowerBound,u=e.upperBound,f=e.max,p=e.min,d=e.dotStyle,h=e.activeDotStyle,m=f-p,b=function(e,t,n,r,o,a){ra()(!n||r>0,"`Slider[step]` should be a positive number in order to make Slider[dots] work.");var i=Object.keys(t).map(parseFloat).sort((function(e,t){return e-t}));if(n&&r)for(var s=o;s<=a;s+=r)-1===i.indexOf(s)&&i.push(s);return i}(0,a,i,s,p,f).map((function(e){var a,i=Math.abs(e-p)/m*100+"%",s=!l&&e===u||l&&e<=u&&e>=c,f=n?Xo()({},d,aa()({},r?"top":"bottom",i)):Xo()({},d,aa()({},r?"right":"left",i));s&&(f=Xo()({},f,h));var b=va()((a={},aa()(a,t+"-dot",!0),aa()(a,t+"-dot-active",s),aa()(a,t+"-dot-reverse",r),a));return o.a.createElement("span",{className:b,style:f,key:e})}));return o.a.createElement("div",{className:t+"-step"},b)};ga.propTypes={prefixCls:i.a.string,activeDotStyle:i.a.object,dotStyle:i.a.object,min:i.a.number,max:i.a.number,upperBound:i.a.number,lowerBound:i.a.number,included:i.a.bool,dots:i.a.bool,step:i.a.number,marks:i.a.object,vertical:i.a.bool,reverse:i.a.bool};var ya=ga,xa=function(e){var t=e.className,n=e.vertical,r=e.reverse,a=e.marks,i=e.included,s=e.upperBound,l=e.lowerBound,c=e.max,u=e.min,f=e.onClickLabel,p=Object.keys(a),d=c-u,h=p.map(parseFloat).sort((function(e,t){return e-t})).map((function(e){var c,p=a[e],h="object"==typeof p&&!o.a.isValidElement(p),m=h?p.label:p;if(!m&&0!==m)return null;var b=!i&&e===s||i&&e<=s&&e>=l,v=va()((c={},aa()(c,t+"-text",!0),aa()(c,t+"-text-active",b),c)),g=aa()({marginBottom:"-50%"},r?"top":"bottom",(e-u)/d*100+"%"),y=aa()({transform:"translateX(-50%)",msTransform:"translateX(-50%)"},r?"right":"left",r?(e-u/4)/d*100+"%":(e-u)/d*100+"%"),x=n?g:y,w=h?Xo()({},x,p.style):x;return o.a.createElement("span",{className:v,style:w,key:e,onMouseDown:function(t){return f(t,e)},onTouchStart:function(t){return f(t,e)}},m)}));return o.a.createElement("div",{className:t},h)};xa.propTypes={className:i.a.string,vertical:i.a.bool,reverse:i.a.bool,marks:i.a.object,included:i.a.bool,upperBound:i.a.number,lowerBound:i.a.number,max:i.a.number,min:i.a.number,onClickLabel:i.a.func};var wa=xa,Oa=function(e){function t(){var e,n,r,o;$o()(this,t);for(var a=arguments.length,i=Array(a),s=0;s=_a.F1&&t<=_a.F12)return!1;switch(t){case _a.ALT:case _a.CAPS_LOCK:case _a.CONTEXT_MENU:case _a.CTRL:case _a.DOWN:case _a.END:case _a.ESC:case _a.HOME:case _a.INSERT:case _a.LEFT:case _a.MAC_FF_META:case _a.META:case _a.NUMLOCK:case _a.NUM_CENTER:case _a.PAGE_DOWN:case _a.PAGE_UP:case _a.PAUSE:case _a.PRINT_SCREEN:case _a.RIGHT:case _a.SHIFT:case _a.UP:case _a.WIN_KEY:case _a.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=_a.ZERO&&e<=_a.NINE)return!0;if(e>=_a.NUM_ZERO&&e<=_a.NUM_MULTIPLY)return!0;if(e>=_a.A&&e<=_a.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case _a.SPACE:case _a.QUESTION_MARK:case _a.NUM_PLUS:case _a.NUM_MINUS:case _a.NUM_PERIOD:case _a.NUM_DIVISION:case _a.SEMICOLON:case _a.DASH:case _a.EQUALS:case _a.COMMA:case _a.PERIOD:case _a.SLASH:case _a.APOSTROPHE:case _a.SINGLE_QUOTE:case _a.OPEN_SQUARE_BRACKET:case _a.BACKSLASH:case _a.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},ja=_a;function Ca(e,t){try{return Object.keys(t).some((function(n){return e.target===Object(da.findDOMNode)(t[n])}))}catch(e){return!1}}function Pa(e,t){var n=t.min,r=t.max;return er}function Ma(e){return e.touches.length>1||"touchend"===e.type.toLowerCase()&&e.touches.length>0}function Aa(e,t){var n=t.marks,r=t.step,o=t.min,a=t.max,i=Object.keys(n).map(parseFloat);if(null!==r){var s=Math.floor((a-o)/r),l=Math.min((e-o)/r,s),c=Math.round(l)*r+o;i.push(c)}var u=i.map((function(t){return Math.abs(e-t)}));return i[u.indexOf(Math.min.apply(Math,Sa()(u)))]}function Ta(e,t){return e?t.clientY:t.pageX}function Da(e,t){return e?t.touches[0].clientY:t.touches[0].pageX}function Na(e,t){var n=t.getBoundingClientRect();return e?n.top+.5*n.height:window.pageXOffset+n.left+.5*n.width}function Ia(e,t){var n=t.max,r=t.min;return e<=r?r:e>=n?n:e}function La(e,t){var n=t.step,r=isFinite(Aa(e,t))?Aa(e,t):0;return null===n?r:parseFloat(r.toFixed(function(e){var t=e.toString(),n=0;return t.indexOf(".")>=0&&(n=t.length-t.indexOf(".")-1),n}(n)))}function Ra(e){e.stopPropagation(),e.preventDefault()}function Fa(e,t,n){var r="increase";switch(e.keyCode){case ja.UP:r=t&&n?"decrease":"increase";break;case ja.RIGHT:r=!t&&n?"decrease":"increase";break;case ja.DOWN:r=t&&n?"increase":"decrease";break;case ja.LEFT:r=!t&&n?"increase":"decrease";break;case ja.END:return function(e,t){return t.max};case ja.HOME:return function(e,t){return t.min};case ja.PAGE_UP:return function(e,t){return e+2*t.step};case ja.PAGE_DOWN:return function(e,t){return e-2*t.step};default:return}return function(e,t){return function(e,t,n){var r={increase:function(e,t){return e+t},decrease:function(e,t){return e-t}},o=r[e](Object.keys(n.marks).indexOf(JSON.stringify(t)),1),a=Object.keys(n.marks)[o];return n.step?r[e](t,n.step):Object.keys(n.marks).length&&n.marks[a]?n.marks[a]:t}(r,e,t)}}function Ha(){}function za(e){var t,n;return n=t=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onMouseDown=function(e){if(0===e.button){var t=n.props.vertical,r=Ta(t,e);if(Ca(e,n.handlesRefs)){var o=Na(t,e.target);n.dragOffset=r-o,r=o}else n.dragOffset=0;n.removeDocumentEvents(),n.onStart(r),n.addDocumentMouseEvents()}},n.onTouchStart=function(e){if(!Ma(e)){var t=n.props.vertical,r=Da(t,e);if(Ca(e,n.handlesRefs)){var o=Na(t,e.target);n.dragOffset=r-o,r=o}else n.dragOffset=0;n.onStart(r),n.addDocumentTouchEvents(),Ra(e)}},n.onFocus=function(e){var t=n.props,r=t.onFocus,o=t.vertical;if(Ca(e,n.handlesRefs)){var a=Na(o,e.target);n.dragOffset=0,n.onStart(a),Ra(e),r&&r(e)}},n.onBlur=function(e){var t=n.props.onBlur;n.onEnd(),t&&t(e)},n.onMouseUp=function(){n.handlesRefs[n.prevMovedHandleIndex]&&n.handlesRefs[n.prevMovedHandleIndex].clickFocus()},n.onMouseMove=function(e){if(n.sliderRef){var t=Ta(n.props.vertical,e);n.onMove(e,t-n.dragOffset)}else n.onEnd()},n.onTouchMove=function(e){if(!Ma(e)&&n.sliderRef){var t=Da(n.props.vertical,e);n.onMove(e,t-n.dragOffset)}else n.onEnd()},n.onKeyDown=function(e){n.sliderRef&&Ca(e,n.handlesRefs)&&n.onKeyboard(e)},n.onClickMarkLabel=function(e,t){e.stopPropagation(),n.onChange({value:t}),n.setState({value:t},(function(){return n.onEnd(!0)}))},n.saveSlider=function(e){n.sliderRef=e};var r=e.step,o=e.max,a=e.min,i=!isFinite(o-a)||(o-a)%r==0;return ra()(!r||Math.floor(r)!==r||i,"Slider[max] - Slider[min] (%s) should be a multiple of Slider[step] (%s)",o-a,r),n.handlesRefs={},n}return ta()(t,e),Zo()(t,[{key:"componentDidMount",value:function(){this.document=this.sliderRef&&this.sliderRef.ownerDocument;var e=this.props,t=e.autoFocus,n=e.disabled;t&&!n&&this.focus()}},{key:"componentWillUnmount",value:function(){ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"componentWillUnmount",this)&&ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"componentWillUnmount",this).call(this),this.removeDocumentEvents()}},{key:"getSliderStart",value:function(){var e=this.sliderRef,t=this.props,n=t.vertical,r=t.reverse,o=e.getBoundingClientRect();return n?r?o.bottom:o.top:window.pageXOffset+(r?o.right:o.left)}},{key:"getSliderLength",value:function(){var e=this.sliderRef;if(!e)return 0;var t=e.getBoundingClientRect();return this.props.vertical?t.height:t.width}},{key:"addDocumentTouchEvents",value:function(){this.onTouchMoveListener=ma(this.document,"touchmove",this.onTouchMove),this.onTouchUpListener=ma(this.document,"touchend",this.onEnd)}},{key:"addDocumentMouseEvents",value:function(){this.onMouseMoveListener=ma(this.document,"mousemove",this.onMouseMove),this.onMouseUpListener=ma(this.document,"mouseup",this.onEnd)}},{key:"removeDocumentEvents",value:function(){this.onTouchMoveListener&&this.onTouchMoveListener.remove(),this.onTouchUpListener&&this.onTouchUpListener.remove(),this.onMouseMoveListener&&this.onMouseMoveListener.remove(),this.onMouseUpListener&&this.onMouseUpListener.remove()}},{key:"focus",value:function(){this.props.disabled||this.handlesRefs[0].focus()}},{key:"blur",value:function(){var e=this;this.props.disabled||Object.keys(this.handlesRefs).forEach((function(t){e.handlesRefs[t]&&e.handlesRefs[t].blur&&e.handlesRefs[t].blur()}))}},{key:"calcValue",value:function(e){var t=this.props,n=t.vertical,r=t.min,o=t.max,a=Math.abs(Math.max(e,0)/this.getSliderLength());return n?(1-a)*(o-r)+r:a*(o-r)+r}},{key:"calcValueByPos",value:function(e){var t=(this.props.reverse?-1:1)*(e-this.getSliderStart());return this.trimAlignValue(this.calcValue(t))}},{key:"calcOffset",value:function(e){var t=this.props,n=t.min;return 100*((e-n)/(t.max-n))}},{key:"saveHandle",value:function(e,t){this.handlesRefs[e]=t}},{key:"render",value:function(){var e,n=this.props,r=n.prefixCls,a=n.className,i=n.marks,s=n.dots,l=n.step,c=n.included,u=n.disabled,f=n.vertical,p=n.reverse,d=n.min,h=n.max,m=n.children,b=n.maximumTrackStyle,v=n.style,g=n.railStyle,y=n.dotStyle,x=n.activeDotStyle,w=ua()(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"render",this).call(this),O=w.tracks,k=w.handles,E=va()(r,(e={},aa()(e,r+"-with-marks",Object.keys(i).length),aa()(e,r+"-disabled",u),aa()(e,r+"-vertical",f),aa()(e,a,a),e));return o.a.createElement("div",{ref:this.saveSlider,className:E,onTouchStart:u?Ha:this.onTouchStart,onMouseDown:u?Ha:this.onMouseDown,onMouseUp:u?Ha:this.onMouseUp,onKeyDown:u?Ha:this.onKeyDown,onFocus:u?Ha:this.onFocus,onBlur:u?Ha:this.onBlur,style:v},o.a.createElement("div",{className:r+"-rail",style:Xo()({},b,g)}),O,o.a.createElement(ya,{prefixCls:r,vertical:f,reverse:p,marks:i,dots:s,step:l,included:c,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:h,min:d,dotStyle:y,activeDotStyle:x}),k,o.a.createElement(wa,{className:r+"-mark",onClickLabel:u?Ha:this.onClickMarkLabel,vertical:f,marks:i,included:c,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:h,min:d,reverse:p}),m)}}]),t}(e),t.displayName="ComponentEnhancer("+e.displayName+")",t.propTypes=Xo()({},e.propTypes,{min:i.a.number,max:i.a.number,startPoint:i.a.number,step:i.a.number,marks:i.a.object,included:i.a.bool,className:i.a.string,prefixCls:i.a.string,disabled:i.a.bool,children:i.a.any,onBeforeChange:i.a.func,onChange:i.a.func,onAfterChange:i.a.func,handle:i.a.func,dots:i.a.bool,vertical:i.a.bool,style:i.a.object,reverse:i.a.bool,minimumTrackStyle:i.a.object,maximumTrackStyle:i.a.object,handleStyle:i.a.oneOfType([i.a.object,i.a.arrayOf(i.a.object)]),trackStyle:i.a.oneOfType([i.a.object,i.a.arrayOf(i.a.object)]),railStyle:i.a.object,dotStyle:i.a.object,activeDotStyle:i.a.object,autoFocus:i.a.bool,onFocus:i.a.func,onBlur:i.a.func}),t.defaultProps=Xo()({},e.defaultProps,{prefixCls:"rc-slider",className:"",min:0,max:100,step:1,marks:{},handle:function(e){var t=e.index,n=la()(e,["index"]);return delete n.dragging,null===n.value?null:o.a.createElement(ka,Xo()({},n,{key:t}))},onBeforeChange:Ha,onChange:Ha,onAfterChange:Ha,included:!0,disabled:!1,dots:!1,vertical:!1,reverse:!1,trackStyle:[{}],handleStyle:[{}],railStyle:{},dotStyle:{},activeDotStyle:{}}),n}var Ba=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onEnd=function(e){var t=n.state.dragging;n.removeDocumentEvents(),(t||e)&&n.props.onAfterChange(n.getValue()),n.setState({dragging:!1})};var r=void 0!==e.defaultValue?e.defaultValue:e.min,o=void 0!==e.value?e.value:r;return n.state={value:n.trimAlignValue(o),dragging:!1},ra()(!("minimumTrackStyle"in e),"minimumTrackStyle will be deprecated, please use trackStyle instead."),ra()(!("maximumTrackStyle"in e),"maximumTrackStyle will be deprecated, please use railStyle instead."),n}return ta()(t,e),Zo()(t,[{key:"componentDidUpdate",value:function(e,t){if("value"in this.props||"min"in this.props||"max"in this.props){var n=this.props,r=n.value,o=n.onChange,a=void 0!==r?r:t.value,i=this.trimAlignValue(a,this.props);i!==t.value&&(this.setState({value:i}),Pa(a,this.props)&&o(i))}}},{key:"onChange",value:function(e){var t=this.props,n=!("value"in t),r=e.value>this.props.max?Xo()({},e,{value:this.props.max}):e;n&&this.setState(r);var o=r.value;t.onChange(o)}},{key:"onStart",value:function(e){this.setState({dragging:!0});var t=this.props,n=this.getValue();t.onBeforeChange(n);var r=this.calcValueByPos(e);this.startValue=r,this.startPosition=e,r!==n&&(this.prevMovedHandleIndex=0,this.onChange({value:r}))}},{key:"onMove",value:function(e,t){Ra(e);var n=this.state.value,r=this.calcValueByPos(t);r!==n&&this.onChange({value:r})}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,r=Fa(e,t.vertical,n);if(r){Ra(e);var o=this.state.value,a=r(o,this.props),i=this.trimAlignValue(a);if(i===o)return;this.onChange({value:i}),this.props.onAfterChange(i),this.onEnd()}}},{key:"getValue",value:function(){return this.state.value}},{key:"getLowerBound",value:function(){return this.props.min}},{key:"getUpperBound",value:function(){return this.state.value}},{key:"trimAlignValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null===e)return null;var n=Xo()({},this.props,t),r=Ia(e,n);return La(r,n)}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,r=t.vertical,a=t.included,i=t.disabled,s=t.minimumTrackStyle,l=t.trackStyle,c=t.handleStyle,u=t.tabIndex,f=t.ariaLabelForHandle,p=t.ariaLabelledByForHandle,d=t.ariaValueTextFormatterForHandle,h=t.min,m=t.max,b=t.startPoint,v=t.reverse,g=t.handle,y=this.state,x=y.value,w=y.dragging,O=this.calcOffset(x),k=g({className:n+"-handle",prefixCls:n,vertical:r,offset:O,value:x,dragging:w,disabled:i,min:h,max:m,reverse:v,index:0,tabIndex:u,ariaLabel:f,ariaLabelledBy:p,ariaValueTextFormatter:d,style:c[0]||c,ref:function(t){return e.saveHandle(0,t)}}),E=void 0!==b?this.calcOffset(b):0,S=l[0]||l;return{tracks:o.a.createElement(ia,{className:n+"-track",vertical:r,included:a,offset:E,reverse:v,length:O-E,style:Xo()({},s,S)}),handles:k}}}]),t}(o.a.Component);Ba.propTypes={defaultValue:i.a.number,value:i.a.number,disabled:i.a.bool,autoFocus:i.a.bool,tabIndex:i.a.number,reverse:i.a.bool,min:i.a.number,max:i.a.number,startPoint:i.a.number,ariaLabelForHandle:i.a.string,ariaLabelledByForHandle:i.a.string,ariaValueTextFormatterForHandle:i.a.func};var Ua=za(Ba),Va=n(83),Wa=n.n(Va),Ga=function(e){var t=e.value,n=e.handle,r=e.bounds,o=e.props,a=o.allowCross,i=o.pushable,s=Number(i),l=Ia(t,o),c=l;return a||null==n||void 0===r||(n>0&&l<=r[n-1]+s&&(c=r[n-1]+s),n=r[n+1]-s&&(c=r[n+1]-s)),La(c,o)},Ya=function(e){function t(e){$o()(this,t);var n=Qo()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.onEnd=function(e){var t=n.state.handle;n.removeDocumentEvents(),(null!==t||e)&&n.props.onAfterChange(n.getValue()),n.setState({handle:null})};var r=e.count,o=e.min,a=e.max,i=Array.apply(void 0,Sa()(Array(r+1))).map((function(){return o})),s="defaultValue"in e?e.defaultValue:i,l=(void 0!==e.value?e.value:s).map((function(t,n){return Ga({value:t,handle:n,props:e})})),c=l[0]===a?0:l.length-1;return n.state={handle:null,recent:c,bounds:l},n}return ta()(t,e),Zo()(t,[{key:"componentDidUpdate",value:function(e,t){var n=this;if(("value"in this.props||"min"in this.props||"max"in this.props)&&(this.props.min!==e.min||this.props.max!==e.max||!Wa()(this.props.value,e.value))){var r=this.props,o=r.onChange,a=r.value||t.bounds;if(a.some((function(e){return Pa(e,n.props)})))o(a.map((function(e){return Ia(e,n.props)})))}}},{key:"onChange",value:function(e){var t=this.props;if(!("value"in t))this.setState(e);else{var n={};["handle","recent"].forEach((function(t){void 0!==e[t]&&(n[t]=e[t])})),Object.keys(n).length&&this.setState(n)}var r=Xo()({},this.state,e).bounds;t.onChange(r)}},{key:"onStart",value:function(e){var t=this.props,n=this.state,r=this.getValue();t.onBeforeChange(r);var o=this.calcValueByPos(e);this.startValue=o,this.startPosition=e;var a=this.getClosestBound(o);if(this.prevMovedHandleIndex=this.getBoundNeedMoving(o,a),this.setState({handle:this.prevMovedHandleIndex,recent:this.prevMovedHandleIndex}),o!==r[this.prevMovedHandleIndex]){var i=[].concat(Sa()(n.bounds));i[this.prevMovedHandleIndex]=o,this.onChange({bounds:i})}}},{key:"onMove",value:function(e,t){Ra(e);var n=this.state,r=this.calcValueByPos(t);r!==n.bounds[n.handle]&&this.moveTo(r)}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,r=Fa(e,t.vertical,n);if(r){Ra(e);var o=this.state,a=this.props,i=o.bounds,s=o.handle,l=i[null===s?o.recent:s],c=r(l,a),u=Ga({value:c,handle:s,bounds:o.bounds,props:a});if(u===l)return;this.moveTo(u,!0)}}},{key:"getValue",value:function(){return this.state.bounds}},{key:"getClosestBound",value:function(e){for(var t=this.state.bounds,n=0,r=1;r=t[r]&&(n=r);return Math.abs(t[n+1]-e)=r.length||o<0)return!1;var a=t+n,i=r[o],s=this.props.pushable,l=n*(e[a]-i);return!!this.pushHandle(e,a,n,s-l)&&(e[t]=i,!0)}},{key:"trimAlignValue",value:function(e){var t=this.state,n=t.handle,r=t.bounds;return Ga({value:e,handle:n,bounds:r,props:this.props})}},{key:"render",value:function(){var e=this,t=this.state,n=t.handle,r=t.bounds,a=this.props,i=a.prefixCls,s=a.vertical,l=a.included,c=a.disabled,u=a.min,f=a.max,p=a.reverse,d=a.handle,h=a.trackStyle,m=a.handleStyle,b=a.tabIndex,v=a.ariaLabelGroupForHandles,g=a.ariaLabelledByGroupForHandles,y=a.ariaValueTextFormatterGroupForHandles,x=r.map((function(t){return e.calcOffset(t)})),w=i+"-handle",O=r.map((function(t,r){var o,a=b[r]||0;return(c||null===b[r])&&(a=null),d({className:va()((o={},aa()(o,w,!0),aa()(o,w+"-"+(r+1),!0),o)),prefixCls:i,vertical:s,offset:x[r],value:t,dragging:n===r,index:r,tabIndex:a,min:u,max:f,reverse:p,disabled:c,style:m[r],ref:function(t){return e.saveHandle(r,t)},ariaLabel:v[r],ariaLabelledBy:g[r],ariaValueTextFormatter:y[r]})}));return{tracks:r.slice(0,-1).map((function(e,t){var n,r=t+1,a=va()((n={},aa()(n,i+"-track",!0),aa()(n,i+"-track-"+r,!0),n));return o.a.createElement(ia,{className:a,vertical:s,reverse:p,included:l,offset:x[r-1],length:x[r]-x[r-1],style:h[t],key:r})})),handles:O}}}],[{key:"getDerivedStateFromProps",value:function(e,t){if("value"in e||"min"in e||"max"in e){var n=(e.value||t.bounds).map((function(n,r){return Ga({value:n,handle:r,bounds:t.bounds,props:e})}));return n.length===t.bounds.length&&n.every((function(e,n){return e===t.bounds[n]}))?null:Xo()({},t,{bounds:n})}return null}}]),t}(o.a.Component);Ya.displayName="Range",Ya.propTypes={autoFocus:i.a.bool,defaultValue:i.a.arrayOf(i.a.number),value:i.a.arrayOf(i.a.number),count:i.a.number,pushable:i.a.oneOfType([i.a.bool,i.a.number]),allowCross:i.a.bool,disabled:i.a.bool,reverse:i.a.bool,tabIndex:i.a.arrayOf(i.a.number),min:i.a.number,max:i.a.number,ariaLabelGroupForHandles:i.a.arrayOf(i.a.string),ariaLabelledByGroupForHandles:i.a.arrayOf(i.a.string),ariaValueTextFormatterGroupForHandles:i.a.arrayOf(i.a.func)},Ya.defaultProps={count:1,allowCross:!0,pushable:!1,tabIndex:[],ariaLabelGroupForHandles:[],ariaLabelledByGroupForHandles:[],ariaValueTextFormatterGroupForHandles:[]};var Xa=za(Ya);function Ka(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}function $a(e){return e instanceof HTMLElement?e:ha.a.findDOMNode(e)}function qa(e){return(qa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Za(e,t){"function"==typeof e?e(t):"object"===qa(e)&&e&&"current"in e&&(e.current=t)}function Ja(){for(var e=arguments.length,t=new Array(e),n=0;n=0&&t.left>=0&&t.bottom>t.top&&t.right>t.left?t:null}function ts(e){var t,n,r;if(qi.isWindow(e)||9===e.nodeType){var o=qi.getWindow(e);t={left:qi.getWindowScrollLeft(o),top:qi.getWindowScrollTop(o)},n=qi.viewportWidth(o),r=qi.viewportHeight(o)}else t=qi.offset(e),n=qi.outerWidth(e),r=qi.outerHeight(e);return t.width=n,t.height=r,t}function ns(e,t){var n=t.charAt(0),r=t.charAt(1),o=e.width,a=e.height,i=e.left,s=e.top;return"c"===n?s+=a/2:"b"===n&&(s+=a),"c"===r?i+=o/2:"r"===r&&(i+=o),{left:i,top:s}}function rs(e,t,n,r,o){var a=ns(t,n[1]),i=ns(e,n[0]),s=[i.left-a.left,i.top-a.top];return{left:Math.round(e.left-s[0]+r[0]-o[0]),top:Math.round(e.top-s[1]+r[1]-o[1])}}function os(e,t,n){return e.leftn.right}function as(e,t,n){return e.topn.bottom}function is(e,t,n){var r=[];return qi.each(e,(function(e){r.push(e.replace(t,(function(e){return n[e]})))})),r}function ss(e,t){return e[t]=-e[t],e}function ls(e,t){return(/%$/.test(e)?parseInt(e.substring(0,e.length-1),10)/100*t:parseInt(e,10))||0}function cs(e,t){e[0]=ls(e[0],t.width),e[1]=ls(e[1],t.height)}function us(e,t,n,r){var o=n.points,a=n.offset||[0,0],i=n.targetOffset||[0,0],s=n.overflow,l=n.source||e;a=[].concat(a),i=[].concat(i),s=s||{};var c={},u=0,f=es(l),p=ts(l);cs(a,p),cs(i,t);var d=rs(p,t,o,a,i),h=qi.merge(p,d);if(f&&(s.adjustX||s.adjustY)&&r){if(s.adjustX&&os(d,p,f)){var m=is(o,/[lr]/gi,{l:"r",r:"l"}),b=ss(a,0),v=ss(i,0);(function(e,t,n){return e.left>n.right||e.left+t.widthn.bottom||e.top+t.height=n.left&&o.left+a.width>n.right&&(a.width-=o.left+a.width-n.right),r.adjustX&&o.left+a.width>n.right&&(o.left=Math.max(n.right-a.width,n.left)),r.adjustY&&o.top=n.top&&o.top+a.height>n.bottom&&(a.height-=o.top+a.height-n.bottom),r.adjustY&&o.top+a.height>n.bottom&&(o.top=Math.max(n.bottom-a.height,n.top)),qi.mix(o,a)}(d,p,f,c))}return h.width!==p.width&&qi.css(l,"width",qi.width(l)+h.width-p.width),h.height!==p.height&&qi.css(l,"height",qi.height(l)+h.height-p.height),qi.offset(l,{left:h.left,top:h.top},{useCssRight:n.useCssRight,useCssBottom:n.useCssBottom,useCssTransform:n.useCssTransform,ignoreShake:n.ignoreShake}),{points:o,offset:a,targetOffset:i,overflow:c}}function fs(e,t,n){var r=n.target||t;return us(e,ts(r),n,!function(e){var t=es(e),n=ts(e);return!t||n.left+n.width<=t.left||n.top+n.height<=t.top||n.left>=t.right||n.top>=t.bottom}(r))}function ps(e,t,n){var r,o,a=qi.getDocument(e),i=a.defaultView||a.parentWindow,s=qi.getWindowScrollLeft(i),l=qi.getWindowScrollTop(i),c=qi.viewportWidth(i),u=qi.viewportHeight(i);r="pageX"in t?t.pageX:s+t.clientX,o="pageY"in t?t.pageY:l+t.clientY;var f=r>=0&&r<=s+c&&o>=0&&o<=l+u;return us(e,{left:r,top:o,width:0,height:0},function(e){for(var t=1;t1&&(p=o.a.createElement("div",{className:"".concat(n,"-content")},s)),o.a.createElement("div",{ref:t,className:va()(r,!a&&"".concat(e.hiddenClassName)),onMouseEnter:l,onMouseLeave:c,onMouseDown:u,onTouchStart:f,style:i},p)}));zs.displayName="PopupInner";var Bs=zs;function Us(e){var t=e.prefixCls,n=e.motion,r=e.animation,o=e.transitionName;return n||(r?{motionName:"".concat(t,"-").concat(r)}:o?{motionName:o}:null)}function Vs(e){return(Vs="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ws(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Gs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ys(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var El=Object(r.forwardRef)((function(e,t){var n=e.overlayClassName,a=e.trigger,i=void 0===a?["hover"]:a,s=e.mouseEnterDelay,l=void 0===s?0:s,c=e.mouseLeaveDelay,u=void 0===c?.1:c,f=e.overlayStyle,p=e.prefixCls,d=void 0===p?"rc-tooltip":p,h=e.children,m=e.onVisibleChange,b=e.afterVisibleChange,v=e.transitionName,g=e.animation,y=e.placement,x=void 0===y?"right":y,w=e.align,O=void 0===w?{}:w,k=e.destroyTooltipOnHide,E=void 0!==k&&k,S=e.defaultVisible,_=e.getTooltipContainer,j=kl(e,["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer"]),C=Object(r.useRef)(null);Object(r.useImperativeHandle)(t,(function(){return C.current}));var P=function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},n=t.isTarget,r=t.showLabel,a=o.a.createElement(vc,Ac({isTarget:n},e),o.a.createElement("div",{className:"label"},e.label),o.a.createElement("div",{className:"value"},e.value));return o.a.createElement(lc,Ac({isTarget:n},e),r&&a,o.a.createElement(fc,Ac({isTarget:n,showLabel:r},e)))},Dc=function(e){if(!e.color.ranges||!Re(e)){var t=Ve(e.color);return{trackStyle:{backgroundColor:t},activeDotStyle:e.theme.dark?{background:t,boxShadow:"0 0 6px 1px ".concat(t)}:{borderColor:t}}}return{railStyle:{backgroundImage:"".concat(Ue(e),", linear-gradient(0deg, #000, #000)"),backgroundBlendMode:e.theme.dark?"none":"overlay"},trackStyle:{mixBlendMode:"overlay",background:e.theme.dark?"#fff":"#000"},dotStyle:{display:"none"}}},Nc=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=function(e,t){return!t||"object"!==Oc(t)&&"function"!=typeof t?Pc(e):t}(this,Cc(t).call(this,e))).state={value:null!=e.value?e.value:e.min,trackStyle:Dc(e)},n.onChange=n.onChange.bind(Pc(n)),n.onAfterChange=n.onAfterChange.bind(Pc(n)),n.renderSliderHandle=n.renderSliderHandle.bind(Pc(n)),n.renderTargets=n.renderTargets.bind(Pc(n)),n.calcLabelOffset=n.calcLabelOffset.bind(Pc(n)),n}var n,r,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Mc(e,t)}(t,e),n=t,(r=[{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t={},n=Object(q.b)(this.props);void 0!==e.value&&e.value!==this.state.value&&(t.value=e.value),jl()(e.color,this.props.color)||(t.trackStyle=Dc(Sc({},n,{},e))),this.setState(t)}},{key:"onChange",value:function(e){var t=this.props,n=t.updatemode,r=t.setProps;this.props.value&&"drag"===n||this.setState({value:e}),"drag"===n&&r&&r({value:e})}},{key:"onAfterChange",value:function(e){var t=this.props,n=t.updatemode,r=t.setProps;"mouseup"===n&&r&&r({value:e})}},{key:"renderSliderHandle",value:function(e){var t=this.props.handleLabel,n=Sc({},Object(q.b)(this.props),{},e);return t?(n=Sc({},n,{value:t.showCurrentValue&&this.state.value,label:t.label||(t instanceof Object?" ":t),color:t.color||Ve(this.props.color),style:t.style}),Tc(n,{showLabel:!0})):Tc(n)}},{key:"renderTargets",value:function(){var e=Object(q.b)(this.props);return Object.entries(this.props.targets).reduce((function(t,n){var r=kc(n,2),o=r[0],a=r[1],i=Sc({},e,{label:a.label||a,value:a.showCurrentValue&&o,color:a.color,style:a.style}),s=Tc(i,{isTarget:!0,showLabel:!!a});return t[o]={style:bc,label:s},t}),{})}},{key:"calcLabelOffset",value:function(e){var t=e.vertical,n=e.labelPosition,r=e.marks,o=e.targets,a=e.handleLabel;if(t)return null;if("bottom"===n)return"transform: translateY(".concat(r?20:0,"px);");var i=!1;return Object.values(o).map((function(e){e.showCurrentValue&&(i=!0)})),a&&a.showCurrentValue&&(i=!0),"transform: translateY(".concat(i?-38:-16,"px);")}},{key:"render",value:function(){var e=this.state.value,t=this.props,n=t.className,r=t.id,a=t.theme,i=t.label,s=t.size,c=t.vertical,u=t.style,f=t.marks,p=Object(q.a)("slider",a.dark),d=Object(q.b)(this.props),h=this.props.vertical?Sc({},u,{marginLeft:"45px"}):Sc({},u,{marginTop:"45px"});return h=this.props.fullSize?this.props.vertical?Sc({},h,{height:"100%"}):Sc({},h,{width:"100%"}):h,o.a.createElement("div",{id:r,style:h,className:p+(n?" "+n:"")},o.a.createElement($.a,Ac({className:p+"__label",labelCSS:i?this.calcLabelOffset(this.props):null},d),o.a.createElement(sc,{fullSize:this.props.fullSize,size:s,vertical:c},o.a.createElement(Sl,Ac({className:p+"__slider",onChange:this.onChange,onAfterChange:this.onAfterChange,value:e,handle:this.renderSliderHandle,marks:Sc({},f,{},this.renderTargets())},this.state.trackStyle,Object(l.a)(["setProps","updatemode","value","marks"],d))))))}}])&&jc(n.prototype,r),a&&jc(n,a),t}(r.Component);Nc.defaultProps=Vc,Nc.propTypes=Wc;var Ic=Object(s.d)(Nc);function Lc(e){return(Lc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Rc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Fc(e,t){for(var n=0;no){b.current.innerHTML=e.exceedMessage?"string"==typeof e.exceedMessage?e.exceedMessage:e.exceedMessage(r,o)||"":""}else if(r div {\n margin-top: 56px;\n line-height: 28px;\n }\n"]);return Zc=function(){return e},e}function Jc(){var e=eu(["\n width: ","px;\n height: ","px;\n border-radius: 50%;\n background-color: ",";\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n bottom: -","px;\n z-index: -1;\n"]);return Jc=function(){return e},e}function Qc(){var e=eu(["\n display: flex;\n flex-direction: column;\n align-items: center;\n"]);return Qc=function(){return e},e}function eu(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var tu=s.c.div(Qc()),nu=s.c.div(Jc(),30,30,(function(e){return e.on?e.color||e.theme.primary:e.theme.secondary}),20);nu.defaultProps={theme:c.e};var ru=s.c.div(Zc());function ou(){return(ou=Object.assign||function(e){for(var t=1;t= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n// \nvar isPlainObject = (function (x) {\n return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x.constructor === Object;\n});\n\n// \nvar EMPTY_ARRAY = Object.freeze([]);\nvar EMPTY_OBJECT = Object.freeze({});\n\n// \nfunction isFunction(test) {\n return typeof test === 'function';\n}\n\n// \n\nfunction getComponentName(target) {\n return (process.env.NODE_ENV !== 'production' ? typeof target === 'string' && target : false) || target.displayName || target.name || 'Component';\n}\n\n// \nfunction isStatelessFunction(test) {\n return typeof test === 'function' && !(test.prototype && test.prototype.isReactComponent);\n}\n\n// \nfunction isStyledComponent(target) {\n return target && typeof target.styledComponentId === 'string';\n}\n\n// \n\nvar SC_ATTR = typeof process !== 'undefined' && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || 'data-styled';\n\nvar SC_VERSION_ATTR = 'data-styled-version';\n\nvar SC_STREAM_ATTR = 'data-styled-streamed';\n\nvar IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\n\nvar DISABLE_SPEEDY = typeof SC_DISABLE_SPEEDY === 'boolean' && SC_DISABLE_SPEEDY || typeof process !== 'undefined' && (process.env.REACT_APP_SC_DISABLE_SPEEDY || process.env.SC_DISABLE_SPEEDY) || process.env.NODE_ENV !== 'production';\n\n// Shared empty execution context when generating static styles\nvar STATIC_EXECUTION_CONTEXT = {};\n\n// \n\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n */\nvar ERRORS = process.env.NODE_ENV !== 'production' ? {\n \"1\": \"Cannot create styled-component for component: %s.\\n\\n\",\n \"2\": \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n \"3\": \"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",\n \"4\": \"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",\n \"5\": \"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",\n \"6\": \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n \"7\": \"ThemeProvider: Please return an object from your \\\"theme\\\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n\",\n \"8\": \"ThemeProvider: Please make your \\\"theme\\\" prop an object.\\n\\n\",\n \"9\": \"Missing document ``\\n\\n\",\n \"10\": \"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",\n \"11\": \"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",\n \"12\": \"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",\n \"13\": \"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\"\n} : {};\n\n/**\n * super basic version of sprintf\n */\nfunction format() {\n var a = arguments.length <= 0 ? undefined : arguments[0];\n var b = [];\n\n for (var c = 1, len = arguments.length; c < len; c += 1) {\n b.push(arguments.length <= c ? undefined : arguments[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n\n return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n */\n\nvar StyledComponentsError = function (_Error) {\n inherits(StyledComponentsError, _Error);\n\n function StyledComponentsError(code) {\n classCallCheck(this, StyledComponentsError);\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV === 'production') {\n var _this = possibleConstructorReturn(this, _Error.call(this, 'An error occurred. See https://github.com/styled-components/styled-components/blob/master/packages/styled-components/src/utils/errors.md#' + code + ' for more information.' + (interpolations.length > 0 ? ' Additional arguments: ' + interpolations.join(', ') : '')));\n } else {\n var _this = possibleConstructorReturn(this, _Error.call(this, format.apply(undefined, [ERRORS[code]].concat(interpolations)).trim()));\n }\n return possibleConstructorReturn(_this);\n }\n\n return StyledComponentsError;\n}(Error);\n\n// \nvar SC_COMPONENT_ID = /^[^\\S\\n]*?\\/\\* sc-component-id:\\s*(\\S+)\\s+\\*\\//gm;\n\nvar extractComps = (function (maybeCSS) {\n var css = '' + (maybeCSS || ''); // Definitely a string, and a clone\n var existingComponents = [];\n css.replace(SC_COMPONENT_ID, function (match, componentId, matchIndex) {\n existingComponents.push({ componentId: componentId, matchIndex: matchIndex });\n return match;\n });\n return existingComponents.map(function (_ref, i) {\n var componentId = _ref.componentId,\n matchIndex = _ref.matchIndex;\n\n var nextComp = existingComponents[i + 1];\n var cssFromDOM = nextComp ? css.slice(matchIndex, nextComp.matchIndex) : css.slice(matchIndex);\n return { componentId: componentId, cssFromDOM: cssFromDOM };\n });\n});\n\n// \n\nvar COMMENT_REGEX = /^\\s*\\/\\/.*$/gm;\n\n// NOTE: This stylis instance is only used to split rules from SSR'd style tags\nvar stylisSplitter = new Stylis({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: false,\n compress: false,\n semicolon: true\n});\n\nvar stylis = new Stylis({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: true,\n compress: false,\n semicolon: false // NOTE: This means \"autocomplete missing semicolons\"\n});\n\n// Wrap `insertRulePlugin to build a list of rules,\n// and then make our own plugin to return the rules. This\n// makes it easier to hook into the existing SSR architecture\n\nvar parsingRules = [];\n\n// eslint-disable-next-line consistent-return\nvar returnRulesPlugin = function returnRulesPlugin(context) {\n if (context === -2) {\n var parsedRules = parsingRules;\n parsingRules = [];\n return parsedRules;\n }\n};\n\nvar parseRulesPlugin = _insertRulePlugin(function (rule) {\n parsingRules.push(rule);\n});\n\nvar _componentId = void 0;\nvar _selector = void 0;\nvar _selectorRegexp = void 0;\n\nvar selfReferenceReplacer = function selfReferenceReplacer(match, offset, string) {\n if (\n // the first self-ref is always untouched\n offset > 0 &&\n // there should be at least two self-refs to do a replacement (.b > .b)\n string.slice(0, offset).indexOf(_selector) !== -1 &&\n // no consecutive self refs (.b.b); that is a precedence boost and treated differently\n string.slice(offset - _selector.length, offset) !== _selector) {\n return '.' + _componentId;\n }\n\n return match;\n};\n\n/**\n * When writing a style like\n *\n * & + & {\n * color: red;\n * }\n *\n * The second ampersand should be a reference to the static component class. stylis\n * has no knowledge of static class so we have to intelligently replace the base selector.\n */\nvar selfReferenceReplacementPlugin = function selfReferenceReplacementPlugin(context, _, selectors) {\n if (context === 2 && selectors.length && selectors[0].lastIndexOf(_selector) > 0) {\n // eslint-disable-next-line no-param-reassign\n selectors[0] = selectors[0].replace(_selectorRegexp, selfReferenceReplacer);\n }\n};\n\nstylis.use([selfReferenceReplacementPlugin, parseRulesPlugin, returnRulesPlugin]);\nstylisSplitter.use([parseRulesPlugin, returnRulesPlugin]);\n\nvar splitByRules = function splitByRules(css) {\n return stylisSplitter('', css);\n};\n\nfunction stringifyRules(rules, selector, prefix) {\n var componentId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '&';\n\n var flatCSS = rules.join('').replace(COMMENT_REGEX, ''); // replace JS comments\n\n var cssStr = selector && prefix ? prefix + ' ' + selector + ' { ' + flatCSS + ' }' : flatCSS;\n\n // stylis has no concept of state to be passed to plugins\n // but since JS is single=threaded, we can rely on that to ensure\n // these properties stay in sync with the current stylis run\n _componentId = componentId;\n _selector = selector;\n _selectorRegexp = new RegExp('\\\\' + _selector + '\\\\b', 'g');\n\n return stylis(prefix || !selector ? '' : selector, cssStr);\n}\n\n// \n/* eslint-disable camelcase, no-undef */\n\nvar getNonce = (function () {\n return typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n});\n\n// \n/* These are helpers for the StyleTags to keep track of the injected\n * rule names for each (component) ID that they're keeping track of.\n * They're crucial for detecting whether a name has already been\n * injected.\n * (This excludes rehydrated names) */\n\n/* adds a new ID:name pairing to a names dictionary */\nvar addNameForId = function addNameForId(names, id, name) {\n if (name) {\n // eslint-disable-next-line no-param-reassign\n var namesForId = names[id] || (names[id] = Object.create(null));\n namesForId[name] = true;\n }\n};\n\n/* resets an ID entirely by overwriting it in the dictionary */\nvar resetIdNames = function resetIdNames(names, id) {\n // eslint-disable-next-line no-param-reassign\n names[id] = Object.create(null);\n};\n\n/* factory for a names dictionary checking the existance of an ID:name pairing */\nvar hasNameForId = function hasNameForId(names) {\n return function (id, name) {\n return names[id] !== undefined && names[id][name];\n };\n};\n\n/* stringifies names for the html/element output */\nvar stringifyNames = function stringifyNames(names) {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in names) {\n str += Object.keys(names[id]).join(' ') + ' ';\n }\n return str.trim();\n};\n\n/* clones the nested names dictionary */\nvar cloneNames = function cloneNames(names) {\n var clone = Object.create(null);\n // eslint-disable-next-line guard-for-in\n for (var id in names) {\n clone[id] = _extends({}, names[id]);\n }\n return clone;\n};\n\n// \n\n/* These are helpers that deal with the insertRule (aka speedy) API\n * They are used in the StyleTags and specifically the speedy tag\n */\n\n/* retrieve a sheet for a given style tag */\nvar sheetForTag = function sheetForTag(tag) {\n // $FlowFixMe\n if (tag.sheet) return tag.sheet;\n\n /* Firefox quirk requires us to step through all stylesheets to find one owned by the given tag */\n var size = tag.ownerDocument.styleSheets.length;\n for (var i = 0; i < size; i += 1) {\n var sheet = tag.ownerDocument.styleSheets[i];\n // $FlowFixMe\n if (sheet.ownerNode === tag) return sheet;\n }\n\n /* we should always be able to find a tag */\n throw new StyledComponentsError(10);\n};\n\n/* insert a rule safely and return whether it was actually injected */\nvar safeInsertRule = function safeInsertRule(sheet, cssRule, index) {\n /* abort early if cssRule string is falsy */\n if (!cssRule) return false;\n\n var maxIndex = sheet.cssRules.length;\n\n try {\n /* use insertRule and cap passed index with maxIndex (no of cssRules) */\n sheet.insertRule(cssRule, index <= maxIndex ? index : maxIndex);\n } catch (err) {\n /* any error indicates an invalid rule */\n return false;\n }\n\n return true;\n};\n\n/* deletes `size` rules starting from `removalIndex` */\nvar deleteRules = function deleteRules(sheet, removalIndex, size) {\n var lowerBound = removalIndex - size;\n for (var i = removalIndex; i > lowerBound; i -= 1) {\n sheet.deleteRule(i);\n }\n};\n\n// \n\n/* this marker separates component styles and is important for rehydration */\nvar makeTextMarker = function makeTextMarker(id) {\n return '\\n/* sc-component-id: ' + id + ' */\\n';\n};\n\n/* add up all numbers in array up until and including the index */\nvar addUpUntilIndex = function addUpUntilIndex(sizes, index) {\n var totalUpToIndex = 0;\n for (var i = 0; i <= index; i += 1) {\n totalUpToIndex += sizes[i];\n }\n\n return totalUpToIndex;\n};\n\n/* create a new style tag after lastEl */\nvar makeStyleTag = function makeStyleTag(target, tagEl, insertBefore) {\n var targetDocument = document;\n if (target) targetDocument = target.ownerDocument;else if (tagEl) targetDocument = tagEl.ownerDocument;\n\n var el = targetDocument.createElement('style');\n el.setAttribute(SC_ATTR, '');\n el.setAttribute(SC_VERSION_ATTR, \"4.4.0\");\n\n var nonce = getNonce();\n if (nonce) {\n el.setAttribute('nonce', nonce);\n }\n\n /* Work around insertRule quirk in EdgeHTML */\n el.appendChild(targetDocument.createTextNode(''));\n\n if (target && !tagEl) {\n /* Append to target when no previous element was passed */\n target.appendChild(el);\n } else {\n if (!tagEl || !target || !tagEl.parentNode) {\n throw new StyledComponentsError(6);\n }\n\n /* Insert new style tag after the previous one */\n tagEl.parentNode.insertBefore(el, insertBefore ? tagEl : tagEl.nextSibling);\n }\n\n return el;\n};\n\n/* takes a css factory function and outputs an html styled tag factory */\nvar wrapAsHtmlTag = function wrapAsHtmlTag(css, names) {\n return function (additionalAttrs) {\n var nonce = getNonce();\n var attrs = [nonce && 'nonce=\"' + nonce + '\"', SC_ATTR + '=\"' + stringifyNames(names) + '\"', SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"', additionalAttrs];\n\n var htmlAttr = attrs.filter(Boolean).join(' ');\n return '';\n };\n};\n\n/* takes a css factory function and outputs an element factory */\nvar wrapAsElement = function wrapAsElement(css, names) {\n return function () {\n var _props;\n\n var props = (_props = {}, _props[SC_ATTR] = stringifyNames(names), _props[SC_VERSION_ATTR] = \"4.4.0\", _props);\n\n var nonce = getNonce();\n if (nonce) {\n // $FlowFixMe\n props.nonce = nonce;\n }\n\n // eslint-disable-next-line react/no-danger\n return React.createElement('style', _extends({}, props, { dangerouslySetInnerHTML: { __html: css() } }));\n };\n};\n\nvar getIdsFromMarkersFactory = function getIdsFromMarkersFactory(markers) {\n return function () {\n return Object.keys(markers);\n };\n};\n\n/* speedy tags utilise insertRule */\nvar makeSpeedyTag = function makeSpeedyTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var sizes = [];\n\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = sizes.length;\n sizes.push(0);\n resetIdNames(names, id);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var sheet = sheetForTag(el);\n var insertIndex = addUpUntilIndex(sizes, marker);\n\n var injectedRules = 0;\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = cssRules[i];\n var mayHaveImport = extractImport; /* @import rules are reordered to appear first */\n if (mayHaveImport && cssRule.indexOf('@import') !== -1) {\n importRules.push(cssRule);\n } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n mayHaveImport = false;\n injectedRules += 1;\n }\n }\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n\n sizes[marker] += injectedRules; /* add up no of injected rules */\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n // $FlowFixMe\n if (el.isConnected === false) return;\n\n var size = sizes[marker];\n var sheet = sheetForTag(el);\n var removalIndex = addUpUntilIndex(sizes, marker) - 1;\n deleteRules(sheet, removalIndex, size);\n sizes[marker] = 0;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var _sheetForTag = sheetForTag(el),\n cssRules = _sheetForTag.cssRules;\n\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += makeTextMarker(id);\n var marker = markers[id];\n var end = addUpUntilIndex(sizes, marker);\n var size = sizes[marker];\n for (var i = end - size; i < end; i += 1) {\n var rule = cssRules[i];\n if (rule !== undefined) {\n str += rule.cssText;\n }\n }\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeTextNode = function makeTextNode(targetDocument, id) {\n return targetDocument.createTextNode(makeTextMarker(id));\n};\n\nvar makeBrowserTag = function makeBrowserTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n\n var extractImport = getImportRuleTag !== undefined;\n\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = makeTextNode(el.ownerDocument, id);\n el.appendChild(markers[id]);\n names[id] = Object.create(null);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var rule = cssRules[i];\n var mayHaveImport = extractImport;\n if (mayHaveImport && rule.indexOf('@import') !== -1) {\n importRules.push(rule);\n } else {\n mayHaveImport = false;\n var separator = i === cssRulesSize - 1 ? '' : ' ';\n marker.appendData('' + rule + separator);\n }\n }\n\n addNameForId(names, id, name);\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n\n /* create new empty text node and replace the current one */\n var newMarker = makeTextNode(el.ownerDocument, id);\n el.replaceChild(newMarker, marker);\n markers[id] = newMarker;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += markers[id].data;\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeServerTag = function makeServerTag(namesArg, markersArg) {\n var names = namesArg === undefined ? Object.create(null) : namesArg;\n var markers = markersArg === undefined ? Object.create(null) : markersArg;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n return markers[id] = [''];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n marker[0] += cssRules.join(' ');\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n marker[0] = '';\n resetIdNames(names, id);\n };\n\n var css = function css() {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n var cssForId = markers[id][0];\n if (cssForId) {\n str += makeTextMarker(id) + cssForId;\n }\n }\n return str;\n };\n\n var clone = function clone() {\n var namesClone = cloneNames(names);\n var markersClone = Object.create(null);\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n markersClone[id] = [markers[id][0]];\n }\n\n return makeServerTag(namesClone, markersClone);\n };\n\n var tag = {\n clone: clone,\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: null,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n\n return tag;\n};\n\nvar makeTag = function makeTag(target, tagEl, forceServer, insertBefore, getImportRuleTag) {\n if (IS_BROWSER && !forceServer) {\n var el = makeStyleTag(target, tagEl, insertBefore);\n\n if (DISABLE_SPEEDY) {\n return makeBrowserTag(el, getImportRuleTag);\n } else {\n return makeSpeedyTag(el, getImportRuleTag);\n }\n }\n\n return makeServerTag();\n};\n\nvar rehydrate = function rehydrate(tag, els, extracted) {\n /* add all extracted components to the new tag */\n for (var i = 0, len = extracted.length; i < len; i += 1) {\n var _extracted$i = extracted[i],\n componentId = _extracted$i.componentId,\n cssFromDOM = _extracted$i.cssFromDOM;\n\n var cssRules = splitByRules(cssFromDOM);\n tag.insertRules(componentId, cssRules);\n }\n\n /* remove old HTMLStyleElements, since they have been rehydrated */\n for (var _i = 0, _len = els.length; _i < _len; _i += 1) {\n var el = els[_i];\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n};\n\n// \n\nvar SPLIT_REGEX = /\\s+/;\n\n/* determine the maximum number of components before tags are sharded */\nvar MAX_SIZE = void 0;\nif (IS_BROWSER) {\n /* in speedy mode we can keep a lot more rules in a sheet before a slowdown can be expected */\n MAX_SIZE = DISABLE_SPEEDY ? 40 : 1000;\n} else {\n /* for servers we do not need to shard at all */\n MAX_SIZE = -1;\n}\n\nvar sheetRunningId = 0;\nvar master = void 0;\n\nvar StyleSheet = function () {\n\n /* a map from ids to tags */\n\n /* deferred rules for a given id */\n\n /* this is used for not reinjecting rules via hasNameForId() */\n\n /* when rules for an id are removed using remove() we have to ignore rehydratedNames for it */\n\n /* a list of tags belonging to this StyleSheet */\n\n /* a tag for import rules */\n\n /* current capacity until a new tag must be created */\n\n /* children (aka clones) of this StyleSheet inheriting all and future injections */\n\n function StyleSheet() {\n var _this = this;\n\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : IS_BROWSER ? document.head : null;\n var forceServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n classCallCheck(this, StyleSheet);\n\n this.getImportRuleTag = function () {\n var importRuleTag = _this.importRuleTag;\n\n if (importRuleTag !== undefined) {\n return importRuleTag;\n }\n\n var firstTag = _this.tags[0];\n var insertBefore = true;\n\n return _this.importRuleTag = makeTag(_this.target, firstTag ? firstTag.styleTag : null, _this.forceServer, insertBefore);\n };\n\n sheetRunningId += 1;\n this.id = sheetRunningId;\n this.forceServer = forceServer;\n this.target = forceServer ? null : target;\n this.tagMap = {};\n this.deferred = {};\n this.rehydratedNames = {};\n this.ignoreRehydratedNames = {};\n this.tags = [];\n this.capacity = 1;\n this.clones = [];\n }\n\n /* rehydrate all SSR'd style tags */\n\n\n StyleSheet.prototype.rehydrate = function rehydrate$$1() {\n if (!IS_BROWSER || this.forceServer) return this;\n\n var els = [];\n var extracted = [];\n var isStreamed = false;\n\n /* retrieve all of our SSR style elements from the DOM */\n var nodes = document.querySelectorAll('style[' + SC_ATTR + '][' + SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"]');\n\n var nodesSize = nodes.length;\n\n /* abort rehydration if no previous style tags were found */\n if (!nodesSize) return this;\n\n for (var i = 0; i < nodesSize; i += 1) {\n var el = nodes[i];\n\n /* check if style tag is a streamed tag */\n if (!isStreamed) isStreamed = !!el.getAttribute(SC_STREAM_ATTR);\n\n /* retrieve all component names */\n var elNames = (el.getAttribute(SC_ATTR) || '').trim().split(SPLIT_REGEX);\n var elNamesSize = elNames.length;\n for (var j = 0, name; j < elNamesSize; j += 1) {\n name = elNames[j];\n /* add rehydrated name to sheet to avoid re-adding styles */\n this.rehydratedNames[name] = true;\n }\n\n /* extract all components and their CSS */\n extracted.push.apply(extracted, extractComps(el.textContent));\n\n /* store original HTMLStyleElement */\n els.push(el);\n }\n\n /* abort rehydration if nothing was extracted */\n var extractedSize = extracted.length;\n if (!extractedSize) return this;\n\n /* create a tag to be used for rehydration */\n var tag = this.makeTag(null);\n\n rehydrate(tag, els, extracted);\n\n /* reset capacity and adjust MAX_SIZE by the initial size of the rehydration */\n this.capacity = Math.max(1, MAX_SIZE - extractedSize);\n this.tags.push(tag);\n\n /* retrieve all component ids */\n for (var _j = 0; _j < extractedSize; _j += 1) {\n this.tagMap[extracted[_j].componentId] = tag;\n }\n\n return this;\n };\n\n /* retrieve a \"master\" instance of StyleSheet which is typically used when no other is available\n * The master StyleSheet is targeted by createGlobalStyle, keyframes, and components outside of any\n * StyleSheetManager's context */\n\n\n /* reset the internal \"master\" instance */\n StyleSheet.reset = function reset() {\n var forceServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n master = new StyleSheet(undefined, forceServer).rehydrate();\n };\n\n /* adds \"children\" to the StyleSheet that inherit all of the parents' rules\n * while their own rules do not affect the parent */\n\n\n StyleSheet.prototype.clone = function clone() {\n var sheet = new StyleSheet(this.target, this.forceServer);\n\n /* add to clone array */\n this.clones.push(sheet);\n\n /* clone all tags */\n sheet.tags = this.tags.map(function (tag) {\n var ids = tag.getIds();\n var newTag = tag.clone();\n\n /* reconstruct tagMap */\n for (var i = 0; i < ids.length; i += 1) {\n sheet.tagMap[ids[i]] = newTag;\n }\n\n return newTag;\n });\n\n /* clone other maps */\n sheet.rehydratedNames = _extends({}, this.rehydratedNames);\n sheet.deferred = _extends({}, this.deferred);\n\n return sheet;\n };\n\n /* force StyleSheet to create a new tag on the next injection */\n\n\n StyleSheet.prototype.sealAllTags = function sealAllTags() {\n this.capacity = 1;\n\n this.tags.forEach(function (tag) {\n // eslint-disable-next-line no-param-reassign\n tag.sealed = true;\n });\n };\n\n StyleSheet.prototype.makeTag = function makeTag$$1(tag) {\n var lastEl = tag ? tag.styleTag : null;\n var insertBefore = false;\n\n return makeTag(this.target, lastEl, this.forceServer, insertBefore, this.getImportRuleTag);\n };\n\n /* get a tag for a given componentId, assign the componentId to one, or shard */\n StyleSheet.prototype.getTagForId = function getTagForId(id) {\n /* simply return a tag, when the componentId was already assigned one */\n var prev = this.tagMap[id];\n if (prev !== undefined && !prev.sealed) {\n return prev;\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n /* shard (create a new tag) if the tag is exhausted (See MAX_SIZE) */\n this.capacity -= 1;\n\n if (this.capacity === 0) {\n this.capacity = MAX_SIZE;\n tag = this.makeTag(tag);\n this.tags.push(tag);\n }\n\n return this.tagMap[id] = tag;\n };\n\n /* mainly for createGlobalStyle to check for its id */\n\n\n StyleSheet.prototype.hasId = function hasId(id) {\n return this.tagMap[id] !== undefined;\n };\n\n /* caching layer checking id+name to already have a corresponding tag and injected rules */\n\n\n StyleSheet.prototype.hasNameForId = function hasNameForId(id, name) {\n /* exception for rehydrated names which are checked separately */\n if (this.ignoreRehydratedNames[id] === undefined && this.rehydratedNames[name]) {\n return true;\n }\n\n var tag = this.tagMap[id];\n return tag !== undefined && tag.hasNameForId(id, name);\n };\n\n /* registers a componentId and registers it on its tag */\n\n\n StyleSheet.prototype.deferredInject = function deferredInject(id, cssRules) {\n /* don't inject when the id is already registered */\n if (this.tagMap[id] !== undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].deferredInject(id, cssRules);\n }\n\n this.getTagForId(id).insertMarker(id);\n this.deferred[id] = cssRules;\n };\n\n /* injects rules for a given id with a name that will need to be cached */\n\n\n StyleSheet.prototype.inject = function inject(id, cssRules, name) {\n var clones = this.clones;\n\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].inject(id, cssRules, name);\n }\n\n var tag = this.getTagForId(id);\n\n /* add deferred rules for component */\n if (this.deferred[id] !== undefined) {\n // Combine passed cssRules with previously deferred CSS rules\n // NOTE: We cannot mutate the deferred array itself as all clones\n // do the same (see clones[i].inject)\n var rules = this.deferred[id].concat(cssRules);\n tag.insertRules(id, rules, name);\n\n this.deferred[id] = undefined;\n } else {\n tag.insertRules(id, cssRules, name);\n }\n };\n\n /* removes all rules for a given id, which doesn't remove its marker but resets it */\n\n\n StyleSheet.prototype.remove = function remove(id) {\n var tag = this.tagMap[id];\n if (tag === undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].remove(id);\n }\n\n /* remove all rules from the tag */\n tag.removeRules(id);\n\n /* ignore possible rehydrated names */\n this.ignoreRehydratedNames[id] = true;\n\n /* delete possible deferred rules */\n this.deferred[id] = undefined;\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n var id = this.id;\n\n\n return this.tags.map(function (tag, i) {\n var key = 'sc-' + id + '-' + i;\n return cloneElement(tag.toElement(), { key: key });\n });\n };\n\n createClass(StyleSheet, null, [{\n key: 'master',\n get: function get$$1() {\n return master || (master = new StyleSheet().rehydrate());\n }\n\n /* NOTE: This is just for backwards-compatibility with jest-styled-components */\n\n }, {\n key: 'instance',\n get: function get$$1() {\n return StyleSheet.master;\n }\n }]);\n return StyleSheet;\n}();\n\n// \n\nvar Keyframes = function () {\n function Keyframes(name, rules) {\n var _this = this;\n\n classCallCheck(this, Keyframes);\n\n this.inject = function (styleSheet) {\n if (!styleSheet.hasNameForId(_this.id, _this.name)) {\n styleSheet.inject(_this.id, _this.rules, _this.name);\n }\n };\n\n this.toString = function () {\n throw new StyledComponentsError(12, String(_this.name));\n };\n\n this.name = name;\n this.rules = rules;\n\n this.id = 'sc-keyframes-' + name;\n }\n\n Keyframes.prototype.getName = function getName() {\n return this.name;\n };\n\n return Keyframes;\n}();\n\n// \n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\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 * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return string.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\n// \n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nfunction addUnitIfNeeded(name, value) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n}\n\n// \n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nvar isFalsish = function isFalsish(chunk) {\n return chunk === undefined || chunk === null || chunk === false || chunk === '';\n};\n\nvar objToCssArray = function objToCssArray(obj, prevKey) {\n var rules = [];\n var keys = Object.keys(obj);\n\n keys.forEach(function (key) {\n if (!isFalsish(obj[key])) {\n if (isPlainObject(obj[key])) {\n rules.push.apply(rules, objToCssArray(obj[key], key));\n\n return rules;\n } else if (isFunction(obj[key])) {\n rules.push(hyphenateStyleName(key) + ':', obj[key], ';');\n\n return rules;\n }\n rules.push(hyphenateStyleName(key) + ': ' + addUnitIfNeeded(key, obj[key]) + ';');\n }\n return rules;\n });\n\n return prevKey ? [prevKey + ' {'].concat(rules, ['}']) : rules;\n};\n\nfunction flatten(chunk, executionContext, styleSheet) {\n if (Array.isArray(chunk)) {\n var ruleSet = [];\n\n for (var i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet);\n\n if (result === null) continue;else if (Array.isArray(result)) ruleSet.push.apply(ruleSet, result);else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return null;\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return '.' + chunk.styledComponentId;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n var _result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(_result)) {\n // eslint-disable-next-line no-console\n console.warn(getComponentName(chunk) + ' is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.');\n }\n\n return flatten(_result, executionContext, styleSheet);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet);\n return chunk.getName();\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n}\n\n// \n\nfunction css(styles) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return flatten(interleave(EMPTY_ARRAY, [styles].concat(interpolations)));\n }\n\n // $FlowFixMe\n return flatten(interleave(styles, interpolations));\n}\n\n// \n\nfunction constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n if (!isValidElementType(tag)) {\n throw new StyledComponentsError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n var templateFunction = function templateFunction() {\n return componentConstructor(tag, options, css.apply(undefined, arguments));\n };\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean)\n }));\n };\n\n return templateFunction;\n}\n\n// \n// Source: https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash(c) {\n for (var e = c.length | 0, a = e | 0, d = 0, b; e >= 4;) {\n b = c.charCodeAt(d) & 255 | (c.charCodeAt(++d) & 255) << 8 | (c.charCodeAt(++d) & 255) << 16 | (c.charCodeAt(++d) & 255) << 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), b ^= b >>> 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16) ^ b, e -= 4, ++d;\n }\n switch (e) {\n case 3:\n a ^= (c.charCodeAt(d + 2) & 255) << 16;\n case 2:\n a ^= (c.charCodeAt(d + 1) & 255) << 8;\n case 1:\n a ^= c.charCodeAt(d) & 255, a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n }\n a ^= a >>> 13;\n a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n return (a ^ a >>> 15) >>> 0;\n}\n\n// \n/* eslint-disable no-bitwise */\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nvar charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nvar getAlphabeticChar = function getAlphabeticChar(code) {\n return String.fromCharCode(code + (code > 25 ? 39 : 97));\n};\n\n/* input a number, usually a hash and convert it to base-52 */\nfunction generateAlphabeticName(code) {\n var name = '';\n var x = void 0;\n\n /* get a char and divide by alphabet-length */\n for (x = code; x > charsLength; x = Math.floor(x / charsLength)) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return getAlphabeticChar(x % charsLength) + name;\n}\n\n// \n\nfunction hasFunctionObjectKey(obj) {\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in obj) {\n if (isFunction(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isStaticRules(rules, attrs) {\n for (var i = 0; i < rules.length; i += 1) {\n var rule = rules[i];\n\n // recursive case\n if (Array.isArray(rule) && !isStaticRules(rule, attrs)) {\n return false;\n } else if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n if (attrs.some(function (x) {\n return isFunction(x) || hasFunctionObjectKey(x);\n })) return false;\n\n return true;\n}\n\n// \n\n/* combines hashStr (murmurhash) and nameGenerator for convenience */\nvar hasher = function hasher(str) {\n return generateAlphabeticName(murmurhash(str));\n};\n\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\n\nvar ComponentStyle = function () {\n function ComponentStyle(rules, attrs, componentId) {\n classCallCheck(this, ComponentStyle);\n\n this.rules = rules;\n this.isStatic = process.env.NODE_ENV === 'production' && isStaticRules(rules, attrs);\n this.componentId = componentId;\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n\n\n ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) {\n var isStatic = this.isStatic,\n componentId = this.componentId,\n lastClassName = this.lastClassName;\n\n if (IS_BROWSER && isStatic && typeof lastClassName === 'string' && styleSheet.hasNameForId(componentId, lastClassName)) {\n return lastClassName;\n }\n\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var name = hasher(this.componentId + flatCSS.join(''));\n if (!styleSheet.hasNameForId(componentId, name)) {\n styleSheet.inject(this.componentId, stringifyRules(flatCSS, '.' + name, undefined, componentId), name);\n }\n\n this.lastClassName = name;\n return name;\n };\n\n ComponentStyle.generateName = function generateName(str) {\n return hasher(str);\n };\n\n return ComponentStyle;\n}();\n\n// \n\nvar LIMIT = 200;\n\nvar createWarnTooManyClasses = (function (displayName) {\n var generatedClasses = {};\n var warningSeen = false;\n\n return function (className) {\n if (!warningSeen) {\n generatedClasses[className] = true;\n if (Object.keys(generatedClasses).length >= LIMIT) {\n // Unable to find latestRule in test environment.\n /* eslint-disable no-console, prefer-template */\n console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \\n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\\n' + 'Example:\\n' + ' const Component = styled.div.attrs(props => ({\\n' + ' style: {\\n' + ' background: props.background,\\n' + ' },\\n' + ' }))`width: 100%;`\\n\\n' + ' ');\n warningSeen = true;\n generatedClasses = {};\n }\n }\n };\n});\n\n// \n\nvar determineTheme = (function (props, fallbackTheme) {\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types, flowtype-errors/show-errors */\n var isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;\n /* eslint-enable */\n\n return theme;\n});\n\n// \nvar escapeRegex = /[[\\].#*$><+~=|^:(),\"'`-]+/g;\nvar dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nfunction escape(str) {\n return str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n\n// \n\nfunction isTag(target) {\n return typeof target === 'string' && (process.env.NODE_ENV !== 'production' ? target.charAt(0) === target.charAt(0).toLowerCase() : true);\n}\n\n// \n\nfunction generateDisplayName(target) {\n // $FlowFixMe\n return isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')';\n}\n\nvar _TYPE_STATICS;\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDerivedStateFromProps: true,\n propTypes: true,\n type: true\n};\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};\n\nvar TYPE_STATICS = (_TYPE_STATICS = {}, _TYPE_STATICS[ForwardRef] = {\n $$typeof: true,\n render: true\n}, _TYPE_STATICS);\n\nvar defineProperty$1 = Object.defineProperty,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n _Object$getOwnPropert = Object.getOwnPropertySymbols,\n getOwnPropertySymbols = _Object$getOwnPropert === undefined ? function () {\n return [];\n} : _Object$getOwnPropert,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getPrototypeOf = Object.getPrototypeOf,\n objectPrototype = Object.prototype;\nvar arrayPrototype = Array.prototype;\n\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n\n var keys = arrayPrototype.concat(getOwnPropertyNames(sourceComponent),\n // $FlowFixMe\n getOwnPropertySymbols(sourceComponent));\n\n var targetStatics = TYPE_STATICS[targetComponent.$$typeof] || REACT_STATICS;\n\n var sourceStatics = TYPE_STATICS[sourceComponent.$$typeof] || REACT_STATICS;\n\n var i = keys.length;\n var descriptor = void 0;\n var key = void 0;\n\n // eslint-disable-next-line no-plusplus\n while (i--) {\n key = keys[i];\n\n if (\n // $FlowFixMe\n !KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) &&\n // $FlowFixMe\n !(targetStatics && targetStatics[key])) {\n descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n if (descriptor) {\n try {\n // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {\n /* fail silently */\n }\n }\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\n// \nfunction isDerivedReactComponent(fn) {\n return !!(fn && fn.prototype && fn.prototype.isReactComponent);\n}\n\n// \n// Helper to call a given function, only once\nvar once = (function (cb) {\n var called = false;\n\n return function () {\n if (!called) {\n called = true;\n cb.apply(undefined, arguments);\n }\n };\n});\n\n// \n\nvar ThemeContext = createContext();\n\nvar ThemeConsumer = ThemeContext.Consumer;\n\n/**\n * Provide a theme to an entire react component tree via context\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider(props) {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext.bind(_this));\n _this.renderInner = _this.renderInner.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) return null;\n\n return React.createElement(\n ThemeContext.Consumer,\n null,\n this.renderInner\n );\n };\n\n ThemeProvider.prototype.renderInner = function renderInner(outerTheme) {\n var context = this.getContext(this.props.theme, outerTheme);\n\n return React.createElement(\n ThemeContext.Provider,\n { value: context },\n this.props.children\n );\n };\n\n /**\n * Get the theme from the props, supporting both (outerTheme) => {}\n * as well as object notation\n */\n\n\n ThemeProvider.prototype.getTheme = function getTheme(theme, outerTheme) {\n if (isFunction(theme)) {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme === null || Array.isArray(mergedTheme) || (typeof mergedTheme === 'undefined' ? 'undefined' : _typeof(mergedTheme)) !== 'object')) {\n throw new StyledComponentsError(7);\n }\n\n return mergedTheme;\n }\n\n if (theme === null || Array.isArray(theme) || (typeof theme === 'undefined' ? 'undefined' : _typeof(theme)) !== 'object') {\n throw new StyledComponentsError(8);\n }\n\n return _extends({}, outerTheme, theme);\n };\n\n ThemeProvider.prototype.getContext = function getContext(theme, outerTheme) {\n return this.getTheme(theme, outerTheme);\n };\n\n return ThemeProvider;\n}(Component);\n\n// \n\nvar CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nvar ServerStyleSheet = function () {\n function ServerStyleSheet() {\n classCallCheck(this, ServerStyleSheet);\n\n /* The master sheet might be reset, so keep a reference here */\n this.masterSheet = StyleSheet.master;\n this.instance = this.masterSheet.clone();\n this.sealed = false;\n }\n\n /**\n * Mark the ServerStyleSheet as being fully emitted and manually GC it from the\n * StyleSheet singleton.\n */\n\n\n ServerStyleSheet.prototype.seal = function seal() {\n if (!this.sealed) {\n /* Remove sealed StyleSheets from the master sheet */\n var index = this.masterSheet.clones.indexOf(this.instance);\n this.masterSheet.clones.splice(index, 1);\n this.sealed = true;\n }\n };\n\n ServerStyleSheet.prototype.collectStyles = function collectStyles(children) {\n if (this.sealed) {\n throw new StyledComponentsError(2);\n }\n\n return React.createElement(\n StyleSheetManager,\n { sheet: this.instance },\n children\n );\n };\n\n ServerStyleSheet.prototype.getStyleTags = function getStyleTags() {\n this.seal();\n return this.instance.toHTML();\n };\n\n ServerStyleSheet.prototype.getStyleElement = function getStyleElement() {\n this.seal();\n return this.instance.toReactElements();\n };\n\n ServerStyleSheet.prototype.interleaveWithNodeStream = function interleaveWithNodeStream(readableStream) {\n var _this = this;\n\n {\n throw new StyledComponentsError(3);\n }\n\n /* the tag index keeps track of which tags have already been emitted */\n var instance = this.instance;\n\n var instanceTagIndex = 0;\n\n var streamAttr = SC_STREAM_ATTR + '=\"true\"';\n\n var transformer = new stream.Transform({\n transform: function appendStyleChunks(chunk, /* encoding */_, callback) {\n var tags = instance.tags;\n\n var html = '';\n\n /* retrieve html for each new style tag */\n for (; instanceTagIndex < tags.length; instanceTagIndex += 1) {\n var tag = tags[instanceTagIndex];\n html += tag.toHTML(streamAttr);\n }\n\n /* force our StyleSheets to emit entirely new tags */\n instance.sealAllTags();\n\n var renderedHtml = chunk.toString();\n\n /* prepend style html to chunk, unless the start of the chunk is a closing tag in which case append right after that */\n if (CLOSING_TAG_R.test(renderedHtml)) {\n var endOfClosingTag = renderedHtml.indexOf('>');\n\n this.push(renderedHtml.slice(0, endOfClosingTag + 1) + html + renderedHtml.slice(endOfClosingTag + 1));\n } else this.push(html + renderedHtml);\n\n callback();\n }\n });\n\n readableStream.on('end', function () {\n return _this.seal();\n });\n\n readableStream.on('error', function (err) {\n _this.seal();\n\n // forward the error to the transform stream\n transformer.emit('error', err);\n });\n\n return readableStream.pipe(transformer);\n };\n\n return ServerStyleSheet;\n}();\n\n// \n\nvar StyleSheetContext = createContext();\nvar StyleSheetConsumer = StyleSheetContext.Consumer;\n\nvar StyleSheetManager = function (_Component) {\n inherits(StyleSheetManager, _Component);\n\n function StyleSheetManager(props) {\n classCallCheck(this, StyleSheetManager);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext);\n return _this;\n }\n\n StyleSheetManager.prototype.getContext = function getContext(sheet, target) {\n if (sheet) {\n return sheet;\n } else if (target) {\n return new StyleSheet(target);\n } else {\n throw new StyledComponentsError(4);\n }\n };\n\n StyleSheetManager.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n sheet = _props.sheet,\n target = _props.target;\n\n\n return React.createElement(\n StyleSheetContext.Provider,\n { value: this.getContext(sheet, target) },\n process.env.NODE_ENV !== 'production' ? React.Children.only(children) : children\n );\n };\n\n return StyleSheetManager;\n}(Component);\nprocess.env.NODE_ENV !== \"production\" ? StyleSheetManager.propTypes = {\n sheet: PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]),\n\n target: PropTypes.shape({\n appendChild: PropTypes.func.isRequired\n })\n} : void 0;\n\n// \n\nvar THEME_PROP_REGEX = /\\.theme[.[]/;\nvar identifiers = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(_ComponentStyle, _displayName, parentComponentId) {\n var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName);\n\n /**\n * This ensures uniqueness if two components happen to share\n * the same displayName.\n */\n var nr = (identifiers[displayName] || 0) + 1;\n identifiers[displayName] = nr;\n\n var componentId = displayName + '-' + _ComponentStyle.generateName(displayName + nr);\n\n return parentComponentId ? parentComponentId + '-' + componentId : componentId;\n}\n\n// $FlowFixMe\n\nvar StyledComponent = function (_Component) {\n inherits(StyledComponent, _Component);\n\n function StyledComponent() {\n classCallCheck(this, StyledComponent);\n\n var _this = possibleConstructorReturn(this, _Component.call(this));\n\n _this.attrs = {};\n\n _this.renderOuter = _this.renderOuter.bind(_this);\n _this.renderInner = _this.renderInner.bind(_this);\n\n if (process.env.NODE_ENV !== 'production') {\n _this.warnInnerRef = once(function (displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('The \"innerRef\" API has been removed in styled-components v4 in favor of React 16 ref forwarding, use \"ref\" instead like a typical component. \"innerRef\" was detected on component \"' + displayName + '\".')\n );\n });\n\n _this.warnAttrsFnObjectKeyDeprecated = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('Functions as object-form attrs({}) keys are now deprecated and will be removed in a future version of styled-components. Switch to the new attrs(props => ({})) syntax instead for easier and more powerful composition. The attrs key in question is \"' + key + '\" on component \"' + displayName + '\".', '\\n ' + new Error().stack)\n );\n });\n\n _this.warnNonStyledComponentAttrsObjectKey = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('It looks like you\\'ve used a non styled-component as the value for the \"' + key + '\" prop in an object-form attrs constructor of \"' + displayName + '\".\\n' + 'You should use the new function-form attrs constructor which avoids this issue: attrs(props => ({ yourStuff }))\\n' + \"To continue using the deprecated object syntax, you'll need to wrap your component prop in a function to make it available inside the styled component (you'll still get the deprecation warning though.)\\n\" + ('For example, { ' + key + ': () => InnerComponent } instead of { ' + key + ': InnerComponent }'))\n );\n });\n }\n return _this;\n }\n\n StyledComponent.prototype.render = function render() {\n return React.createElement(\n StyleSheetConsumer,\n null,\n this.renderOuter\n );\n };\n\n StyledComponent.prototype.renderOuter = function renderOuter() {\n var styleSheet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : StyleSheet.master;\n\n this.styleSheet = styleSheet;\n\n // No need to subscribe a static component to theme changes, it won't change anything\n if (this.props.forwardedComponent.componentStyle.isStatic) return this.renderInner();\n\n return React.createElement(\n ThemeConsumer,\n null,\n this.renderInner\n );\n };\n\n StyledComponent.prototype.renderInner = function renderInner(theme) {\n var _props$forwardedCompo = this.props.forwardedComponent,\n componentStyle = _props$forwardedCompo.componentStyle,\n defaultProps = _props$forwardedCompo.defaultProps,\n displayName = _props$forwardedCompo.displayName,\n foldedComponentIds = _props$forwardedCompo.foldedComponentIds,\n styledComponentId = _props$forwardedCompo.styledComponentId,\n target = _props$forwardedCompo.target,\n usesTheme = _props$forwardedCompo.usesTheme;\n\n\n var generatedClassName = void 0;\n var rawTheme = void 0;\n\n if (componentStyle.isStatic) {\n generatedClassName = this.generateAndInjectStyles(EMPTY_OBJECT, this.props);\n } else {\n rawTheme = determineTheme(this.props, theme, defaultProps);\n generatedClassName = this.generateAndInjectStyles(rawTheme || EMPTY_OBJECT, this.props);\n\n if (process.env.NODE_ENV !== 'production' && usesTheme && !rawTheme) {\n console.error('Component \\'' +\n // $FlowFixMe\n displayName + '\\' (.' + styledComponentId + ') references the \\'theme\\' prop in its styles but no theme was provided via prop or .');\n }\n }\n\n var elementToBeCreated = this.props.as || this.attrs.as || target;\n var isTargetTag = isTag(elementToBeCreated);\n\n var propsForElement = {};\n var computedProps = _extends({}, this.props, this.attrs);\n\n var key = void 0;\n // eslint-disable-next-line guard-for-in\n for (key in computedProps) {\n if (process.env.NODE_ENV !== 'production' && key === 'innerRef' && isTargetTag) {\n this.warnInnerRef(displayName);\n }\n\n if (key === 'forwardedComponent' || key === 'as') {\n continue;\n } else if (key === 'forwardedRef') propsForElement.ref = computedProps[key];else if (key === 'forwardedAs') propsForElement.as = computedProps[key];else if (!isTargetTag || validAttr(key)) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (this.props.style && this.attrs.style) {\n propsForElement.style = _extends({}, this.attrs.style, this.props.style);\n }\n\n propsForElement.className = Array.prototype.concat(foldedComponentIds, styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : null, this.props.className, this.attrs.className).filter(Boolean).join(' ');\n\n return createElement(elementToBeCreated, propsForElement);\n };\n\n StyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props, attrs) {\n var _this2 = this;\n\n var context = _extends({}, props, { theme: theme });\n\n if (!attrs.length) return context;\n\n this.attrs = {};\n\n attrs.forEach(function (attrDef) {\n var resolvedAttrDef = attrDef;\n var attrDefWasFn = false;\n var attr = void 0;\n var key = void 0;\n\n if (isFunction(resolvedAttrDef)) {\n // $FlowFixMe\n resolvedAttrDef = resolvedAttrDef(context);\n attrDefWasFn = true;\n }\n\n /* eslint-disable guard-for-in */\n // $FlowFixMe\n for (key in resolvedAttrDef) {\n attr = resolvedAttrDef[key];\n\n if (!attrDefWasFn) {\n if (isFunction(attr) && !isDerivedReactComponent(attr) && !isStyledComponent(attr)) {\n if (process.env.NODE_ENV !== 'production') {\n _this2.warnAttrsFnObjectKeyDeprecated(key, props.forwardedComponent.displayName);\n }\n\n attr = attr(context);\n\n if (process.env.NODE_ENV !== 'production' && React.isValidElement(attr)) {\n _this2.warnNonStyledComponentAttrsObjectKey(key, props.forwardedComponent.displayName);\n }\n }\n }\n\n _this2.attrs[key] = attr;\n context[key] = attr;\n }\n /* eslint-enable */\n });\n\n return context;\n };\n\n StyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var _props$forwardedCompo2 = props.forwardedComponent,\n attrs = _props$forwardedCompo2.attrs,\n componentStyle = _props$forwardedCompo2.componentStyle,\n warnTooManyClasses = _props$forwardedCompo2.warnTooManyClasses;\n\n // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n\n if (componentStyle.isStatic && !attrs.length) {\n return componentStyle.generateAndInjectStyles(EMPTY_OBJECT, this.styleSheet);\n }\n\n var className = componentStyle.generateAndInjectStyles(this.buildExecutionContext(theme, props, attrs), this.styleSheet);\n\n if (process.env.NODE_ENV !== 'production' && warnTooManyClasses) warnTooManyClasses(className);\n\n return className;\n };\n\n return StyledComponent;\n}(Component);\n\nfunction createStyledComponent(target, options, rules) {\n var isTargetStyledComp = isStyledComponent(target);\n var isClass = !isTag(target);\n\n var _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? generateDisplayName(target) : _options$displayName,\n _options$componentId = options.componentId,\n componentId = _options$componentId === undefined ? generateId(ComponentStyle, options.displayName, options.parentComponentId) : _options$componentId,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? StyledComponent : _options$ParentCompon,\n _options$attrs = options.attrs,\n attrs = _options$attrs === undefined ? EMPTY_ARRAY : _options$attrs;\n\n\n var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n var finalAttrs =\n // $FlowFixMe\n isTargetStyledComp && target.attrs ? Array.prototype.concat(target.attrs, attrs).filter(Boolean) : attrs;\n\n var componentStyle = new ComponentStyle(isTargetStyledComp ? // fold the underlying StyledComponent rules up (implicit extend)\n // $FlowFixMe\n target.componentStyle.rules.concat(rules) : rules, finalAttrs, styledComponentId);\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n var WrappedStyledComponent = void 0;\n var forwardRef = function forwardRef(props, ref) {\n return React.createElement(ParentComponent, _extends({}, props, { forwardedComponent: WrappedStyledComponent, forwardedRef: ref }));\n };\n forwardRef.displayName = displayName;\n WrappedStyledComponent = React.forwardRef(forwardRef);\n WrappedStyledComponent.displayName = displayName;\n\n // $FlowFixMe\n WrappedStyledComponent.attrs = finalAttrs;\n // $FlowFixMe\n WrappedStyledComponent.componentStyle = componentStyle;\n\n // $FlowFixMe\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp ? // $FlowFixMe\n Array.prototype.concat(target.foldedComponentIds, target.styledComponentId) : EMPTY_ARRAY;\n\n // $FlowFixMe\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n // $FlowFixMe\n WrappedStyledComponent.target = isTargetStyledComp ? target.target : target;\n\n // $FlowFixMe\n WrappedStyledComponent.withComponent = function withComponent(tag) {\n var previousComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['componentId']);\n\n\n var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag)));\n\n var newOptions = _extends({}, optionsToCopy, {\n attrs: finalAttrs,\n componentId: newComponentId,\n ParentComponent: ParentComponent\n });\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n // $FlowFixMe\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get: function get$$1() {\n return this._foldedDefaultProps;\n },\n set: function set$$1(obj) {\n // $FlowFixMe\n this._foldedDefaultProps = isTargetStyledComp ? merge(target.defaultProps, obj) : obj;\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n WrappedStyledComponent.usesTheme = componentStyle.rules.some(function (x) {\n return isFunction(x) && THEME_PROP_REGEX.test(x.toString());\n });\n\n // $FlowFixMe\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName);\n }\n\n // $FlowFixMe\n WrappedStyledComponent.toString = function () {\n return '.' + WrappedStyledComponent.styledComponentId;\n };\n\n if (isClass) {\n hoistNonReactStatics(WrappedStyledComponent, target, {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n styledComponentId: true,\n target: true,\n withComponent: true\n });\n }\n\n return WrappedStyledComponent;\n}\n\n// \n// Thanks to ReactDOMFactories for this handy list!\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr',\n\n// SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'marker', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// \n\nvar styled = function styled(tag) {\n return constructWithOptions(createStyledComponent, tag);\n};\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(function (domElement) {\n styled[domElement] = styled(domElement);\n});\n\n// \n\nvar GlobalStyle = function () {\n function GlobalStyle(rules, componentId) {\n classCallCheck(this, GlobalStyle);\n\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules, EMPTY_ARRAY);\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n GlobalStyle.prototype.createStyles = function createStyles(executionContext, styleSheet) {\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var css = stringifyRules(flatCSS, '');\n\n styleSheet.inject(this.componentId, css);\n };\n\n GlobalStyle.prototype.removeStyles = function removeStyles(styleSheet) {\n var componentId = this.componentId;\n\n if (styleSheet.hasId(componentId)) {\n styleSheet.remove(componentId);\n }\n };\n\n // TODO: overwrite in-place instead of remove+create?\n\n\n GlobalStyle.prototype.renderStyles = function renderStyles(executionContext, styleSheet) {\n this.removeStyles(styleSheet);\n this.createStyles(executionContext, styleSheet);\n };\n\n return GlobalStyle;\n}();\n\n// \n\n// place our cache into shared context so it'll persist between HMRs\nif (IS_BROWSER) {\n window.scCGSHMRCache = {};\n}\n\nfunction createGlobalStyle(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var id = 'sc-global-' + murmurhash(JSON.stringify(rules));\n var style = new GlobalStyle(rules, id);\n\n var GlobalStyleComponent = function (_React$Component) {\n inherits(GlobalStyleComponent, _React$Component);\n\n function GlobalStyleComponent(props) {\n classCallCheck(this, GlobalStyleComponent);\n\n var _this = possibleConstructorReturn(this, _React$Component.call(this, props));\n\n var _this$constructor = _this.constructor,\n globalStyle = _this$constructor.globalStyle,\n styledComponentId = _this$constructor.styledComponentId;\n\n\n if (IS_BROWSER) {\n window.scCGSHMRCache[styledComponentId] = (window.scCGSHMRCache[styledComponentId] || 0) + 1;\n }\n\n /**\n * This fixes HMR compatibility. Don't ask me why, but this combination of\n * caching the closure variables via statics and then persisting the statics in\n * state works across HMR where no other combination did. ¯\\_(ツ)_/¯\n */\n _this.state = {\n globalStyle: globalStyle,\n styledComponentId: styledComponentId\n };\n return _this;\n }\n\n GlobalStyleComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n if (window.scCGSHMRCache[this.state.styledComponentId]) {\n window.scCGSHMRCache[this.state.styledComponentId] -= 1;\n }\n /**\n * Depending on the order \"render\" is called this can cause the styles to be lost\n * until the next render pass of the remaining instance, which may\n * not be immediate.\n */\n if (window.scCGSHMRCache[this.state.styledComponentId] === 0) {\n this.state.globalStyle.removeStyles(this.styleSheet);\n }\n };\n\n GlobalStyleComponent.prototype.render = function render() {\n var _this2 = this;\n\n if (process.env.NODE_ENV !== 'production' && React.Children.count(this.props.children)) {\n // eslint-disable-next-line no-console\n console.warn('The global style component ' + this.state.styledComponentId + ' was given child JSX. createGlobalStyle does not render children.');\n }\n\n return React.createElement(\n StyleSheetConsumer,\n null,\n function (styleSheet) {\n _this2.styleSheet = styleSheet || StyleSheet.master;\n\n var globalStyle = _this2.state.globalStyle;\n\n\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(STATIC_EXECUTION_CONTEXT, _this2.styleSheet);\n\n return null;\n } else {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = _this2.constructor.defaultProps;\n\n\n var context = _extends({}, _this2.props);\n\n if (typeof theme !== 'undefined') {\n context.theme = determineTheme(_this2.props, theme, defaultProps);\n }\n\n globalStyle.renderStyles(context, _this2.styleSheet);\n\n return null;\n }\n );\n }\n }\n );\n };\n\n return GlobalStyleComponent;\n }(React.Component);\n\n GlobalStyleComponent.globalStyle = style;\n GlobalStyleComponent.styledComponentId = id;\n\n\n return GlobalStyleComponent;\n}\n\n// \n\nvar replaceWhitespace = function replaceWhitespace(str) {\n return str.replace(/\\s|\\\\n/g, '');\n};\n\nfunction keyframes(strings) {\n /* Warning if you've used keyframes on React Native */\n if (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn('`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.');\n }\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n\n var name = generateAlphabeticName(murmurhash(replaceWhitespace(JSON.stringify(rules))));\n\n return new Keyframes(name, stringifyRules(rules, name, '@keyframes'));\n}\n\n// \n\nvar withTheme = (function (Component$$1) {\n var WithTheme = React.forwardRef(function (props, ref) {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = Component$$1.defaultProps;\n\n var themeProp = determineTheme(props, theme, defaultProps);\n\n if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + getComponentName(Component$$1) + '\"');\n }\n\n return React.createElement(Component$$1, _extends({}, props, { theme: themeProp, ref: ref }));\n }\n );\n });\n\n hoistNonReactStatics(WithTheme, Component$$1);\n\n WithTheme.displayName = 'WithTheme(' + getComponentName(Component$$1) + ')';\n\n return WithTheme;\n});\n\n// \n\n/* eslint-disable */\nvar __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS = {\n StyleSheet: StyleSheet\n};\n\n// \n\n/* Warning if you've imported this file on React Native */\nif (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like you've imported 'styled-components' on React Native.\\n\" + \"Perhaps you're looking to import 'styled-components/native'?\\n\" + 'Read more about this at https://www.styled-components.com/docs/basics#react-native');\n}\n\n/* Warning if there are several instances of styled-components */\nif (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test' && typeof window !== 'undefined' && typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Node.js') === -1 && navigator.userAgent.indexOf('jsdom') === -1) {\n window['__styled-components-init__'] = window['__styled-components-init__'] || 0;\n\n if (window['__styled-components-init__'] === 1) {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. \" + 'This may cause dynamic styles not rendering properly, errors happening during rehydration process ' + 'and makes your application bigger without a good reason.\\n\\n' + 'See https://s-c.sh/2BAXzed for more info.');\n }\n\n window['__styled-components-init__'] += 1;\n}\n\n//\n\nexport default styled;\nexport { createGlobalStyle, css, isStyledComponent, keyframes, ServerStyleSheet, StyleSheetConsumer, StyleSheetContext, StyleSheetManager, ThemeConsumer, ThemeContext, ThemeProvider, withTheme, __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS };\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","export const colors = {\n PRIMARY: '#ABE2FB',\n SECONDARY: '#E6E6E6',\n DARKER_PRIMARY: '#87ceeb',\n OFF_WHITE: '#15181A',\n GREY: '#D3D3D3',\n RED: '#FF5E5E',\n DARK_GREY: '#535D63'\n};\n\nexport const TRACK_TOTAL_DEG = 270.0;\n\nexport const RADIAN = Math.PI / 180.0;\n\nexport const light = {\n primary: colors.PRIMARY,\n secondary: colors.SECONDARY,\n detail: colors.GREY,\n dark: false\n};\n\nexport const dark = {\n primary: colors.PRIMARY,\n secondary: colors.DARK_GREY,\n detail: colors.DARK_GREY,\n dark: true\n};\n\nexport default {\n dark,\n light,\n colors\n};\n","import { omit } from 'ramda';\n\nexport const getClassName = (componentName, theme) => {\n return 'daq-' + componentName + (theme && theme.dark ? '--dark' : '--light');\n};\n\nexport const getFilteredProps = props => omit(['className', 'id', 'setProps', 'style'], props);\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(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};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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};","import React from 'react';\nimport styled from 'styled-components';\n\nimport Label from './Label.styled';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-around;\n flex-direction: column;\n ${({ fullSize }) => {\n if (fullSize) return 'width: 100%;';\n return '';\n }}\n`;\n\nfunction LabelContainer(props) {\n let labelText = props.label;\n let customLabelStyle = {};\n if (typeof props.label === 'object') {\n labelText = props.label.label;\n customLabelStyle = props.label.style;\n }\n const labelElement = \n // if (labelText && labelText.length) {\n return (\n \n {props.labelPosition == 'top' && labelElement}\n {props.children}\n {props.labelPosition != 'top' && labelElement}\n \n );\n // }\n // return
{props.children}
;\n}\n\nLabelContainer.defaultProps = {\n labelPosition: 'bottom'\n};\n\nexport default LabelContainer;\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = 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 (0, _defineProperty2.default)(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}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","(function() { module.exports = window[\"ReactDOM\"]; }());","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n\tvar _react = __webpack_require__(1);\n\n\tvar _react2 = _interopRequireDefault(_react);\n\n\tvar _propTypes = __webpack_require__(2);\n\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\tvar KEYCODE_UP = 38;\n\tvar KEYCODE_DOWN = 40;\n\tvar IS_BROWSER = typeof document != 'undefined';\n\tvar RE_NUMBER = /^[+-]?((\\.\\d+)|(\\d+(\\.\\d+)?))$/;\n\tvar RE_INCOMPLETE_NUMBER = /^([+-]|\\.0*|[+-]\\.0*|[+-]?\\d+\\.)?$/;\n\n\tfunction addClass(element, className) {\n\t if (element.classList) {\n\t return element.classList.add(className);\n\t }\n\t if (!element.className.search(new RegExp(\"\\\\b\" + className + \"\\\\b\"))) {\n\t element.className = \" \" + className;\n\t }\n\t}\n\n\tfunction removeClass(element, className) {\n\t if (element.className) {\n\t if (element.classList) {\n\t return element.classList.remove(className);\n\t }\n\n\t element.className = element.className.replace(new RegExp(\"\\\\b\" + className + \"\\\\b\", \"g\"), \"\");\n\t }\n\t}\n\n\tfunction access(object, prop, defaultValue) {\n\t var result = object[prop];\n\t if (typeof result == \"function\") {\n\t for (var _len = arguments.length, args = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n\t args[_key - 3] = arguments[_key];\n\t }\n\n\t result = result.apply(undefined, args);\n\t }\n\t return result === undefined ? defaultValue : result;\n\t}\n\n\tvar NumericInput = function (_Component) {\n\t _inherits(NumericInput, _Component);\n\n\t function NumericInput() {\n\t var _ref;\n\n\t _classCallCheck(this, NumericInput);\n\n\t for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t args[_key2] = arguments[_key2];\n\t }\n\n\t var _this = _possibleConstructorReturn(this, (_ref = NumericInput.__proto__ || Object.getPrototypeOf(NumericInput)).call.apply(_ref, [this].concat(args)));\n\n\t _this._isStrict = !!_this.props.strict;\n\n\t _this.state = _extends({\n\t btnDownHover: false,\n\t btnDownActive: false,\n\t btnUpHover: false,\n\t btnUpActive: false,\n\t stringValue: \"\"\n\t }, _this._propsToState(_this.props));\n\t _this.stop = _this.stop.bind(_this);\n\t _this.onTouchEnd = _this.onTouchEnd.bind(_this);\n\t _this.refsInput = {};\n\t _this.refsWrapper = {};\n\t return _this;\n\t }\n\n\t _createClass(NumericInput, [{\n\t key: '_propsToState',\n\t value: function _propsToState(props) {\n\t var out = {};\n\n\t if (props.hasOwnProperty(\"value\")) {\n\t out.stringValue = String(props.value || props.value === 0 ? props.value : '').trim();\n\n\t out.value = out.stringValue !== '' ? this._parse(props.value) : null;\n\t } else if (!this._isMounted && props.hasOwnProperty(\"defaultValue\")) {\n\t out.stringValue = String(props.defaultValue || props.defaultValue === 0 ? props.defaultValue : '').trim();\n\n\t out.value = props.defaultValue !== '' ? this._parse(props.defaultValue) : null;\n\t }\n\n\t return out;\n\t }\n\t }, {\n\t key: 'componentWillReceiveProps',\n\t value: function componentWillReceiveProps(props) {\n\t var _this2 = this;\n\n\t this._isStrict = !!props.strict;\n\t var nextState = this._propsToState(props);\n\t if (Object.keys(nextState).length) {\n\t this._ignoreValueChange = true;\n\t this.setState(nextState, function () {\n\t _this2._ignoreValueChange = false;\n\t });\n\t }\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate() {\n\t this.saveSelection();\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate(prevProps, prevState) {\n\t if (!this._ignoreValueChange && prevState.value !== this.state.value && (!isNaN(this.state.value) || this.state.value === null)) {\n\t this._invokeEventCallback(\"onChange\", this.state.value, this.refsInput.value, this.refsInput);\n\t }\n\n\t if (this._inputFocus) {\n\t this.refsInput.focus();\n\n\t if (this.state.selectionStart || this.state.selectionStart === 0) {\n\t this.refsInput.selectionStart = this.state.selectionStart;\n\t }\n\n\t if (this.state.selectionEnd || this.state.selectionEnd === 0) {\n\t this.refsInput.selectionEnd = this.state.selectionEnd;\n\t }\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t this._isMounted = false;\n\t this.stop();\n\t }\n\t }, {\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var _this3 = this;\n\n\t this._isMounted = true;\n\t this.refsInput.getValueAsNumber = function () {\n\t return _this3.state.value || 0;\n\t };\n\n\t this.refsInput.setValue = function (value) {\n\t _this3.setState({\n\t value: _this3._parse(value),\n\t stringValue: value\n\t });\n\t };\n\n\t if (!this._inputFocus && IS_BROWSER && document.activeElement === this.refsInput) {\n\t this._inputFocus = true;\n\t this.refsInput.focus();\n\t this._invokeEventCallback(\"onFocus\", {\n\t target: this.refsInput,\n\t type: \"focus\"\n\t });\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'saveSelection',\n\t value: function saveSelection() {\n\t this.state.selectionStart = this.refsInput.selectionStart;\n\t this.state.selectionEnd = this.refsInput.selectionEnd;\n\t }\n\t }, {\n\t key: 'checkValidity',\n\t value: function checkValidity() {\n\t var valid = void 0,\n\t validationError = \"\";\n\n\t var supportsValidation = !!this.refsInput.checkValidity;\n\n\t var noValidate = !!(this.props.noValidate && this.props.noValidate != \"false\");\n\n\t this.refsInput.noValidate = noValidate;\n\n\t valid = noValidate || !supportsValidation;\n\n\t if (valid) {\n\t validationError = \"\";\n\t } else {\n\t if (this.refsInput.pattern === \"\") {\n\t this.refsInput.pattern = this.props.required ? \".+\" : \".*\";\n\t }\n\n\t if (supportsValidation) {\n\t this.refsInput.checkValidity();\n\t valid = this.refsInput.validity.valid;\n\n\t if (!valid) {\n\t validationError = this.refsInput.validationMessage;\n\t }\n\t }\n\n\t if (valid && supportsValidation && this.props.maxLength) {\n\t if (this.refsInput.value.length > this.props.maxLength) {\n\t validationError = \"This value is too long\";\n\t }\n\t }\n\t }\n\n\t validationError = validationError || (valid ? \"\" : this.refsInput.validationMessage || \"Unknown Error\");\n\n\t var validStateChanged = this._valid !== validationError;\n\t this._valid = validationError;\n\t if (validationError) {\n\t addClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onInvalid\", validationError, this.state.value, this.refsInput.value);\n\t }\n\t } else {\n\t removeClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onValid\", this.state.value, this.refsInput.value);\n\t }\n\t }\n\t }\n\t }, {\n\t key: '_toNumber',\n\t value: function _toNumber(x) {\n\t var n = parseFloat(x);\n\t if (isNaN(n) || !isFinite(n)) {\n\t n = 0;\n\t }\n\n\t if (this._isStrict) {\n\t var precision = access(this.props, \"precision\", null, this);\n\t var q = Math.pow(10, precision === null ? 10 : precision);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t n = Math.min(Math.max(n, _min), _max);\n\t n = Math.round(n * q) / q;\n\t }\n\n\t return n;\n\t }\n\t }, {\n\t key: '_parse',\n\t value: function _parse(x) {\n\t x = String(x);\n\t if (typeof this.props.parse == 'function') {\n\t return parseFloat(this.props.parse(x));\n\t }\n\t return parseFloat(x);\n\t }\n\t }, {\n\t key: '_format',\n\t value: function _format(n) {\n\t var _n = this._toNumber(n);\n\t var precision = access(this.props, \"precision\", null, this);\n\t if (precision !== null) {\n\t _n = n.toFixed(precision);\n\t }\n\n\t _n += \"\";\n\n\t if (this.props.format) {\n\t return this.props.format(_n);\n\t }\n\n\t return _n;\n\t }\n\t }, {\n\t key: '_step',\n\t value: function _step(n, callback) {\n\t var _isStrict = this._isStrict;\n\t this._isStrict = true;\n\n\t var _step = +access(this.props, \"step\", NumericInput.defaultProps.step, this, n > 0 ? NumericInput.DIRECTION_UP : NumericInput.DIRECTION_DOWN);\n\n\t var _n = this._toNumber((this.state.value || 0) + _step * n);\n\n\t if (this.props.snap) {\n\t _n = Math.round(_n / _step) * _step;\n\t }\n\n\t this._isStrict = _isStrict;\n\n\t if (_n !== this.state.value) {\n\t this.setState({ value: _n, stringValue: _n + \"\" }, callback);\n\t return true;\n\t }\n\n\t return false;\n\t }\n\t }, {\n\t key: '_onKeyDown',\n\t value: function _onKeyDown() {\n\t for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n\t args[_key3] = arguments[_key3];\n\t }\n\n\t args[0].persist();\n\t this._invokeEventCallback.apply(this, [\"onKeyDown\"].concat(args));\n\t var e = args[0];\n\t if (!e.isDefaultPrevented()) {\n\t if (e.keyCode === KEYCODE_UP) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? 0.1 : e.shiftKey ? 10 : 1);\n\t } else if (e.keyCode === KEYCODE_DOWN) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? -0.1 : e.shiftKey ? -10 : -1);\n\t } else {\n\t var _value = this.refsInput.value,\n\t length = _value.length;\n\t if (e.keyCode === 8) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd > 0 && _value.length && _value.charAt(this.refsInput.selectionEnd - 1) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd - 1;\n\t }\n\t } else if (e.keyCode === 46) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd < length + 1 && _value.length && _value.charAt(this.refsInput.selectionEnd) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd + 1;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'stop',\n\t value: function stop() {\n\t if (this._timer) {\n\t clearTimeout(this._timer);\n\t }\n\t }\n\t }, {\n\t key: 'increase',\n\t value: function increase() {\n\t var _this4 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(1, callback);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t if (isNaN(this.state.value) || +this.state.value < _max) {\n\t this._timer = setTimeout(function () {\n\t _this4.increase(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'decrease',\n\t value: function decrease() {\n\t var _this5 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(-1, callback);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t if (isNaN(this.state.value) || +this.state.value > _min) {\n\t this._timer = setTimeout(function () {\n\t _this5.decrease(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'onMouseDown',\n\t value: function onMouseDown(dir, callback) {\n\t if (dir == 'down') {\n\t this.decrease(false, callback);\n\t } else if (dir == 'up') {\n\t this.increase(false, callback);\n\t }\n\t }\n\t }, {\n\t key: 'onTouchStart',\n\t value: function onTouchStart(dir, e) {\n\t e.preventDefault();\n\t if (dir == 'down') {\n\t this.decrease();\n\t } else if (dir == 'up') {\n\t this.increase();\n\t }\n\t }\n\t }, {\n\t key: 'onTouchEnd',\n\t value: function onTouchEnd(e) {\n\t e.preventDefault();\n\t this.stop();\n\t }\n\t }, {\n\t key: '_invokeEventCallback',\n\t value: function _invokeEventCallback(callbackName) {\n\t if (typeof this.props[callbackName] == \"function\") {\n\t var _props$callbackName;\n\n\t for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n\t args[_key4 - 1] = arguments[_key4];\n\t }\n\n\t (_props$callbackName = this.props[callbackName]).call.apply(_props$callbackName, [null].concat(args));\n\t }\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _this6 = this;\n\n\t var props = this.props;\n\t var state = this.state;\n\t var css = {};\n\n\t var _props = this.props,\n\t step = _props.step,\n\t min = _props.min,\n\t max = _props.max,\n\t precision = _props.precision,\n\t parse = _props.parse,\n\t format = _props.format,\n\t mobile = _props.mobile,\n\t snap = _props.snap,\n\t componentClass = _props.componentClass,\n\t value = _props.value,\n\t type = _props.type,\n\t style = _props.style,\n\t defaultValue = _props.defaultValue,\n\t onInvalid = _props.onInvalid,\n\t onValid = _props.onValid,\n\t strict = _props.strict,\n\t noStyle = _props.noStyle,\n\t rest = _objectWithoutProperties(_props, ['step', 'min', 'max', 'precision', 'parse', 'format', 'mobile', 'snap', 'componentClass', 'value', 'type', 'style', 'defaultValue', 'onInvalid', 'onValid', 'strict', 'noStyle']);\n\n\t noStyle = noStyle || style === false;\n\n\t for (var x in NumericInput.style) {\n\t css[x] = _extends({}, NumericInput.style[x], style ? style[x] || {} : {});\n\t }\n\n\t var hasFormControl = props.className && /\\bform-control\\b/.test(props.className);\n\n\t if (mobile == 'auto') {\n\t mobile = IS_BROWSER && 'ontouchstart' in document;\n\t }\n\n\t if (typeof mobile == \"function\") {\n\t mobile = mobile.call(this);\n\t }\n\t mobile = !!mobile;\n\n\t var attrs = {\n\t wrap: {\n\t style: noStyle ? null : css.wrap,\n\t className: 'react-numeric-input',\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsWrapper = e;\n\t }\n\t },\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined\n\t },\n\t input: _extends({\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsInput = e;\n\t }\n\t },\n\t type: 'text',\n\t style: noStyle ? null : _extends({}, css.input, !hasFormControl ? css['input:not(.form-control)'] : {}, this._inputFocus ? css['input:focus'] : {})\n\t }, rest),\n\t btnUp: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnUp, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnUpActive ? css['btn:active'] : state.btnUpHover ? css['btn:hover'] : {})\n\t },\n\t btnDown: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnDown, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnDownActive ? css['btn:active'] : state.btnDownHover ? css['btn:hover'] : {})\n\t }\n\t };\n\n\t var stringValue = String(state.stringValue || (state.value || state.value === 0 ? state.value : \"\") || \"\");\n\n\t var loose = !this._isStrict && (this._inputFocus || !this._isMounted);\n\n\t if (loose && RE_INCOMPLETE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (loose && stringValue && !RE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (state.value || state.value === 0) {\n\t attrs.input.value = this._format(state.value);\n\t } else {\n\t attrs.input.value = \"\";\n\t }\n\n\t if (hasFormControl && !noStyle) {\n\t _extends(attrs.wrap.style, css['wrap.hasFormControl']);\n\t }\n\n\t if (mobile && !noStyle) {\n\t _extends(attrs.input.style, css['input.mobile']);\n\t _extends(attrs.btnUp.style, css['btnUp.mobile']);\n\t _extends(attrs.btnDown.style, css['btnDown.mobile']);\n\t }\n\n\t if (!props.disabled && !props.readOnly) {\n\t _extends(attrs.wrap, {\n\t onMouseUp: this.stop,\n\t onMouseLeave: this.stop\n\t });\n\n\t _extends(attrs.btnUp, {\n\t onTouchStart: this.onTouchStart.bind(this, 'up'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnUpHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnUpHover: false,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n\t args[_key5] = arguments[_key5];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('up');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.btnDown, {\n\t onTouchStart: this.onTouchStart.bind(this, 'down'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnDownHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnDownHover: false,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n\t args[_key6] = arguments[_key6];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('down');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.input, {\n\t onChange: function onChange(e) {\n\t var original = e.target.value;\n\t var val = _this6._parse(original);\n\t if (isNaN(val)) {\n\t val = null;\n\t }\n\t _this6.setState({\n\t value: _this6._isStrict ? _this6._toNumber(val) : val,\n\t stringValue: original\n\t });\n\t },\n\t onKeyDown: this._onKeyDown.bind(this),\n\t onInput: function onInput() {\n\t for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n\t args[_key7] = arguments[_key7];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onInput\"].concat(args));\n\t },\n\t onSelect: function onSelect() {\n\t for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n\t args[_key8] = arguments[_key8];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onSelect\"].concat(args));\n\t },\n\t onFocus: function onFocus() {\n\t for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n\t args[_key9] = arguments[_key9];\n\t }\n\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val,\n\t stringValue: val || val === 0 ? val + \"\" : \"\"\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t });\n\t },\n\t onBlur: function onBlur() {\n\t for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n\t args[_key10] = arguments[_key10];\n\t }\n\n\t var _isStrict = _this6._isStrict;\n\t _this6._isStrict = true;\n\t args[0].persist();\n\t _this6._inputFocus = false;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onBlur\"].concat(args));\n\t _this6._isStrict = _isStrict;\n\t });\n\t }\n\t });\n\t } else {\n\t if (!noStyle && props.disabled) {\n\t _extends(attrs.input.style, css['input:disabled']);\n\t }\n\t }\n\n\t var InputTag = componentClass || 'input';\n\n\t if (mobile) {\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus }),\n\t _react2.default.createElement('i', { style: noStyle ? null : css.plus })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus })\n\t )\n\t );\n\t }\n\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowUp })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowDown })\n\t )\n\t );\n\t }\n\t }]);\n\n\t return NumericInput;\n\t}(_react.Component);\n\n\tNumericInput.propTypes = {\n\t step: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t min: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t max: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t precision: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t maxLength: _propTypes2.default.number,\n\t parse: _propTypes2.default.func,\n\t format: _propTypes2.default.func,\n\t className: _propTypes2.default.string,\n\t disabled: _propTypes2.default.bool,\n\t readOnly: _propTypes2.default.bool,\n\t required: _propTypes2.default.bool,\n\t snap: _propTypes2.default.bool,\n\t noValidate: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n\t style: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),\n\t noStyle: _propTypes2.default.bool,\n\t type: _propTypes2.default.string,\n\t pattern: _propTypes2.default.string,\n\t onFocus: _propTypes2.default.func,\n\t onBlur: _propTypes2.default.func,\n\t onKeyDown: _propTypes2.default.func,\n\t onChange: _propTypes2.default.func,\n\t onInvalid: _propTypes2.default.func,\n\t onValid: _propTypes2.default.func,\n\t onInput: _propTypes2.default.func,\n\t onSelect: _propTypes2.default.func,\n\t size: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t strict: _propTypes2.default.bool,\n\t componentClass: _propTypes2.default.string,\n\t mobile: function mobile(props, propName) {\n\t var prop = props[propName];\n\t if (prop !== true && prop !== false && prop !== 'auto' && typeof prop != 'function') {\n\t return new Error('The \"mobile\" prop must be true, false, \"auto\" or a function');\n\t }\n\t }\n\t};\n\tNumericInput.defaultProps = {\n\t step: 1,\n\t min: Number.MIN_SAFE_INTEGER || -9007199254740991,\n\t max: Number.MAX_SAFE_INTEGER || 9007199254740991,\n\t precision: null,\n\t parse: null,\n\t format: null,\n\t mobile: 'auto',\n\t strict: false,\n\t componentClass: \"input\",\n\t style: {}\n\t};\n\tNumericInput.style = {\n\t wrap: {\n\t position: 'relative',\n\t display: 'inline-block'\n\t },\n\n\t 'wrap.hasFormControl': {\n\t display: 'block'\n\t },\n\n\t arrowUp: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0 0.6ex 0.6ex 0.6ex',\n\t borderColor: 'transparent transparent rgba(0, 0, 0, 0.7)',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t arrowDown: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0.6ex 0.6ex 0 0.6ex',\n\t borderColor: 'rgba(0, 0, 0, 0.7) transparent transparent',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t plus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 2,\n\t height: 10,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-5px 0 0 -1px'\n\t },\n\n\t minus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 10,\n\t height: 2,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-1px 0 0 -5px'\n\t },\n\n\t btn: {\n\t position: 'absolute',\n\t right: 2,\n\t width: '2.26ex',\n\t borderColor: 'rgba(0,0,0,.1)',\n\t borderStyle: 'solid',\n\t textAlign: 'center',\n\t cursor: 'default',\n\t transition: 'all 0.1s',\n\t background: 'rgba(0,0,0,.1)',\n\t boxShadow: '-1px -1px 3px rgba(0,0,0,.1) inset,' + '1px 1px 3px rgba(255,255,255,.7) inset'\n\t },\n\n\t btnUp: {\n\t top: 2,\n\t bottom: '50%',\n\t borderRadius: '2px 2px 0 0',\n\t borderWidth: '1px 1px 0 1px'\n\t },\n\n\t 'btnUp.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t btnDown: {\n\t top: '50%',\n\t bottom: 2,\n\t borderRadius: '0 0 2px 2px',\n\t borderWidth: '0 1px 1px 1px'\n\t },\n\n\t 'btnDown.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t left: 2,\n\t top: 2,\n\t right: 'auto',\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t 'btn:hover': {\n\t background: 'rgba(0,0,0,.2)'\n\t },\n\n\t 'btn:active': {\n\t background: 'rgba(0,0,0,.3)',\n\t boxShadow: '0 1px 3px rgba(0,0,0,.2) inset,' + '-1px -1px 4px rgba(255,255,255,.5) inset'\n\t },\n\n\t 'btn:disabled': {\n\t opacity: 0.5,\n\t boxShadow: 'none',\n\t cursor: 'not-allowed'\n\t },\n\n\t input: {\n\t paddingRight: '3ex',\n\t boxSizing: 'border-box',\n\t fontSize: 'inherit'\n\t },\n\n\t 'input:not(.form-control)': {\n\t border: '1px solid #ccc',\n\t borderRadius: 2,\n\t paddingLeft: 4,\n\t display: 'block',\n\t WebkitAppearance: 'none',\n\t lineHeight: 'normal'\n\t },\n\n\t 'input.mobile': {\n\t paddingLeft: ' 3.4ex',\n\t paddingRight: '3.4ex',\n\t textAlign: 'center'\n\t },\n\n\t 'input:focus': {},\n\n\t 'input:disabled': {\n\t color: 'rgba(0, 0, 0, 0.3)',\n\t textShadow: '0 1px 0 rgba(255, 255, 255, 0.8)'\n\t }\n\t};\n\tNumericInput.SPEED = 50;\n\tNumericInput.DELAY = 500;\n\tNumericInput.DIRECTION_UP = \"up\";\n\tNumericInput.DIRECTION_DOWN = \"down\";\n\n\n\tmodule.exports = NumericInput;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"react\");\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"prop-types\");\n\n/***/ })\n/******/ ]);","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","/**\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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (typeof obj === 'undefined') {\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from './_curry1';\nimport _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _isArrayLike from './_isArrayLike';\nimport _xwrap from './_xwrap';\nimport bind from '../bind';\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from './_has';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n};\n\nexport default _isArguments;","import _curry1 from './internal/_curry1';\nimport _has from './internal/_has';\nimport _isArguments from './internal/_isArguments';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar _keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n} : function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n};\nvar keys = /*#__PURE__*/_curry1(_keys);\nexport default keys;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","import _objectAssign from './_objectAssign';\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _curry1 from './internal/_curry1';\nimport _of from './internal/_of';\n\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\nvar of = /*#__PURE__*/_curry1(_of);\nexport default of;","import _curry2 from './internal/_curry2';\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\nvar omit = /*#__PURE__*/_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nexport default omit;","import _cloneRegExp from './internal/_cloneRegExp';\nimport _curry2 from './internal/_curry2';\nimport _isRegExp from './internal/_isRegExp';\nimport toString from './toString';\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\nvar test = /*#__PURE__*/_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n return _cloneRegExp(pattern).test(str);\n});\nexport default test;","import _curry1 from './internal/_curry1';\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\nvar _trim = !hasProtoTrim || /*#__PURE__*/ws.trim() || ! /*#__PURE__*/zeroWidth.trim() ? function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n} : function trim(str) {\n return str.trim();\n};\nvar trim = /*#__PURE__*/_curry1(_trim);\nexport default trim;","export { default as F } from './F';\nexport { default as T } from './T';\nexport { default as __ } from './__';\nexport { default as add } from './add';\nexport { default as addIndex } from './addIndex';\nexport { default as adjust } from './adjust';\nexport { default as all } from './all';\nexport { default as allPass } from './allPass';\nexport { default as always } from './always';\nexport { default as and } from './and';\nexport { default as any } from './any';\nexport { default as anyPass } from './anyPass';\nexport { default as ap } from './ap';\nexport { default as aperture } from './aperture';\nexport { default as append } from './append';\nexport { default as apply } from './apply';\nexport { default as applySpec } from './applySpec';\nexport { default as applyTo } from './applyTo';\nexport { default as ascend } from './ascend';\nexport { default as assoc } from './assoc';\nexport { default as assocPath } from './assocPath';\nexport { default as binary } from './binary';\nexport { default as bind } from './bind';\nexport { default as both } from './both';\nexport { default as call } from './call';\nexport { default as chain } from './chain';\nexport { default as clamp } from './clamp';\nexport { default as clone } from './clone';\nexport { default as comparator } from './comparator';\nexport { default as complement } from './complement';\nexport { default as compose } from './compose';\nexport { default as composeK } from './composeK';\nexport { default as composeP } from './composeP';\nexport { default as concat } from './concat';\nexport { default as cond } from './cond';\nexport { default as construct } from './construct';\nexport { default as constructN } from './constructN';\nexport { default as contains } from './contains';\nexport { default as converge } from './converge';\nexport { default as countBy } from './countBy';\nexport { default as curry } from './curry';\nexport { default as curryN } from './curryN';\nexport { default as dec } from './dec';\nexport { default as defaultTo } from './defaultTo';\nexport { default as descend } from './descend';\nexport { default as difference } from './difference';\nexport { default as differenceWith } from './differenceWith';\nexport { default as dissoc } from './dissoc';\nexport { default as dissocPath } from './dissocPath';\nexport { default as divide } from './divide';\nexport { default as drop } from './drop';\nexport { default as dropLast } from './dropLast';\nexport { default as dropLastWhile } from './dropLastWhile';\nexport { default as dropRepeats } from './dropRepeats';\nexport { default as dropRepeatsWith } from './dropRepeatsWith';\nexport { default as dropWhile } from './dropWhile';\nexport { default as either } from './either';\nexport { default as empty } from './empty';\nexport { default as endsWith } from './endsWith';\nexport { default as eqBy } from './eqBy';\nexport { default as eqProps } from './eqProps';\nexport { default as equals } from './equals';\nexport { default as evolve } from './evolve';\nexport { default as filter } from './filter';\nexport { default as find } from './find';\nexport { default as findIndex } from './findIndex';\nexport { default as findLast } from './findLast';\nexport { default as findLastIndex } from './findLastIndex';\nexport { default as flatten } from './flatten';\nexport { default as flip } from './flip';\nexport { default as forEach } from './forEach';\nexport { default as forEachObjIndexed } from './forEachObjIndexed';\nexport { default as fromPairs } from './fromPairs';\nexport { default as groupBy } from './groupBy';\nexport { default as groupWith } from './groupWith';\nexport { default as gt } from './gt';\nexport { default as gte } from './gte';\nexport { default as has } from './has';\nexport { default as hasIn } from './hasIn';\nexport { default as head } from './head';\nexport { default as identical } from './identical';\nexport { default as identity } from './identity';\nexport { default as ifElse } from './ifElse';\nexport { default as inc } from './inc';\nexport { default as indexBy } from './indexBy';\nexport { default as indexOf } from './indexOf';\nexport { default as init } from './init';\nexport { default as innerJoin } from './innerJoin';\nexport { default as insert } from './insert';\nexport { default as insertAll } from './insertAll';\nexport { default as intersection } from './intersection';\nexport { default as intersperse } from './intersperse';\nexport { default as into } from './into';\nexport { default as invert } from './invert';\nexport { default as invertObj } from './invertObj';\nexport { default as invoker } from './invoker';\nexport { default as is } from './is';\nexport { default as isEmpty } from './isEmpty';\nexport { default as isNil } from './isNil';\nexport { default as join } from './join';\nexport { default as juxt } from './juxt';\nexport { default as keys } from './keys';\nexport { default as keysIn } from './keysIn';\nexport { default as last } from './last';\nexport { default as lastIndexOf } from './lastIndexOf';\nexport { default as length } from './length';\nexport { default as lens } from './lens';\nexport { default as lensIndex } from './lensIndex';\nexport { default as lensPath } from './lensPath';\nexport { default as lensProp } from './lensProp';\nexport { default as lift } from './lift';\nexport { default as liftN } from './liftN';\nexport { default as lt } from './lt';\nexport { default as lte } from './lte';\nexport { default as map } from './map';\nexport { default as mapAccum } from './mapAccum';\nexport { default as mapAccumRight } from './mapAccumRight';\nexport { default as mapObjIndexed } from './mapObjIndexed';\nexport { default as match } from './match';\nexport { default as mathMod } from './mathMod';\nexport { default as max } from './max';\nexport { default as maxBy } from './maxBy';\nexport { default as mean } from './mean';\nexport { default as median } from './median';\nexport { default as memoize } from './memoize';\nexport { default as memoizeWith } from './memoizeWith';\nexport { default as merge } from './merge';\nexport { default as mergeAll } from './mergeAll';\nexport { default as mergeDeepLeft } from './mergeDeepLeft';\nexport { default as mergeDeepRight } from './mergeDeepRight';\nexport { default as mergeDeepWith } from './mergeDeepWith';\nexport { default as mergeDeepWithKey } from './mergeDeepWithKey';\nexport { default as mergeWith } from './mergeWith';\nexport { default as mergeWithKey } from './mergeWithKey';\nexport { default as min } from './min';\nexport { default as minBy } from './minBy';\nexport { default as modulo } from './modulo';\nexport { default as multiply } from './multiply';\nexport { default as nAry } from './nAry';\nexport { default as negate } from './negate';\nexport { default as none } from './none';\nexport { default as not } from './not';\nexport { default as nth } from './nth';\nexport { default as nthArg } from './nthArg';\nexport { default as o } from './o';\nexport { default as objOf } from './objOf';\nexport { default as of } from './of';\nexport { default as omit } from './omit';\nexport { default as once } from './once';\nexport { default as or } from './or';\nexport { default as over } from './over';\nexport { default as pair } from './pair';\nexport { default as partial } from './partial';\nexport { default as partialRight } from './partialRight';\nexport { default as partition } from './partition';\nexport { default as path } from './path';\nexport { default as pathEq } from './pathEq';\nexport { default as pathOr } from './pathOr';\nexport { default as pathSatisfies } from './pathSatisfies';\nexport { default as pick } from './pick';\nexport { default as pickAll } from './pickAll';\nexport { default as pickBy } from './pickBy';\nexport { default as pipe } from './pipe';\nexport { default as pipeK } from './pipeK';\nexport { default as pipeP } from './pipeP';\nexport { default as pluck } from './pluck';\nexport { default as prepend } from './prepend';\nexport { default as product } from './product';\nexport { default as project } from './project';\nexport { default as prop } from './prop';\nexport { default as propEq } from './propEq';\nexport { default as propIs } from './propIs';\nexport { default as propOr } from './propOr';\nexport { default as propSatisfies } from './propSatisfies';\nexport { default as props } from './props';\nexport { default as range } from './range';\nexport { default as reduce } from './reduce';\nexport { default as reduceBy } from './reduceBy';\nexport { default as reduceRight } from './reduceRight';\nexport { default as reduceWhile } from './reduceWhile';\nexport { default as reduced } from './reduced';\nexport { default as reject } from './reject';\nexport { default as remove } from './remove';\nexport { default as repeat } from './repeat';\nexport { default as replace } from './replace';\nexport { default as reverse } from './reverse';\nexport { default as scan } from './scan';\nexport { default as sequence } from './sequence';\nexport { default as set } from './set';\nexport { default as slice } from './slice';\nexport { default as sort } from './sort';\nexport { default as sortBy } from './sortBy';\nexport { default as sortWith } from './sortWith';\nexport { default as split } from './split';\nexport { default as splitAt } from './splitAt';\nexport { default as splitEvery } from './splitEvery';\nexport { default as splitWhen } from './splitWhen';\nexport { default as startsWith } from './startsWith';\nexport { default as subtract } from './subtract';\nexport { default as sum } from './sum';\nexport { default as symmetricDifference } from './symmetricDifference';\nexport { default as symmetricDifferenceWith } from './symmetricDifferenceWith';\nexport { default as tail } from './tail';\nexport { default as take } from './take';\nexport { default as takeLast } from './takeLast';\nexport { default as takeLastWhile } from './takeLastWhile';\nexport { default as takeWhile } from './takeWhile';\nexport { default as tap } from './tap';\nexport { default as test } from './test';\nexport { default as times } from './times';\nexport { default as toLower } from './toLower';\nexport { default as toPairs } from './toPairs';\nexport { default as toPairsIn } from './toPairsIn';\nexport { default as toString } from './toString';\nexport { default as toUpper } from './toUpper';\nexport { default as transduce } from './transduce';\nexport { default as transpose } from './transpose';\nexport { default as traverse } from './traverse';\nexport { default as trim } from './trim';\nexport { default as tryCatch } from './tryCatch';\nexport { default as type } from './type';\nexport { default as unapply } from './unapply';\nexport { default as unary } from './unary';\nexport { default as uncurryN } from './uncurryN';\nexport { default as unfold } from './unfold';\nexport { default as union } from './union';\nexport { default as unionWith } from './unionWith';\nexport { default as uniq } from './uniq';\nexport { default as uniqBy } from './uniqBy';\nexport { default as uniqWith } from './uniqWith';\nexport { default as unless } from './unless';\nexport { default as unnest } from './unnest';\nexport { default as until } from './until';\nexport { default as update } from './update';\nexport { default as useWith } from './useWith';\nexport { default as values } from './values';\nexport { default as valuesIn } from './valuesIn';\nexport { default as view } from './view';\nexport { default as when } from './when';\nexport { default as where } from './where';\nexport { default as whereEq } from './whereEq';\nexport { default as without } from './without';\nexport { default as xprod } from './xprod';\nexport { default as zip } from './zip';\nexport { default as zipObj } from './zipObj';\nexport { default as zipWith } from './zipWith';","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","module.exports = {};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","module.exports = true;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","exports.f = {}.propertyIsEnumerable;\n","import styled, { css } from 'styled-components';\n\nexport default styled.label`\n display: block;\n font-size: 14px;\n ${({ position }) =>\n position === 'top'\n ? css`\n margin-bottom: 8px;\n `\n : css`\n margin-top: 8px;\n `}\n ${props =>\n css`\n ${props.css}\n `}\n`;\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _getPrototypeOf = require(\"../core-js/object/get-prototype-of\");\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _getOwnPropertyDescriptor = require(\"../core-js/object/get-own-property-descriptor\");\n\nvar _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = (0, _getOwnPropertyDescriptor2.default)(object, property);\n\n if (desc === undefined) {\n var parent = (0, _getPrototypeOf2.default)(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};","/**\n * CSS conic-gradient() polyfill\n * By Lea Verou — http://lea.verou.me\n * MIT license\n */\n\n(function(){\n\nvar π = Math.PI;\nvar τ = 2 * π;\nvar ε = .00001;\nvar deg = π/180;\n\nvar dummy = document.createElement(\"div\");\ndocument.head.appendChild(dummy);\n\nvar _ = self.ConicGradient = function(o) {\n\tvar me = this;\n\t_.all.push(this);\n\n\to = o || {};\n\n\tthis.canvas = document.createElement(\"canvas\");\n\tthis.context = this.canvas.getContext(\"2d\");\n\n\tthis.repeating = !!o.repeating;\n\n\tthis.size = o.size || Math.max(innerWidth, innerHeight);\n\n\tthis.canvas.width = this.canvas.height = this.size;\n\n\tvar stops = o.stops;\n\n\tthis.stops = (stops || \"\").split(/\\s*,(?![^(]*\\))\\s*/); // commas that are not followed by a ) without a ( first\n\n\tthis.from = 0;\n\n\tfor (var i=0; i 0) {\n\t\tvar first = this.stops[0].clone();\n\t\tfirst.pos = 0;\n\t\tthis.stops.unshift(first);\n\t}\n\n\t// Add dummy last stop or set first stop’s position to 100% if it doesn’t have one\n\tif (this.stops[this.stops.length - 1].pos === undefined) {\n\t\tthis.stops[this.stops.length - 1].pos = 1;\n\t}\n\telse if (!this.repeating && this.stops[this.stops.length - 1].pos < 1) {\n\t\tvar last = this.stops[this.stops.length - 1].clone();\n\t\tlast.pos = 1;\n\t\tthis.stops.push(last);\n\t}\n\n\tthis.stops.forEach(function(stop, i){\n\t\tif (stop.pos === undefined) {\n\t\t\t// Evenly space color stops with no position\n\t\t\tfor (var j=i+1; this[j]; j++) {\n\t\t\t\tif (this[j].pos !== undefined) {\n\t\t\t\t\tstop.pos = this[i-1].pos + (this[j].pos - this[i-1].pos)/(j-i+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (i > 0) {\n\t\t\t// Normalize color stops whose position is smaller than the position of the stop before them\n\t\t\tstop.pos = Math.max(stop.pos, this[i-1].pos);\n\t\t}\n\t}, this.stops);\n\n\tif (this.repeating) {\n\t\t// Repeat color stops until >= 1\n\t\tvar stops = this.stops.slice();\n\t\tvar lastStop = stops[stops.length-1];\n\t\tvar difference = lastStop.pos - stops[0].pos;\n\n\t\tfor (var i=0; this.stops[this.stops.length-1].pos < 1 && i<10000; i++) {\n\t\t\tfor (var j=0; j' +\n\t\t\t'' +\n\t\t\t'';\n\t},\n\n\tget png() {\n\t\treturn this.canvas.toDataURL();\n\t},\n\n\tget r() {\n\t\treturn Math.sqrt(2) * this.size / 2;\n\t},\n\n\t// Paint the conical gradient on the canvas\n\t// Algorithm inspired from http://jsdo.it/akm2/yr9B\n\tpaint: function() {\n\t\tvar c = this.context;\n\n\t\tvar radius = this.r;\n\t\tvar x = this.size / 2;\n\n\t\tvar stopIndex = 0; // The index of the current color\n\t\tvar stop = this.stops[stopIndex], prevStop;\n\n\t\tvar diff, t;\n\n\t\t// Transform coordinate system so that angles start from the top left, like in CSS\n\t\tc.translate(this.size/2, this.size/2);\n\t\tc.rotate(-90*deg);\n\t\tc.rotate(this.from*deg);\n\t\tc.translate(-this.size/2, -this.size/2);\n\n\t\tfor (var i = 0; i < 360;) {\n\t\t\tif (i/360 + ε >= stop.pos) {\n\t\t\t\t// Switch color stop\n\t\t\t\tdo {\n\t\t\t\t\tprevStop = stop;\n\n\t\t\t\t\tstopIndex++;\n\t\t\t\t\tstop = this.stops[stopIndex];\n\t\t\t\t} while(stop && stop != prevStop && stop.pos === prevStop.pos);\n\n\t\t\t\tif (!stop) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tvar sameColor = prevStop.color + \"\" === stop.color + \"\" && prevStop != stop;\n\n\t\t\t\tdiff = prevStop.color.map(function(c, i){\n\t\t\t\t\treturn stop.color[i] - c;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tt = (i/360 - prevStop.pos) / (stop.pos - prevStop.pos);\n\n\t\t\tvar interpolated = sameColor? stop.color : diff.map(function(d,i){\n\t\t\t\tvar ret = d * t + prevStop.color[i];\n\n\t\t\t\treturn i < 3? ret & 255 : ret;\n\t\t\t});\n\n\t\t\t// Draw a series of arcs, 1deg each\n\t\t\tc.fillStyle = 'rgba(' + interpolated.join(\",\") + ')';\n\t\t\tc.beginPath();\n\t\t\tc.moveTo(x, x);\n\n\t\t\tif (sameColor) {\n\t\t\t\tvar θ = 360 * (stop.pos - prevStop.pos);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar θ = .5;\n\t\t\t}\n\n\t\t\tvar beginArg = i*deg;\n\t\t\tbeginArg = Math.min(360*deg, beginArg);\n\n\t\t\t// .02: To prevent empty blank line and corresponding moire\n\t\t\t// only non-alpha colors are cared now\n\t\t\tvar endArg = beginArg + θ*deg;\n\t\t\tendArg = Math.min(360*deg, endArg + .02);\n\n\t\t\tc.arc(x, x, radius, beginArg, endArg);\n\n\t\t\tc.closePath();\n\t\t\tc.fill();\n\n\t\t\ti += θ;\n\t\t}\n\t}\n};\n\n_.ColorStop = function(gradient, stop) {\n\tthis.gradient = gradient;\n\n\tif (stop) {\n\t\tvar parts = stop.match(/^(.+?)(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?\\s*$/);\n\n\t\tthis.color = _.ColorStop.colorToRGBA(parts[1]);\n\n\t\tif (parts[2]) {\n\t\t\tvar unit = parts[3];\n\n\t\t\tif (unit == \"%\" || parts[2] === \"0\" && !unit) {\n\t\t\t\tthis.pos = parts[2]/100;\n\t\t\t}\n\t\t\telse if (unit == \"turn\") {\n\t\t\t\tthis.pos = +parts[2];\n\t\t\t}\n\t\t\telse if (unit == \"deg\") {\n\t\t\t\tthis.pos = parts[2] / 360;\n\t\t\t}\n\t\t\telse if (unit == \"grad\") {\n\t\t\t\tthis.pos = parts[2] / 400;\n\t\t\t}\n\t\t\telse if (unit == \"rad\") {\n\t\t\t\tthis.pos = parts[2] / τ;\n\t\t\t}\n\t\t}\n\n\t\tif (parts[4]) {\n\t\t\tthis.next = new _.ColorStop(gradient, parts[1] + \" \" + parts[4] + parts[5]);\n\t\t}\n\t}\n}\n\n_.ColorStop.prototype = {\n\tclone: function() {\n\t\tvar ret = new _.ColorStop(this.gradient);\n\t\tret.color = this.color;\n\t\tret.pos = this.pos;\n\n\t\treturn ret;\n\t},\n\n\ttoString: function() {\n\t\treturn \"rgba(\" + this.color.join(\", \") + \") \" + this.pos * 100 + \"%\";\n\t}\n};\n\n_.ColorStop.colorToRGBA = function(color) {\n\tif (!Array.isArray(color) && color.indexOf(\"from\") == -1) {\n\t\tdummy.style.color = color;\n\n\t\tvar rgba = getComputedStyle(dummy).color.match(/rgba?\\(([\\d.]+), ([\\d.]+), ([\\d.]+)(?:, ([\\d.]+))?\\)/);\n\n\t\tif (rgba) {\n\t\t\trgba.shift();\n\t\t\trgba = rgba.map(function(a) { return +a });\n\t\t\trgba[3] = isNaN(rgba[3])? 1 : rgba[3];\n\t\t}\n\n\t\treturn rgba || [0,0,0,0];\n\t}\n\n\treturn color;\n};\n\n})();\n\nif (self.StyleFix) {\n\t// Test if conic gradients are supported first:\n\t(function(){\n\t\tvar dummy = document.createElement(\"p\");\n\t\tdummy.style.backgroundImage = \"conic-gradient(white, black)\";\n\t\tdummy.style.backgroundImage = PrefixFree.prefix + \"conic-gradient(white, black)\";\n\n\t\tif (!dummy.style.backgroundImage) {\n\t\t\t// Not supported, use polyfill\n\t\t\tStyleFix.register(function(css, raw) {\n\t\t\t\tif (css.indexOf(\"conic-gradient\") > -1) {\n\t\t\t\t\tcss = css.replace(/(?:repeating-)?conic-gradient\\(\\s*((?:\\([^()]+\\)|[^;()}])+?)\\)/g, function(gradient, stops) {\n\t\t\t\t\t\treturn new ConicGradient({\n\t\t\t\t\t\t\tstops: stops,\n\t\t\t\t\t\t\trepeating: gradient.indexOf(\"repeating-\") > -1\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn css;\n\t\t\t});\n\t\t}\n\t})();\n}\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","!function(e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(null):\"function\"==typeof define&&define.amd?define(e(null)):window.stylis=e(null)}(function e(a){\"use strict\";var r=/^\\0+/g,c=/[\\0\\r\\f]/g,s=/: */g,t=/zoo|gra/,i=/([,: ])(transform)/g,f=/,+\\s*(?![^(]*[)])/g,n=/ +\\s*(?![^(]*[)])/g,l=/ *[\\0] */g,o=/,\\r+?/g,h=/([\\t\\r\\n ])*\\f?&/g,u=/:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g,d=/\\W+/g,b=/@(k\\w+)\\s*(\\S*)\\s*/,p=/::(place)/g,k=/:(read-only)/g,g=/\\s+(?=[{\\];=:>])/g,A=/([[}=:>])\\s+/g,C=/(\\{[^{]+?);(?=\\})/g,w=/\\s{2,}/g,v=/([^\\(])(:+) */g,m=/[svh]\\w+-[tblr]{2}/,x=/\\(\\s*(.*)\\s*\\)/g,$=/([\\s\\S]*?);/g,y=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\\w-]+)[^]*/,j=/stretch|:\\s*\\w+\\-(?:conte|avail)/,z=/([^-])(image-set\\()/,N=\"-webkit-\",S=\"-moz-\",F=\"-ms-\",W=59,q=125,B=123,D=40,E=41,G=91,H=93,I=10,J=13,K=9,L=64,M=32,P=38,Q=45,R=95,T=42,U=44,V=58,X=39,Y=34,Z=47,_=62,ee=43,ae=126,re=0,ce=12,se=11,te=107,ie=109,fe=115,ne=112,le=111,oe=105,he=99,ue=100,de=112,be=1,pe=1,ke=0,ge=1,Ae=1,Ce=1,we=0,ve=0,me=0,xe=[],$e=[],ye=0,Oe=null,je=-2,ze=-1,Ne=0,Se=1,Fe=2,We=3,qe=0,Be=1,De=\"\",Ee=\"\",Ge=\"\";function He(e,a,s,t,i){for(var f,n,o=0,h=0,u=0,d=0,g=0,A=0,C=0,w=0,m=0,$=0,y=0,O=0,j=0,z=0,R=0,we=0,$e=0,Oe=0,je=0,ze=s.length,Je=ze-1,Re=\"\",Te=\"\",Ue=\"\",Ve=\"\",Xe=\"\",Ye=\"\";R0)Te=Te.replace(c,\"\");if(Te.trim().length>0){switch(C){case M:case K:case W:case J:case I:break;default:Te+=s.charAt(R)}C=W}}if(1===$e)switch(C){case B:case q:case W:case Y:case X:case D:case E:case U:$e=0;case K:case J:case I:case M:break;default:for($e=0,je=R,g=C,R--,C=W;je0)++R,C=g;case B:je=ze}}switch(C){case B:for(g=(Te=Te.trim()).charCodeAt(0),y=1,je=++R;R0)Te=Te.replace(c,\"\");switch(A=Te.charCodeAt(1)){case ue:case ie:case fe:case Q:f=a;break;default:f=xe}if(je=(Ue=He(a,f,Ue,A,i+1)).length,me>0&&0===je)je=Te.length;if(ye>0)if(f=Ie(xe,Te,Oe),n=Pe(We,Ue,f,a,pe,be,je,A,i,t),Te=f.join(\"\"),void 0!==n)if(0===(je=(Ue=n.trim()).length))A=0,Ue=\"\";if(je>0)switch(A){case fe:Te=Te.replace(x,Me);case ue:case ie:case Q:Ue=Te+\"{\"+Ue+\"}\";break;case te:if(Ue=(Te=Te.replace(b,\"$1 $2\"+(Be>0?De:\"\")))+\"{\"+Ue+\"}\",1===Ae||2===Ae&&Le(\"@\"+Ue,3))Ue=\"@\"+N+Ue+\"@\"+Ue;else Ue=\"@\"+Ue;break;default:if(Ue=Te+Ue,t===de)Ve+=Ue,Ue=\"\"}else Ue=\"\";break;default:Ue=He(a,Ie(a,Te,Oe),Ue,t,i+1)}Xe+=Ue,O=0,$e=0,z=0,we=0,Oe=0,j=0,Te=\"\",Ue=\"\",C=s.charCodeAt(++R);break;case q:case W:if((je=(Te=(we>0?Te.replace(c,\"\"):Te).trim()).length)>1){if(0===z)if((g=Te.charCodeAt(0))===Q||g>96&&g<123)je=(Te=Te.replace(\" \",\":\")).length;if(ye>0)if(void 0!==(n=Pe(Se,Te,a,e,pe,be,Ve.length,t,i,t)))if(0===(je=(Te=n.trim()).length))Te=\"\\0\\0\";switch(g=Te.charCodeAt(0),A=Te.charCodeAt(1),g){case re:break;case L:if(A===oe||A===he){Ye+=Te+s.charAt(R);break}default:if(Te.charCodeAt(je-1)===V)break;Ve+=Ke(Te,g,A,Te.charCodeAt(2))}}O=0,$e=0,z=0,we=0,Oe=0,Te=\"\",C=s.charCodeAt(++R)}}switch(C){case J:case I:if(h+d+u+o+ve===0)switch($){case E:case X:case Y:case L:case ae:case _:case T:case ee:case Z:case Q:case V:case U:case W:case B:case q:break;default:if(z>0)$e=1}if(h===Z)h=0;else if(ge+O===0&&t!==te&&Te.length>0)we=1,Te+=\"\\0\";if(ye*qe>0)Pe(Ne,Te,a,e,pe,be,Ve.length,t,i,t);be=1,pe++;break;case W:case q:if(h+d+u+o===0){be++;break}default:switch(be++,Re=s.charAt(R),C){case K:case M:if(d+o+h===0)switch(w){case U:case V:case K:case M:Re=\"\";break;default:if(C!==M)Re=\" \"}break;case re:Re=\"\\\\0\";break;case ce:Re=\"\\\\f\";break;case se:Re=\"\\\\v\";break;case P:if(d+h+o===0&&ge>0)Oe=1,we=1,Re=\"\\f\"+Re;break;case 108:if(d+h+o+ke===0&&z>0)switch(R-z){case 2:if(w===ne&&s.charCodeAt(R-3)===V)ke=w;case 8:if(m===le)ke=m}break;case V:if(d+h+o===0)z=R;break;case U:if(h+u+d+o===0)we=1,Re+=\"\\r\";break;case Y:case X:if(0===h)d=d===C?0:0===d?C:d;break;case G:if(d+h+u===0)o++;break;case H:if(d+h+u===0)o--;break;case E:if(d+h+o===0)u--;break;case D:if(d+h+o===0){if(0===O)switch(2*w+3*m){case 533:break;default:y=0,O=1}u++}break;case L:if(h+u+d+o+z+j===0)j=1;break;case T:case Z:if(d+o+u>0)break;switch(h){case 0:switch(2*C+3*s.charCodeAt(R+1)){case 235:h=Z;break;case 220:je=R,h=T}break;case T:if(C===Z&&w===T&&je+2!==R){if(33===s.charCodeAt(je+2))Ve+=s.substring(je,R+1);Re=\"\",h=0}}}if(0===h){if(ge+d+o+j===0&&t!==te&&C!==W)switch(C){case U:case ae:case _:case ee:case E:case D:if(0===O){switch(w){case K:case M:case I:case J:Re+=\"\\0\";break;default:Re=\"\\0\"+Re+(C===U?\"\":\"\\0\")}we=1}else switch(C){case D:if(z+7===R&&108===w)z=0;O=++y;break;case E:if(0==(O=--y))we=1,Re+=\"\\0\"}break;case K:case M:switch(w){case re:case B:case q:case W:case U:case ce:case K:case M:case I:case J:break;default:if(0===O)we=1,Re+=\"\\0\"}}if(Te+=Re,C!==M&&C!==K)$=C}}m=w,w=C,R++}if(je=Ve.length,me>0)if(0===je&&0===Xe.length&&0===a[0].length==false)if(t!==ie||1===a.length&&(ge>0?Ee:Ge)===a[0])je=a.join(\",\").length+2;if(je>0){if(f=0===ge&&t!==te?function(e){for(var a,r,s=0,t=e.length,i=Array(t);s1)continue;if(u=n.charCodeAt(n.length-1),d=r.charCodeAt(0),a=\"\",0!==o)switch(u){case T:case ae:case _:case ee:case M:case D:break;default:a=\" \"}switch(d){case P:r=a+Ee;case ae:case _:case ee:case M:case E:case D:break;case G:r=a+r+Ee;break;case V:switch(2*r.charCodeAt(1)+3*r.charCodeAt(2)){case 530:if(Ce>0){r=a+r.substring(8,h-1);break}default:if(o<1||f[o-1].length<1)r=a+Ee+r}break;case U:a=\"\";default:if(h>1&&r.indexOf(\":\")>0)r=a+r.replace(v,\"$1\"+Ee+\"$2\");else r=a+r+Ee}n+=r}i[s]=n.replace(c,\"\").trim()}return i}(a):a,ye>0)if(void 0!==(n=Pe(Fe,Ve,f,e,pe,be,je,t,i,t))&&0===(Ve=n).length)return Ye+Ve+Xe;if(Ve=f.join(\",\")+\"{\"+Ve+\"}\",Ae*ke!=0){if(2===Ae&&!Le(Ve,2))ke=0;switch(ke){case le:Ve=Ve.replace(k,\":\"+S+\"$1\")+Ve;break;case ne:Ve=Ve.replace(p,\"::\"+N+\"input-$1\")+Ve.replace(p,\"::\"+S+\"$1\")+Ve.replace(p,\":\"+F+\"input-$1\")+Ve}ke=0}}return Ye+Ve+Xe}function Ie(e,a,r){var c=a.trim().split(o),s=c,t=c.length,i=e.length;switch(i){case 0:case 1:for(var f=0,n=0===i?\"\":e[0]+\" \";f0&&ge>0)return s.replace(u,\"$1\").replace(h,\"$1\"+Ge);break;default:return e.trim()+s.replace(h,\"$1\"+e.trim())}default:if(r*ge>0&&s.indexOf(\"\\f\")>0)return s.replace(h,(e.charCodeAt(0)===V?\"\":\"$1\")+e.trim())}return e+s}function Ke(e,a,r,c){var l,o=0,h=e+\";\",u=2*a+3*r+4*c;if(944===u)return function(e){var a=e.length,r=e.indexOf(\":\",9)+1,c=e.substring(0,r).trim(),s=e.substring(r,a-1).trim();switch(e.charCodeAt(9)*Be){case 0:break;case Q:if(110!==e.charCodeAt(10))break;default:for(var t=s.split((s=\"\",f)),i=0,r=0,a=t.length;iL&&h<90||h>96&&h<123||h===R||h===Q&&l.charCodeAt(1)!==Q))switch(isNaN(parseFloat(l))+(-1!==l.indexOf(\"(\"))){case 1:switch(l){case\"infinite\":case\"alternate\":case\"backwards\":case\"running\":case\"normal\":case\"forwards\":case\"both\":case\"none\":case\"linear\":case\"ease\":case\"ease-in\":case\"ease-out\":case\"ease-in-out\":case\"paused\":case\"reverse\":case\"alternate-reverse\":case\"inherit\":case\"initial\":case\"unset\":case\"step-start\":case\"step-end\":break;default:l+=De}}o[r++]=l}s+=(0===i?\"\":\",\")+o.join(\" \")}}if(s=c+s+\";\",1===Ae||2===Ae&&Le(s,1))return N+s+s;return s}(h);else if(0===Ae||2===Ae&&!Le(h,1))return h;switch(u){case 1015:return 97===h.charCodeAt(10)?N+h+h:h;case 951:return 116===h.charCodeAt(3)?N+h+h:h;case 963:return 110===h.charCodeAt(5)?N+h+h:h;case 1009:if(100!==h.charCodeAt(4))break;case 969:case 942:return N+h+h;case 978:return N+h+S+h+h;case 1019:case 983:return N+h+S+h+F+h+h;case 883:if(h.charCodeAt(8)===Q)return N+h+h;if(h.indexOf(\"image-set(\",11)>0)return h.replace(z,\"$1\"+N+\"$2\")+h;return h;case 932:if(h.charCodeAt(4)===Q)switch(h.charCodeAt(5)){case 103:return N+\"box-\"+h.replace(\"-grow\",\"\")+N+h+F+h.replace(\"grow\",\"positive\")+h;case 115:return N+h+F+h.replace(\"shrink\",\"negative\")+h;case 98:return N+h+F+h.replace(\"basis\",\"preferred-size\")+h}return N+h+F+h+h;case 964:return N+h+F+\"flex-\"+h+h;case 1023:if(99!==h.charCodeAt(8))break;return l=h.substring(h.indexOf(\":\",15)).replace(\"flex-\",\"\").replace(\"space-between\",\"justify\"),N+\"box-pack\"+l+N+h+F+\"flex-pack\"+l+h;case 1005:return t.test(h)?h.replace(s,\":\"+N)+h.replace(s,\":\"+S)+h:h;case 1e3:switch(o=(l=h.substring(13).trim()).indexOf(\"-\")+1,l.charCodeAt(0)+l.charCodeAt(o)){case 226:l=h.replace(m,\"tb\");break;case 232:l=h.replace(m,\"tb-rl\");break;case 220:l=h.replace(m,\"lr\");break;default:return h}return N+h+F+l+h;case 1017:if(-1===h.indexOf(\"sticky\",9))return h;case 975:switch(o=(h=e).length-10,u=(l=(33===h.charCodeAt(o)?h.substring(0,o):h).substring(e.indexOf(\":\",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(l.charCodeAt(8)<111)break;case 115:h=h.replace(l,N+l)+\";\"+h;break;case 207:case 102:h=h.replace(l,N+(u>102?\"inline-\":\"\")+\"box\")+\";\"+h.replace(l,N+l)+\";\"+h.replace(l,F+l+\"box\")+\";\"+h}return h+\";\";case 938:if(h.charCodeAt(5)===Q)switch(h.charCodeAt(6)){case 105:return l=h.replace(\"-items\",\"\"),N+h+N+\"box-\"+l+F+\"flex-\"+l+h;case 115:return N+h+F+\"flex-item-\"+h.replace(y,\"\")+h;default:return N+h+F+\"flex-line-pack\"+h.replace(\"align-content\",\"\").replace(y,\"\")+h}break;case 973:case 989:if(h.charCodeAt(3)!==Q||122===h.charCodeAt(4))break;case 931:case 953:if(true===j.test(e))if(115===(l=e.substring(e.indexOf(\":\")+1)).charCodeAt(0))return Ke(e.replace(\"stretch\",\"fill-available\"),a,r,c).replace(\":fill-available\",\":stretch\");else return h.replace(l,N+l)+h.replace(l,S+l.replace(\"fill-\",\"\"))+h;break;case 962:if(h=N+h+(102===h.charCodeAt(5)?F+h:\"\")+h,r+c===211&&105===h.charCodeAt(13)&&h.indexOf(\"transform\",10)>0)return h.substring(0,h.indexOf(\";\",27)+1).replace(i,\"$1\"+N+\"$2\")+h}return h}function Le(e,a){var r=e.indexOf(1===a?\":\":\"{\"),c=e.substring(0,3!==a?r:10),s=e.substring(r+1,e.length-1);return Oe(2!==a?c:c.replace(O,\"$1\"),s,a)}function Me(e,a){var r=Ke(a,a.charCodeAt(0),a.charCodeAt(1),a.charCodeAt(2));return r!==a+\";\"?r.replace($,\" or ($1)\").substring(4):\"(\"+a+\")\"}function Pe(e,a,r,c,s,t,i,f,n,l){for(var o,h=0,u=a;h0)De=s.replace(d,t===G?\"\":\"-\");if(t=1,1===ge)Ge=s;else Ee=s;var i,f=[Ge];if(ye>0)if(void 0!==(i=Pe(ze,r,f,f,pe,be,0,0,0,0))&&\"string\"==typeof i)r=i;var n=He(xe,f,r,0,0);if(ye>0)if(void 0!==(i=Pe(je,n,f,f,pe,be,n.length,0,0,0))&&\"string\"!=typeof(n=i))t=0;return De=\"\",Ge=\"\",Ee=\"\",ke=0,pe=1,be=1,we*t==0?n:n.replace(c,\"\").replace(g,\"\").replace(A,\"$1\").replace(C,\"$1\").replace(w,\" \")}if(Te.use=function e(a){switch(a){case void 0:case null:ye=$e.length=0;break;default:if(\"function\"==typeof a)$e[ye++]=a;else if(\"object\"==typeof a)for(var r=0,c=a.length;r\n import(/* webpackChunkName: \"colorpicker\" */ '../fragments/ColorPicker.react')\n);\n/**\n * A color picker.\n */\nexport default class ColorPicker extends Component {\n render() {\n return (\n \n \n \n );\n }\n}\n\nColorPicker.defaultProps = {\n size: 225,\n theme: light,\n labelPosition: 'top',\n persisted_props: ['value'],\n persistence_type: 'local'\n};\n\nColorPicker.propTypes = {\n /**\n * The ID used to identify the color picker in Dash callbacks\n */\n id: PropTypes.string,\n\n /**\n * Color value of the picker\n */\n value: PropTypes.shape({\n /**\n * Hex string\n */\n hex: PropTypes.string,\n\n /**\n * RGB/RGBA object\n */\n rbg: PropTypes.shape({\n r: PropTypes.number,\n g: PropTypes.number,\n b: PropTypes.number,\n a: PropTypes.number\n })\n }),\n\n /**\n * If true, color cannot be picked.\n */\n disabled: PropTypes.bool,\n\n /**\n * Size (width) of the component in pixels\n */\n size: PropTypes.number,\n\n /**\n * Theme configuration to be set by a ThemeProvider\n */\n theme: PropTypes.object,\n\n /**\n * Description to be displayed alongside the control. To control styling,\n * pass an object with label and style properties\n */\n label: PropTypes.oneOfType([\n /**\n * Label to be displayed\n */\n PropTypes.string,\n\n /**\n * The style and label\n */\n PropTypes.shape({\n style: PropTypes.object,\n label: PropTypes.string\n })\n ]),\n\n /**\n * Where the indicator label is positioned\n */\n labelPosition: PropTypes.oneOf(['top', 'bottom']),\n\n /**\n * Class to apply to the root component element\n */\n className: PropTypes.string,\n\n /**\n * Dash-assigned callback that gets fired when\n * the color picker's value changes\n */\n setProps: PropTypes.func,\n\n /**\n * Style to apply to the root component element\n */\n style: PropTypes.object,\n\n /**\n * Used to allow user interactions in this component to be persisted when\n * the component - or the page - is refreshed. If `persisted` is truthy and\n * hasn't changed from its previous value, a `value` that the user has\n * changed while using the app will keep that change, as long as\n * the new `value` also matches what was given originally.\n * Used in conjunction with `persistence_type`.\n */\n persistence: PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.number]),\n\n /**\n * Properties whose user interactions will persist after refreshing the\n * component or the page. Since only `value` is allowed this prop can\n * normally be ignored.\n */\n persisted_props: PropTypes.arrayOf(PropTypes.oneOf(['value'])),\n\n /**\n * Where persisted user changes will be stored:\n * memory: only kept in memory, reset on page refresh.\n * local: window.localStorage, data is kept after the browser quit.\n * session: window.sessionStorage, data is cleared once the browser quit.\n */\n persistence_type: PropTypes.oneOf(['local', 'session', 'memory'])\n};\n\nexport const defaultProps = ColorPicker.defaultProps;\nexport const propTypes = ColorPicker.propTypes;\n","// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","// 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","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = require('./_hide');\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","(function (factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory()) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory()) :\n\t\t\t(window['stylisRuleSheet'] = factory())\n}(function () {\n\n\t'use strict'\n\n\treturn function (insertRule) {\n\t\tvar delimiter = '/*|*/'\n\t\tvar needle = delimiter+'}'\n\n\t\tfunction toSheet (block) {\n\t\t\tif (block)\n\t\t\t\ttry {\n\t\t\t\t\tinsertRule(block + '}')\n\t\t\t\t} catch (e) {}\n\t\t}\n\n\t\treturn function ruleSheet (context, content, selectors, parents, line, column, length, ns, depth, at) {\n\t\t\tswitch (context) {\n\t\t\t\t// property\n\t\t\t\tcase 1:\n\t\t\t\t\t// @import\n\t\t\t\t\tif (depth === 0 && content.charCodeAt(0) === 64)\n\t\t\t\t\t\treturn insertRule(content+';'), ''\n\t\t\t\t\tbreak\n\t\t\t\t// selector\n\t\t\t\tcase 2:\n\t\t\t\t\tif (ns === 0)\n\t\t\t\t\t\treturn content + delimiter\n\t\t\t\t\tbreak\n\t\t\t\t// at-rule\n\t\t\t\tcase 3:\n\t\t\t\t\tswitch (ns) {\n\t\t\t\t\t\t// @font-face, @page\n\t\t\t\t\t\tcase 102:\n\t\t\t\t\t\tcase 112:\n\t\t\t\t\t\t\treturn insertRule(selectors[0]+content), ''\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn content + (at === 0 ? delimiter : '')\n\t\t\t\t\t}\n\t\t\t\tcase -2:\n\t\t\t\t\tcontent.split(needle).forEach(toSheet)\n\t\t\t}\n\t\t}\n\t}\n}))\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","/*!\n * TinyGradient 0.4.3\n * Copyright 2014-2018 Damien \"Mistic\" Sorel (http://www.strangeplanet.fr)\n * Licensed under MIT (http://opensource.org/licenses/MIT)\n */\n\n(function (root, factory) {\n if (typeof module !== \"undefined\" && module.exports) {\n module.exports = factory(require('tinycolor2'));\n }\n else if (typeof define === 'function' && define.amd) {\n define(['tinycolor2'], factory);\n }\n else {\n root.tinygradient = factory(root.tinycolor);\n }\n}(this, function (tinycolor) {\n \"use strict\";\n\n var RGBA_MAX = {r: 256, g: 256, b: 256, a: 1};\n var HSVA_MAX = {h: 360, s: 1, v: 1, a: 1};\n\n /**\n * Linearly compute the step size between start and end (not normalized)\n * @param {Object} start - rgba or hsva\n * @param {Object} end - rgba or hsva\n * @param {int} steps - number of desired steps\n * @return {Object} rgba or hsva\n */\n function stepize(start, end, steps) {\n var step = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n step[k] = steps === 0 ? 0 : (end[k] - start[k]) / steps;\n }\n }\n\n return step;\n }\n\n /**\n * Compute the final step color\n * @param {Object} step - rgba or hsva from `stepize`\n * @param {Object} start - rgba or hsva\n * @param {int} i - color index\n * @param {Object} max - rgba or hsva of maximum values for each channel\n * @return {Object} rgba or hsva\n */\n function interpolate(step, start, i, max) {\n var color = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n color[k] = step[k] * i + start[k];\n color[k] = color[k] < 0 ? color[k] + max[k] : ( max[k] !== 1 ? color[k] % max[k] : color[k] );\n }\n }\n\n return color;\n }\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateRgb(stop1, stop2, steps) {\n var start = stop1.color.toRgb(),\n end = stop2.color.toRgb(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n color;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, RGBA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @param {Boolean} trigonometric - true to step in trigonometric order\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateHsv(stop1, stop2, steps, trigonometric) {\n var start = stop1.color.toHsv(),\n end = stop2.color.toHsv(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n diff, color;\n\n // recompute hue\n if ((start.h <= end.h && !trigonometric) || (start.h >= end.h && trigonometric)) {\n diff = end.h - start.h;\n }\n else if (trigonometric) {\n diff = 360 - end.h + start.h;\n }\n else {\n diff = 360 - start.h + end.h;\n }\n step.h = Math.pow(-1, trigonometric ? 1 : 0) * Math.abs(diff) / steps;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, HSVA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Compute substeps between each stops\n * @param {Object[]} stops\n * @param {int} steps\n * @return {int[]}\n */\n function computeSubsteps(stops, steps) {\n var l = stops.length;\n\n // validation\n steps = parseInt(steps);\n\n if (isNaN(steps) || steps < 2) {\n throw new Error('Invalid number of steps (< 2)');\n }\n if (steps < l) {\n throw new Error('Number of steps cannot be inferior to number of stops');\n }\n\n // compute substeps from stop positions\n var substeps = [];\n\n for (var i = 1; i < l; i++) {\n var step = (steps - 1) * (stops[i].pos - stops[i - 1].pos);\n substeps.push(Math.max(1, Math.round(step)));\n }\n\n // adjust number of steps\n var totalSubsteps = 1;\n for (var n = l - 1; n--;) totalSubsteps += substeps[n];\n\n while (totalSubsteps !== steps) {\n if (totalSubsteps < steps) {\n var min = Math.min.apply(null, substeps);\n substeps[substeps.indexOf(min)]++;\n totalSubsteps++;\n }\n else {\n var max = Math.max.apply(null, substeps);\n substeps[substeps.indexOf(max)]--;\n totalSubsteps--;\n }\n }\n\n return substeps;\n }\n\n /**\n * Compute the color at a specific position\n * @param {Object[]} stops\n * @param {float} pos\n * @param {string} method\n * @param {Object} max\n * @returns {tinycolor}\n */\n function computeAt(stops, pos, method, max) {\n if (pos < 0 || pos > 1) {\n throw new Error('Position must be between 0 and 1');\n }\n\n var start, end;\n for (var i = 0, l = stops.length; i < l - 1; i++) {\n if (pos >= stops[i].pos && pos < stops[i + 1].pos) {\n start = stops[i];\n end = stops[i + 1];\n break;\n }\n }\n\n if (!start) {\n start = end = stops[stops.length - 1];\n }\n\n var step = stepize(start.color[method](), end.color[method](), (end.pos - start.pos) * 100);\n var color = interpolate(step, start.color[method](), Math.round((pos - start.pos) * 100), max);\n return tinycolor(color);\n }\n\n /**\n * @class tinygradient\n * @param {*} stops\n */\n var TinyGradient = function (stops) {\n // varargs\n if (arguments.length === 1) {\n if (!(arguments[0] instanceof Array)) {\n throw new Error('\"stops\" is not an array');\n }\n stops = arguments[0];\n }\n else {\n stops = Array.prototype.slice.call(arguments);\n }\n\n // if we are called as a function, call using new instead\n if (!(this instanceof TinyGradient)) {\n return new TinyGradient(stops);\n }\n\n // validation\n if (stops.length < 2) {\n throw new Error('Invalid number of stops (< 2)');\n }\n\n var havingPositions = stops[0].pos !== undefined,\n l = stops.length,\n p = -1;\n // create tinycolor objects and clean positions\n this.stops = stops.map(function (stop, i) {\n var hasPosition = stop.pos !== undefined;\n if (havingPositions ^ hasPosition) {\n throw new Error('Cannot mix positionned and not posionned color stops');\n }\n\n if (hasPosition) {\n stop = {\n color: tinycolor(stop.color),\n pos : stop.pos\n };\n\n if (stop.pos < 0 || stop.pos > 1) {\n throw new Error('Color stops positions must be between 0 and 1');\n }\n else if (stop.pos <= p) {\n throw new Error('Color stops positions are not ordered');\n }\n p = stop.pos;\n }\n else {\n stop = {\n color: tinycolor(stop),\n pos : i / (l - 1)\n };\n }\n\n return stop;\n });\n\n if (this.stops[0].pos !== 0) {\n this.stops.unshift({\n color: this.stops[0].color,\n pos : 0\n });\n }\n if (this.stops[this.stops.length - 1].pos !== 1) {\n this.stops.push({\n color: this.stops[this.stops.length - 1].color,\n pos : 1\n });\n }\n };\n\n /**\n * Return new instance with reversed stops\n * @return {tinygradient}\n */\n TinyGradient.prototype.reverse = function () {\n var stops = [];\n\n this.stops.forEach(function (stop) {\n stops.push({\n color: stop.color,\n pos : 1 - stop.pos\n });\n });\n\n return new TinyGradient(stops.reverse());\n };\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {int} steps\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.rgb = function (steps) {\n var substeps = computeSubsteps(this.stops, steps),\n gradient = [];\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {int} steps\n * @param {Boolean|String} [mode=false]\n * - false to step in clockwise\n * - true to step in trigonometric order\n * - 'short' to use the shortest way\n * - 'long' to use the longest way\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.hsv = function (steps, mode) {\n var substeps = computeSubsteps(this.stops, steps),\n trigonometric = mode === true,\n parametrized = typeof mode === 'string',\n gradient = [],\n start, end, trig;\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n start = this.stops[i].color.toHsv();\n end = this.stops[i + 1].color.toHsv();\n\n if (parametrized) {\n trig = (start.h < end.h && end.h - start.h < 180) || (start.h > end.h && start.h - end.h > 180);\n }\n\n // rgb interpolation if one of the steps in grayscale\n if (start.s === 0 || end.s === 0) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n else {\n gradient = gradient.concat(interpolateHsv(this.stops[i], this.stops[i + 1], substeps[i],\n (mode === 'long' && trig) || (mode === 'short' && !trig) || (!parametrized && trigonometric)\n ));\n }\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate CSS3 command (no prefix) for this gradient\n * @param {String} [mode=linear] - 'linear' or 'radial'\n * @param {String} [direction] - default is 'to right' or 'ellipse at center'\n * @return {String}\n */\n TinyGradient.prototype.css = function (mode, direction) {\n mode = mode || 'linear';\n direction = direction || (mode === 'linear' ? 'to right' : 'ellipse at center');\n\n var css = mode + '-gradient(' + direction;\n this.stops.forEach(function (stop) {\n css += ', ' + stop.color.toRgbString() + ' ' + (stop.pos * 100) + '%';\n });\n css += ')';\n return css;\n };\n\n /**\n * Returns the color at specific position with RGBa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.rgbAt = function (pos) {\n return computeAt(this.stops, pos, 'toRgb', RGBA_MAX);\n };\n\n /**\n * Returns the color at specific position with HSVa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.hsvAt = function (pos) {\n return computeAt(this.stops, pos, 'toHsv', HSVA_MAX);\n };\n\n var STATIC_FNS = {\n 'rgb' : 1,\n 'hsv' : 2,\n 'css' : 2,\n 'rgbAt': 1,\n 'hsvAt': 1\n };\n\n Object.keys(STATIC_FNS).forEach(function (fn) {\n TinyGradient[fn] = function () {\n var colors = Array.prototype.slice.call(arguments);\n var args = colors.splice(-STATIC_FNS[fn]);\n var gradient = new TinyGradient(colors);\n return gradient[fn].apply(gradient, args);\n };\n });\n\n // export\n return TinyGradient;\n}));","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = addEventListener;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventObject = require('./EventObject');\n\nvar _EventObject2 = _interopRequireDefault(_EventObject);\n\nfunction addEventListener(target, eventType, callback, option) {\n function wrapCallback(e) {\n var ne = new _EventObject2['default'](e);\n callback.call(target, ne);\n }\n\n if (target.addEventListener) {\n var _ret = (function () {\n var useCapture = false;\n if (typeof option === 'object') {\n useCapture = option.capture || false;\n } else if (typeof option === 'boolean') {\n useCapture = option;\n }\n\n target.addEventListener(eventType, wrapCallback, option || false);\n\n return {\n v: {\n remove: function remove() {\n target.removeEventListener(eventType, wrapCallback, useCapture);\n }\n }\n };\n })();\n\n if (typeof _ret === 'object') return _ret.v;\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, wrapCallback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, wrapCallback);\n }\n };\n }\n}\n\nmodule.exports = exports['default'];","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\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 }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.nipplejs = f()}})(function(){var define,module,exports;\n'use strict';\n\n// Constants\nvar isTouch = !!('ontouchstart' in window);\nvar isPointer = window.PointerEvent ? true : false;\nvar isMSPointer = window.MSPointerEvent ? true : false;\nvar events = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend, touchcancel'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n },\n pointer: {\n start: 'pointerdown',\n move: 'pointermove',\n end: 'pointerup, pointercancel'\n },\n MSPointer: {\n start: 'MSPointerDown',\n move: 'MSPointerMove',\n end: 'MSPointerUp'\n }\n};\nvar toBind;\nvar secondBind = {};\nif (isPointer) {\n toBind = events.pointer;\n} else if (isMSPointer) {\n toBind = events.MSPointer;\n} else if (isTouch) {\n toBind = events.touch;\n secondBind = events.mouse;\n} else {\n toBind = events.mouse;\n}\n\n///////////////////////\n/// UTILS ///\n///////////////////////\n\nvar u = {};\nu.distance = function (p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return Math.sqrt((dx * dx) + (dy * dy));\n};\n\nu.angle = function(p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return u.degrees(Math.atan2(dy, dx));\n};\n\nu.findCoord = function(p, d, a) {\n var b = {x: 0, y: 0};\n a = u.radians(a);\n b.x = p.x - d * Math.cos(a);\n b.y = p.y - d * Math.sin(a);\n return b;\n};\n\nu.radians = function(a) {\n return a * (Math.PI / 180);\n};\n\nu.degrees = function(a) {\n return a * (180 / Math.PI);\n};\n\nu.bindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.addEventListener) {\n el.addEventListener(type, handler, false);\n } else if (el.attachEvent) {\n el.attachEvent(type, handler);\n }\n }\n};\n\nu.unbindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.removeEventListener) {\n el.removeEventListener(type, handler);\n } else if (el.detachEvent) {\n el.detachEvent(type, handler);\n }\n }\n};\n\nu.trigger = function (el, type, data) {\n var evt = new CustomEvent(type, data);\n el.dispatchEvent(evt);\n};\n\nu.prepareEvent = function (evt) {\n evt.preventDefault();\n return evt.type.match(/^touch/) ? evt.changedTouches : evt;\n};\n\nu.getScroll = function () {\n var x = (window.pageXOffset !== undefined) ?\n window.pageXOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollLeft;\n\n var y = (window.pageYOffset !== undefined) ?\n window.pageYOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollTop;\n return {\n x: x,\n y: y\n };\n};\n\nu.applyPosition = function (el, pos) {\n if (pos.top || pos.right || pos.bottom || pos.left) {\n el.style.top = pos.top;\n el.style.right = pos.right;\n el.style.bottom = pos.bottom;\n el.style.left = pos.left;\n } else {\n el.style.left = pos.x + 'px';\n el.style.top = pos.y + 'px';\n }\n};\n\nu.getTransitionStyle = function (property, values, time) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (typeof values === 'string') {\n obj[i] = values + ' ' + time;\n } else {\n var st = '';\n for (var j = 0, max = values.length; j < max; j += 1) {\n st += values[j] + ' ' + time + ', ';\n }\n obj[i] = st.slice(0, -2);\n }\n }\n }\n return obj;\n};\n\nu.getVendorStyle = function (property, value) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n obj[i] = value;\n }\n }\n return obj;\n};\n\nu.configStylePropertyObject = function (prop) {\n var obj = {};\n obj[prop] = '';\n var vendors = ['webkit', 'Moz', 'o'];\n vendors.forEach(function (vendor) {\n obj[vendor + prop.charAt(0).toUpperCase() + prop.slice(1)] = '';\n });\n return obj;\n};\n\nu.extend = function (objA, objB) {\n for (var i in objB) {\n if (objB.hasOwnProperty(i)) {\n objA[i] = objB[i];\n }\n }\n return objA;\n};\n\n// Overwrite only what's already present\nu.safeExtend = function (objA, objB) {\n var obj = {};\n for (var i in objA) {\n if (objA.hasOwnProperty(i) && objB.hasOwnProperty(i)) {\n obj[i] = objB[i];\n } else if (objA.hasOwnProperty(i)) {\n obj[i] = objA[i];\n }\n }\n return obj;\n};\n\n// Map for array or unique item.\nu.map = function (ar, fn) {\n if (ar.length) {\n for (var i = 0, max = ar.length; i < max; i += 1) {\n fn(ar[i]);\n }\n } else {\n fn(ar);\n }\n};\n\n///////////////////////\n/// SUPER CLASS ///\n///////////////////////\n\nfunction Super () {};\n\n// Basic event system.\nSuper.prototype.on = function (arg, cb) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n self._handlers_[type] = self._handlers_[type] || [];\n self._handlers_[type].push(cb);\n }\n return self;\n};\n\nSuper.prototype.off = function (type, cb) {\n var self = this;\n self._handlers_ = self._handlers_ || {};\n\n if (type === undefined) {\n self._handlers_ = {};\n } else if (cb === undefined) {\n self._handlers_[type] = null;\n } else if (self._handlers_[type] &&\n self._handlers_[type].indexOf(cb) >= 0) {\n self._handlers_[type].splice(self._handlers_[type].indexOf(cb), 1);\n }\n\n return self;\n};\n\nSuper.prototype.trigger = function (arg, data) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (self._handlers_[type] && self._handlers_[type].length) {\n self._handlers_[type].forEach(function (handler) {\n handler.call(self, {\n type: type,\n target: self\n }, data);\n });\n }\n }\n};\n\n// Configuration\nSuper.prototype.config = function (options) {\n var self = this;\n self.options = self.defaults || {};\n if (options) {\n self.options = u.safeExtend(self.options, options);\n }\n};\n\n// Bind internal events.\nSuper.prototype.bindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n self._domHandlers_[type] = function () {\n if (typeof self['on' + type] === 'function') {\n self['on' + type].apply(self, arguments);\n } else {\n console.warn('[WARNING] : Missing \"on' + type + '\" handler.');\n }\n };\n\n u.bindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.bindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n return self;\n};\n\n// Unbind dom events.\nSuper.prototype.unbindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n u.unbindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.unbindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n delete self._domHandlers_[type];\n\n return this;\n};\n\n///////////////////////\n/// THE NIPPLE ///\n///////////////////////\n\nfunction Nipple (collection, options) {\n this.identifier = options.identifier;\n this.position = options.position;\n this.frontPosition = options.frontPosition;\n this.collection = collection;\n\n // Defaults\n this.defaults = {\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n mode: 'dynamic',\n zone: document.body,\n lockX: false,\n lockY: false\n };\n\n this.config(options);\n\n // Overwrites\n if (this.options.mode === 'dynamic') {\n this.options.restOpacity = 0;\n }\n\n this.id = Nipple.id;\n Nipple.id += 1;\n this.buildEl()\n .stylize();\n\n // Nipple's API.\n this.instance = {\n el: this.ui.el,\n on: this.on.bind(this),\n off: this.off.bind(this),\n show: this.show.bind(this),\n hide: this.hide.bind(this),\n add: this.addToDom.bind(this),\n remove: this.removeFromDom.bind(this),\n destroy: this.destroy.bind(this),\n resetDirection: this.resetDirection.bind(this),\n computeDirection: this.computeDirection.bind(this),\n trigger: this.trigger.bind(this),\n position: this.position,\n frontPosition: this.frontPosition,\n ui: this.ui,\n identifier: this.identifier,\n id: this.id,\n options: this.options\n };\n\n return this.instance;\n};\n\nNipple.prototype = new Super();\nNipple.constructor = Nipple;\nNipple.id = 0;\n\n// Build the dom element of the Nipple instance.\nNipple.prototype.buildEl = function (options) {\n this.ui = {};\n\n if (this.options.dataOnly) {\n return this;\n }\n\n this.ui.el = document.createElement('div');\n this.ui.back = document.createElement('div');\n this.ui.front = document.createElement('div');\n\n this.ui.el.className = 'nipple collection_' + this.collection.id;\n this.ui.back.className = 'back';\n this.ui.front.className = 'front';\n\n this.ui.el.setAttribute('id', 'nipple_' + this.collection.id +\n '_' + this.id);\n\n this.ui.el.appendChild(this.ui.back);\n this.ui.el.appendChild(this.ui.front);\n\n return this;\n};\n\n// Apply CSS to the Nipple instance.\nNipple.prototype.stylize = function () {\n if (this.options.dataOnly) {\n return this;\n }\n var animTime = this.options.fadeTime + 'ms';\n var borderStyle = u.getVendorStyle('borderRadius', '50%');\n var transitStyle = u.getTransitionStyle('transition', 'opacity', animTime);\n var styles = {};\n styles.el = {\n position: 'absolute',\n opacity: this.options.restOpacity,\n display: 'block',\n 'zIndex': 999\n };\n\n styles.back = {\n position: 'absolute',\n display: 'block',\n width: this.options.size + 'px',\n height: this.options.size + 'px',\n marginLeft: -this.options.size / 2 + 'px',\n marginTop: -this.options.size / 2 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n styles.front = {\n width: this.options.size / 2 + 'px',\n height: this.options.size / 2 + 'px',\n position: 'absolute',\n display: 'block',\n marginLeft: -this.options.size / 4 + 'px',\n marginTop: -this.options.size / 4 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n u.extend(styles.el, transitStyle);\n u.extend(styles.back, borderStyle);\n u.extend(styles.front, borderStyle);\n\n this.applyStyles(styles);\n\n return this;\n};\n\nNipple.prototype.applyStyles = function (styles) {\n // Apply styles\n for (var i in this.ui) {\n if (this.ui.hasOwnProperty(i)) {\n for (var j in styles[i]) {\n this.ui[i].style[j] = styles[i][j];\n }\n }\n }\n\n return this;\n};\n\n// Inject the Nipple instance into DOM.\nNipple.prototype.addToDom = function () {\n // We're not adding it if we're dataOnly or already in dom.\n if (this.options.dataOnly || document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.appendChild(this.ui.el);\n return this;\n};\n\n// Remove the Nipple instance from DOM.\nNipple.prototype.removeFromDom = function () {\n if (this.options.dataOnly || !document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.removeChild(this.ui.el);\n return this;\n};\n\n// Entirely destroy this nipple\nNipple.prototype.destroy = function () {\n clearTimeout(this.removeTimeout);\n clearTimeout(this.showTimeout);\n clearTimeout(this.restTimeout);\n this.trigger('destroyed', this.instance);\n this.removeFromDom();\n this.off();\n};\n\n// Fade in the Nipple instance.\nNipple.prototype.show = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.addToDom();\n\n self.restCallback();\n\n setTimeout(function () {\n self.ui.el.style.opacity = 1;\n }, 0);\n\n self.showTimeout = setTimeout(function () {\n self.trigger('shown', self.instance);\n if (typeof cb === 'function') {\n cb.call(this);\n }\n }, self.options.fadeTime);\n\n return self;\n};\n\n// Fade out the Nipple instance.\nNipple.prototype.hide = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n self.ui.el.style.opacity = self.options.restOpacity;\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.removeTimeout = setTimeout(\n function () {\n var display = self.options.mode === 'dynamic' ? 'none' : 'block';\n self.ui.el.style.display = display;\n if (typeof cb === 'function') {\n cb.call(self);\n }\n\n self.trigger('hidden', self.instance);\n },\n self.options.fadeTime\n );\n if (self.options.restJoystick) {\n self.restPosition();\n }\n\n return self;\n};\n\nNipple.prototype.restPosition = function (cb) {\n var self = this;\n self.frontPosition = {\n x: 0,\n y: 0\n };\n var animTime = self.options.fadeTime + 'ms';\n\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition',\n ['top', 'left'], animTime);\n\n var styles = {front: {}};\n styles.front = {\n left: self.frontPosition.x + 'px',\n top: self.frontPosition.y + 'px'\n };\n\n self.applyStyles(transitStyle);\n self.applyStyles(styles);\n\n self.restTimeout = setTimeout(\n function () {\n if (typeof cb === 'function') {\n cb.call(self);\n }\n self.restCallback();\n },\n self.options.fadeTime\n );\n};\n\nNipple.prototype.restCallback = function () {\n var self = this;\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition', 'none', '');\n self.applyStyles(transitStyle);\n self.trigger('rested', self.instance);\n};\n\nNipple.prototype.resetDirection = function () {\n // Fully rebuild the object to let the iteration possible.\n this.direction = {\n x: false,\n y: false,\n angle: false\n };\n};\n\nNipple.prototype.computeDirection = function (obj) {\n var rAngle = obj.angle.radian;\n var angle45 = Math.PI / 4;\n var angle90 = Math.PI / 2;\n var direction, directionX, directionY;\n\n // Angular direction\n // \\ UP /\n // \\ /\n // LEFT RIGHT\n // / \\\n // /DOWN \\\n //\n if (\n rAngle > angle45 &&\n rAngle < (angle45 * 3) &&\n !obj.lockX\n ) {\n direction = 'up';\n } else if (\n rAngle > -angle45 &&\n rAngle <= angle45 &&\n !obj.lockY\n ) {\n direction = 'left';\n } else if (\n rAngle > (-angle45 * 3) &&\n rAngle <= -angle45 &&\n !obj.lockX\n ) {\n direction = 'down';\n } else if (!obj.lockY) {\n direction = 'right';\n }\n\n // Plain direction\n // UP |\n // _______ | RIGHT\n // LEFT |\n // DOWN |\n if (!obj.lockY) {\n if (rAngle > -angle90 && rAngle < angle90) {\n directionX = 'left';\n } else {\n directionX = 'right';\n }\n }\n\n if (!obj.lockX) {\n if (rAngle > 0) {\n directionY = 'up';\n } else {\n directionY = 'down';\n }\n }\n\n if (obj.force > this.options.threshold) {\n var oldDirection = {};\n for (var i in this.direction) {\n if (this.direction.hasOwnProperty(i)) {\n oldDirection[i] = this.direction[i];\n }\n }\n\n var same = {};\n\n this.direction = {\n x: directionX,\n y: directionY,\n angle: direction\n };\n\n obj.direction = this.direction;\n\n for (var i in oldDirection) {\n if (oldDirection[i] === this.direction[i]) {\n same[i] = true;\n }\n }\n\n // If all 3 directions are the same, we don't trigger anything.\n if (same.x && same.y && same.angle) {\n return obj;\n }\n\n if (!same.x || !same.y) {\n this.trigger('plain', obj);\n }\n\n if (!same.x) {\n this.trigger('plain:' + directionX, obj);\n }\n\n if (!same.y) {\n this.trigger('plain:' + directionY, obj);\n }\n\n if (!same.angle) {\n this.trigger('dir dir:' + direction, obj);\n }\n }\n return obj;\n};\n\n/* global Nipple, Super */\n\n///////////////////////////\n/// THE COLLECTION ///\n///////////////////////////\n\nfunction Collection (manager, options) {\n var self = this;\n self.nipples = [];\n self.idles = [];\n self.actives = [];\n self.ids = [];\n self.pressureIntervals = {};\n self.manager = manager;\n self.id = Collection.id;\n Collection.id += 1;\n\n // Defaults\n self.defaults = {\n zone: document.body,\n multitouch: false,\n maxNumberOfNipples: 10,\n mode: 'dynamic',\n position: {top: 0, left: 0},\n catchDistance: 200,\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n lockX: false,\n lockY: false\n };\n\n self.config(options);\n\n // Overwrites\n if (self.options.mode === 'static' || self.options.mode === 'semi') {\n self.options.multitouch = false;\n }\n\n if (!self.options.multitouch) {\n self.options.maxNumberOfNipples = 1;\n }\n\n self.updateBox();\n self.prepareNipples();\n self.bindings();\n self.begin();\n\n return self.nipples;\n}\n\nCollection.prototype = new Super();\nCollection.constructor = Collection;\nCollection.id = 0;\n\nCollection.prototype.prepareNipples = function () {\n var self = this;\n var nips = self.nipples;\n\n // Public API Preparation.\n nips.on = self.on.bind(self);\n nips.off = self.off.bind(self);\n nips.options = self.options;\n nips.destroy = self.destroy.bind(self);\n nips.ids = self.ids;\n nips.id = self.id;\n nips.processOnMove = self.processOnMove.bind(self);\n nips.processOnEnd = self.processOnEnd.bind(self);\n nips.get = function (id) {\n if (id === undefined) {\n return nips[0];\n }\n for (var i = 0, max = nips.length; i < max; i += 1) {\n if (nips[i].identifier === id) {\n return nips[i];\n }\n }\n return false;\n };\n};\n\nCollection.prototype.bindings = function () {\n var self = this;\n // Touch start event.\n self.bindEvt(self.options.zone, 'start');\n // Avoid native touch actions (scroll, zoom etc...) on the zone.\n self.options.zone.style.touchAction = 'none';\n self.options.zone.style.msTouchAction = 'none';\n};\n\nCollection.prototype.begin = function () {\n var self = this;\n var opts = self.options;\n\n // We place our static nipple\n // if needed.\n if (opts.mode === 'static') {\n var nipple = self.createNipple(\n opts.position,\n self.manager.getIdentifier()\n );\n // Add it to the dom.\n nipple.add();\n // Store it in idles.\n self.idles.push(nipple);\n }\n};\n\n// Nipple Factory\nCollection.prototype.createNipple = function (position, identifier) {\n var self = this;\n var scroll = u.getScroll();\n var toPutOn = {};\n var opts = self.options;\n\n if (position.x && position.y) {\n toPutOn = {\n x: position.x -\n (scroll.x + self.box.left),\n y: position.y -\n (scroll.y + self.box.top)\n };\n } else if (\n position.top ||\n position.right ||\n position.bottom ||\n position.left\n ) {\n\n // We need to compute the position X / Y of the joystick.\n var dumb = document.createElement('DIV');\n dumb.style.display = 'hidden';\n dumb.style.top = position.top;\n dumb.style.right = position.right;\n dumb.style.bottom = position.bottom;\n dumb.style.left = position.left;\n dumb.style.position = 'absolute';\n\n opts.zone.appendChild(dumb);\n var dumbBox = dumb.getBoundingClientRect();\n opts.zone.removeChild(dumb);\n\n toPutOn = position;\n position = {\n x: dumbBox.left + scroll.x,\n y: dumbBox.top + scroll.y\n };\n }\n\n var nipple = new Nipple(self, {\n color: opts.color,\n size: opts.size,\n threshold: opts.threshold,\n fadeTime: opts.fadeTime,\n dataOnly: opts.dataOnly,\n restJoystick: opts.restJoystick,\n restOpacity: opts.restOpacity,\n mode: opts.mode,\n identifier: identifier,\n position: position,\n zone: opts.zone,\n frontPosition: {\n x: 0,\n y: 0\n }\n });\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.el, toPutOn);\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n self.nipples.push(nipple);\n self.trigger('added ' + nipple.identifier + ':added', nipple);\n self.manager.trigger('added ' + nipple.identifier + ':added', nipple);\n\n self.bindNipple(nipple);\n\n return nipple;\n};\n\nCollection.prototype.updateBox = function () {\n var self = this;\n self.box = self.options.zone.getBoundingClientRect();\n};\n\nCollection.prototype.bindNipple = function (nipple) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's id.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed.\n nipple.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n nipple.on('shown hidden rested dir plain', handler);\n nipple.on('dir:up dir:right dir:down dir:left', handler);\n nipple.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nCollection.prototype.pressureFn = function (touch, nipple, identifier) {\n var self = this;\n var previousPressure = 0;\n clearInterval(self.pressureIntervals[identifier]);\n // Create an interval that will read the pressure every 100ms\n self.pressureIntervals[identifier] = setInterval(function () {\n var pressure = touch.force || touch.pressure ||\n touch.webkitForce || 0;\n if (pressure !== previousPressure) {\n nipple.trigger('pressure', pressure);\n self.trigger('pressure ' +\n nipple.identifier + ':pressure', pressure);\n previousPressure = pressure;\n }\n }.bind(self), 100);\n};\n\nCollection.prototype.onstart = function (evt) {\n var self = this;\n var opts = self.options;\n evt = u.prepareEvent(evt);\n\n // Update the box position\n self.updateBox();\n\n var process = function (touch) {\n // If we can create new nipples\n // meaning we don't have more active nipples than we should.\n if (self.actives.length < opts.maxNumberOfNipples) {\n self.processOnStart(touch);\n }\n };\n\n u.map(evt, process);\n\n // We ask upstream to bind the document\n // on 'move' and 'end'\n self.manager.bindDocument();\n return false;\n};\n\nCollection.prototype.processOnStart = function (evt) {\n var self = this;\n var opts = self.options;\n var indexInIdles;\n var identifier = self.manager.getIdentifier(evt);\n var pressure = evt.force || evt.pressure || evt.webkitForce || 0;\n var position = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var nipple = self.getOrCreate(identifier, position);\n\n // Update its touch identifier\n if (nipple.identifier !== identifier) {\n self.manager.removeIdentifier(nipple.identifier);\n }\n nipple.identifier = identifier;\n\n var process = function (nip) {\n // Trigger the start.\n nip.trigger('start', nip);\n self.trigger('start ' + nip.id + ':start', nip);\n\n nip.show();\n if (pressure > 0) {\n self.pressureFn(evt, nip, nip.identifier);\n }\n // Trigger the first move event.\n self.processOnMove(evt);\n };\n\n // Transfer it from idles to actives.\n if ((indexInIdles = self.idles.indexOf(nipple)) >= 0) {\n self.idles.splice(indexInIdles, 1);\n }\n\n // Store the nipple in the actives array\n self.actives.push(nipple);\n self.ids.push(nipple.identifier);\n\n if (opts.mode !== 'semi') {\n process(nipple);\n } else {\n // In semi we check the distance of the touch\n // to decide if we have to reset the nipple\n var distance = u.distance(position, nipple.position);\n if (distance <= opts.catchDistance) {\n process(nipple);\n } else {\n nipple.destroy();\n self.processOnStart(evt);\n return;\n }\n }\n\n return nipple;\n};\n\nCollection.prototype.getOrCreate = function (identifier, position) {\n var self = this;\n var opts = self.options;\n var nipple;\n\n // If we're in static or semi, we might already have an active.\n if (/(semi|static)/.test(opts.mode)) {\n // Get the active one.\n // TODO: Multi-touche for semi and static will start here.\n // Return the nearest one.\n nipple = self.idles[0];\n if (nipple) {\n self.idles.splice(0, 1);\n return nipple;\n }\n\n if (opts.mode === 'semi') {\n // If we're in semi mode, we need to create one.\n return self.createNipple(position, identifier);\n }\n\n console.warn('Coudln\\'t find the needed nipple.');\n return false;\n }\n // In dynamic, we create a new one.\n nipple = self.createNipple(position, identifier);\n return nipple;\n};\n\nCollection.prototype.processOnMove = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n\n if (!nipple) {\n // This is here just for safety.\n // It shouldn't happen.\n console.error('Found zombie joystick with ID ' + identifier);\n self.manager.removeIdentifier(identifier);\n return;\n }\n\n nipple.identifier = identifier;\n\n var size = nipple.options.size / 2;\n var pos = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var dist = u.distance(pos, nipple.position);\n var angle = u.angle(pos, nipple.position);\n var rAngle = u.radians(angle);\n var force = dist / size;\n\n // If distance is bigger than nipple's size\n // we clamp the position.\n if (dist > size) {\n dist = size;\n pos = u.findCoord(nipple.position, dist, angle);\n }\n\n var xPosition = pos.x - nipple.position.x\n var yPosition = pos.y - nipple.position.y\n\n if (opts.lockX){\n yPosition = 0\n }\n if (opts.lockY) {\n xPosition = 0\n }\n\n nipple.frontPosition = {\n x: xPosition,\n y: yPosition\n };\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n\n // Prepare event's datas.\n var toSend = {\n identifier: nipple.identifier,\n position: pos,\n force: force,\n pressure: evt.force || evt.pressure || evt.webkitForce || 0,\n distance: dist,\n angle: {\n radian: rAngle,\n degree: angle\n },\n instance: nipple,\n lockX: opts.lockX,\n lockY: opts.lockY\n };\n\n // Compute the direction's datas.\n toSend = nipple.computeDirection(toSend);\n\n // Offset angles to follow units circle.\n toSend.angle = {\n radian: u.radians(180 - angle),\n degree: 180 - angle\n };\n\n // Send everything to everyone.\n nipple.trigger('move', toSend);\n self.trigger('move ' + nipple.id + ':move', toSend);\n};\n\nCollection.prototype.processOnEnd = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n var removedIdentifier = self.manager.removeIdentifier(nipple.identifier);\n\n if (!nipple) {\n return;\n }\n\n if (!opts.dataOnly) {\n nipple.hide(function () {\n if (opts.mode === 'dynamic') {\n nipple.trigger('removed', nipple);\n self.trigger('removed ' + nipple.id + ':removed', nipple);\n self.manager\n .trigger('removed ' + nipple.id + ':removed', nipple);\n nipple.destroy();\n }\n });\n }\n\n // Clear the pressure interval reader\n clearInterval(self.pressureIntervals[nipple.identifier]);\n\n // Reset the direciton of the nipple, to be able to trigger a new direction\n // on start.\n nipple.resetDirection();\n\n nipple.trigger('end', nipple);\n self.trigger('end ' + nipple.id + ':end', nipple);\n\n // Remove identifier from our bank.\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Clean our actives array.\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n\n if (/(semi|static)/.test(opts.mode)) {\n // Transfer nipple from actives to idles\n // if we're in semi or static mode.\n self.idles.push(nipple);\n } else if (self.nipples.indexOf(nipple) >= 0) {\n // Only if we're not in semi or static mode\n // we can remove the instance.\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n\n // We unbind move and end.\n self.manager.unbindDocument();\n\n // We add back the identifier of the idle nipple;\n if (/(semi|static)/.test(opts.mode)) {\n self.manager.ids[removedIdentifier.id] = removedIdentifier.identifier;\n }\n};\n\n// Remove destroyed nipple from the lists\nCollection.prototype.onDestroyed = function(evt, nipple) {\n var self = this;\n if (self.nipples.indexOf(nipple) >= 0) {\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n if (self.idles.indexOf(nipple) >= 0) {\n self.idles.splice(self.idles.indexOf(nipple), 1);\n }\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Remove the identifier from our bank\n self.manager.removeIdentifier(nipple.identifier);\n\n // We unbind move and end.\n self.manager.unbindDocument();\n};\n\n// Cleanly destroy the manager\nCollection.prototype.destroy = function () {\n var self = this;\n self.unbindEvt(self.options.zone, 'start');\n\n // Destroy nipples.\n self.nipples.forEach(function(nipple) {\n nipple.destroy();\n });\n\n // Clean 3DTouch intervals.\n for (var i in self.pressureIntervals) {\n if (self.pressureIntervals.hasOwnProperty(i)) {\n clearInterval(self.pressureIntervals[i]);\n }\n }\n\n // Notify the manager passing the instance\n self.trigger('destroyed', self.nipples);\n // We unbind move and end.\n self.manager.unbindDocument();\n // Unbind everything.\n self.off();\n};\n\n/* global u, Super, Collection */\n\n///////////////////////\n/// MANAGER ///\n///////////////////////\n\nfunction Manager (options) {\n var self = this;\n self.ids = {};\n self.index = 0;\n self.collections = [];\n\n self.config(options);\n self.prepareCollections();\n\n // Listen for resize, to reposition every joysticks\n var resizeTimer;\n u.bindEvt(window, 'resize', function (evt) {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(function () {\n var pos;\n var scroll = u.getScroll();\n self.collections.forEach(function (collection) {\n collection.forEach(function (nipple) {\n pos = nipple.el.getBoundingClientRect();\n nipple.position = {\n x: scroll.x + pos.left,\n y: scroll.y + pos.top\n };\n });\n });\n }, 100);\n });\n\n return self.collections;\n};\n\nManager.prototype = new Super();\nManager.constructor = Manager;\n\nManager.prototype.prepareCollections = function () {\n var self = this;\n // Public API Preparation.\n self.collections.create = self.create.bind(self);\n // Listen to anything\n self.collections.on = self.on.bind(self);\n // Unbind general events\n self.collections.off = self.off.bind(self);\n // Destroy everything\n self.collections.destroy = self.destroy.bind(self);\n // Get any nipple\n self.collections.get = function (id) {\n var nipple;\n self.collections.every(function (collection) {\n if (nipple = collection.get(id)) {\n return false;\n }\n return true;\n });\n return nipple;\n };\n};\n\nManager.prototype.create = function (options) {\n return this.createCollection(options);\n};\n\n// Collection Factory\nManager.prototype.createCollection = function (options) {\n var self = this;\n var collection = new Collection(self, options);\n\n self.bindCollection(collection);\n self.collections.push(collection);\n\n return collection;\n};\n\nManager.prototype.bindCollection = function (collection) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's identifier.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed we clean.\n collection.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n collection.on('shown hidden rested dir plain', handler);\n collection.on('dir:up dir:right dir:down dir:left', handler);\n collection.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nManager.prototype.bindDocument = function () {\n var self = this;\n // Bind only if not already binded\n if (!self.binded) {\n self.bindEvt(document, 'move')\n .bindEvt(document, 'end');\n self.binded = true;\n }\n};\n\nManager.prototype.unbindDocument = function (force) {\n var self = this;\n // If there are no touch left\n // unbind the document.\n if (!Object.keys(self.ids).length || force === true) {\n self.unbindEvt(document, 'move')\n .unbindEvt(document, 'end');\n self.binded = false;\n }\n};\n\nManager.prototype.getIdentifier = function (evt) {\n var id;\n // If no event, simple increment\n if (!evt) {\n id = this.index;\n } else {\n // Extract identifier from event object.\n // Unavailable in mouse events so replaced by latest increment.\n id = evt.identifier === undefined ? evt.pointerId : evt.identifier;\n if (id === undefined) {\n id = this.latest || 0;\n }\n }\n\n if (this.ids[id] === undefined) {\n this.ids[id] = this.index;\n this.index += 1;\n }\n\n // Keep the latest id used in case we're using an unidentified mouseEvent\n this.latest = id;\n return this.ids[id];\n};\n\nManager.prototype.removeIdentifier = function (identifier) {\n var removed = {};\n for (var id in this.ids) {\n if (this.ids[id] === identifier) {\n removed.id = id;\n removed.identifier = this.ids[id];\n delete this.ids[id];\n break;\n }\n }\n return removed;\n};\n\nManager.prototype.onmove = function (evt) {\n var self = this;\n self.onAny('move', evt);\n return false;\n};\n\nManager.prototype.onend = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.oncancel = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.onAny = function (which, evt) {\n var self = this;\n var id;\n var processFn = 'processOn' + which.charAt(0).toUpperCase() +\n which.slice(1);\n evt = u.prepareEvent(evt);\n var processColl = function (e, id, coll) {\n if (coll.ids.indexOf(id) >= 0) {\n coll[processFn](e);\n // Mark the event to avoid cleaning it later.\n e._found_ = true;\n }\n };\n var processEvt = function (e) {\n id = self.getIdentifier(e);\n u.map(self.collections, processColl.bind(null, e, id));\n // If the event isn't handled by any collection,\n // we need to clean its identifier.\n if (!e._found_) {\n self.removeIdentifier(id);\n }\n };\n\n u.map(evt, processEvt);\n\n return false;\n};\n\n// Cleanly destroy the manager\nManager.prototype.destroy = function () {\n var self = this;\n self.unbindDocument(true);\n self.ids = {};\n self.index = 0;\n self.collections.forEach(function(collection) {\n collection.destroy();\n });\n self.off();\n};\n\n// When a collection gets destroyed\n// we clean behind.\nManager.prototype.onDestroyed = function (evt, coll) {\n var self = this;\n if (self.collections.indexOf(coll) < 0) {\n return false;\n }\n self.collections.splice(self.collections.indexOf(coll), 1);\n};\n\nvar factory = new Manager();\nreturn {\n create: function (options) {\n return factory.create(options);\n },\n factory: factory\n};\n\n});\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","/**\r\n * Returns the object type of the given payload\r\n *\r\n * @param {*} payload\r\n * @returns {string}\r\n */\r\nfunction getType(payload) {\r\n return Object.prototype.toString.call(payload).slice(8, -1);\r\n}\r\n/**\r\n * Returns whether the payload is undefined\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isUndefined(payload) {\r\n return getType(payload) === 'Undefined';\r\n}\r\n/**\r\n * Returns whether the payload is null\r\n *\r\n * @param {*} payload\r\n * @returns {payload is null}\r\n */\r\nfunction isNull(payload) {\r\n return getType(payload) === 'Null';\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isPlainObject(payload) {\r\n if (getType(payload) !== 'Object')\r\n return false;\r\n return (payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype);\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isObject(payload) {\r\n return isPlainObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isAnyObject(payload) {\r\n return getType(payload) === 'Object';\r\n}\r\n/**\r\n * Returns whether the payload is an object like a type passed in < >\r\n *\r\n * Usage: isObjectLike<{id: any}>(payload) // will make sure it's an object and has an `id` prop.\r\n *\r\n * @template T this must be passed in < >\r\n * @param {*} payload\r\n * @returns {payload is T}\r\n */\r\nfunction isObjectLike(payload) {\r\n return isAnyObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a function\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Function}\r\n */\r\nfunction isFunction(payload) {\r\n return getType(payload) === 'Function';\r\n}\r\n/**\r\n * Returns whether the payload is an array\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isArray(payload) {\r\n return getType(payload) === 'Array';\r\n}\r\n/**\r\n * Returns whether the payload is a string\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isString(payload) {\r\n return getType(payload) === 'String';\r\n}\r\n/**\r\n * Returns whether the payload is a string, BUT returns false for ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isFullString(payload) {\r\n return isString(payload) && payload !== '';\r\n}\r\n/**\r\n * Returns whether the payload is ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isEmptyString(payload) {\r\n return payload === '';\r\n}\r\n/**\r\n * Returns whether the payload is a number\r\n *\r\n * This will return false for NaN\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\r\nfunction isNumber(payload) {\r\n return (getType(payload) === 'Number' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a boolean\r\n *\r\n * @param {*} payload\r\n * @returns {payload is boolean}\r\n */\r\nfunction isBoolean(payload) {\r\n return getType(payload) === 'Boolean';\r\n}\r\n/**\r\n * Returns whether the payload is a regular expression\r\n *\r\n * @param {*} payload\r\n * @returns {payload is RegExp}\r\n */\r\nfunction isRegExp(payload) {\r\n return getType(payload) === 'RegExp';\r\n}\r\n/**\r\n * Returns whether the payload is a date, and that the date is Valid\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Date}\r\n */\r\nfunction isDate(payload) {\r\n return (getType(payload) === 'Date' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a Symbol\r\n *\r\n * @param {*} payload\r\n * @returns {payload is symbol}\r\n */\r\nfunction isSymbol(payload) {\r\n return (getType(payload) === 'Symbol');\r\n}\r\n/**\r\n * Returns whether the payload is a primitive type (eg. Boolean | Null | Undefined | Number | String | Symbol)\r\n *\r\n * @param {*} payload\r\n * @returns {(payload is boolean | null | undefined | number | string | symbol)}\r\n */\r\nfunction isPrimitive(payload) {\r\n return (isBoolean(payload) ||\r\n isNull(payload) ||\r\n isUndefined(payload) ||\r\n isNumber(payload) ||\r\n isString(payload) ||\r\n isSymbol(payload));\r\n}\r\n/**\r\n * Does a generic check to check that the given payload is of a given type.\r\n * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!);\r\n * It will, however, differentiate between object and null\r\n *\r\n * @template T\r\n * @param {*} payload\r\n * @param {T} type\r\n * @throws {TypeError} Will throw type error if type is an invalid type\r\n * @returns {payload is T}\r\n */\r\nfunction isType(payload, type) {\r\n if (!(type instanceof Function)) {\r\n throw new TypeError('Type must be a function');\r\n }\r\n if (!type.hasOwnProperty('prototype')) {\r\n throw new TypeError('Type is not a class');\r\n }\r\n // Classes usually have names (as functions usually have names)\r\n var name = type.name;\r\n return (getType(payload) === name) || Boolean(payload && (payload.constructor === type));\r\n}\n\nexport { getType, isUndefined, isNull, isPlainObject, isObject, isAnyObject, isObjectLike, isFunction, isArray, isString, isFullString, isEmptyString, isNumber, isBoolean, isRegExp, isDate, isSymbol, isPrimitive, isType };\n","import { isArray, isPlainObject, isSymbol } from 'is-what';\n\nfunction assignProp(carry, key, newVal, originalObject) {\r\n var propType = originalObject.propertyIsEnumerable(key)\r\n ? 'enumerable'\r\n : 'nonenumerable';\r\n if (propType === 'enumerable')\r\n carry[key] = newVal;\r\n if (propType === 'nonenumerable') {\r\n Object.defineProperty(carry, key, {\r\n value: newVal,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n });\r\n }\r\n}\r\nfunction mergeRecursively(origin, newComer, extensions) {\r\n // work directly on newComer if its not an object\r\n if (!isPlainObject(newComer)) {\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newComer = extend(origin, newComer);\r\n });\r\n }\r\n return newComer;\r\n }\r\n // define newObject to merge all values upon\r\n var newObject = {};\r\n if (isPlainObject(origin)) {\r\n var props_1 = Object.getOwnPropertyNames(origin);\r\n var symbols_1 = Object.getOwnPropertySymbols(origin);\r\n newObject = props_1.concat(symbols_1).reduce(function (carry, key) {\r\n // @ts-ignore\r\n var targetVal = origin[key];\r\n if ((!isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key)) ||\r\n (isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key))) {\r\n assignProp(carry, key, targetVal, origin);\r\n }\r\n return carry;\r\n }, {});\r\n }\r\n var props = Object.getOwnPropertyNames(newComer);\r\n var symbols = Object.getOwnPropertySymbols(newComer);\r\n var result = props.concat(symbols).reduce(function (carry, key) {\r\n // re-define the origin and newComer as targetVal and newVal\r\n var newVal = newComer[key];\r\n var targetVal = (isPlainObject(origin))\r\n // @ts-ignore\r\n ? origin[key]\r\n : undefined;\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newVal = extend(targetVal, newVal);\r\n });\r\n }\r\n // When newVal is an object do the merge recursively\r\n if (targetVal !== undefined && isPlainObject(newVal)) {\r\n newVal = mergeRecursively(targetVal, newVal, extensions);\r\n }\r\n assignProp(carry, key, newVal, newComer);\r\n return carry;\r\n }, newObject);\r\n return result;\r\n}\r\n/**\r\n * Merge anything recursively.\r\n * Objects get merged, special objects (classes etc.) are re-assigned \"as is\".\r\n * Basic types overwrite objects or other basic types.\r\n *\r\n * @param {(IConfig | any)} origin\r\n * @param {...any[]} newComers\r\n * @returns the result\r\n */\r\nfunction merge(origin) {\r\n var newComers = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n newComers[_i - 1] = arguments[_i];\r\n }\r\n var extensions = null;\r\n var base = origin;\r\n if (isPlainObject(origin) && origin.extensions && Object.keys(origin).length === 1) {\r\n base = {};\r\n extensions = origin.extensions;\r\n }\r\n return newComers.reduce(function (result, newComer) {\r\n return mergeRecursively(result, newComer, extensions);\r\n }, base);\r\n}\n\nfunction concatArrays(originVal, newVal) {\r\n if (isArray(originVal) && isArray(newVal)) {\r\n // concat logic\r\n return originVal.concat(newVal);\r\n }\r\n return newVal; // always return newVal as fallback!!\r\n}\n\nexport default merge;\nexport { merge, concatArrays };\n","/** @license React v16.8.6\n * react-is.production.min.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'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (colorNames.hasOwnProperty(name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar keyword = /(\\D+)/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\n\t\tif (!rgb) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = (parseFloat(match[1]) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = num.toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function () { /* empty */ };\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","/**\n * @ignore\n * event object for dom\n * @author yiminghe@gmail.com\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventBaseObject = require('./EventBaseObject');\n\nvar _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar TRUE = true;\nvar FALSE = false;\nvar commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];\n\nfunction isNullOrUndefined(w) {\n return w === null || w === undefined;\n}\n\nvar eventNormalizers = [{\n reg: /^key/,\n props: ['char', 'charCode', 'key', 'keyCode', 'which'],\n fix: function fix(event, nativeEvent) {\n if (isNullOrUndefined(event.which)) {\n event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;\n }\n\n // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)\n if (event.metaKey === undefined) {\n event.metaKey = event.ctrlKey;\n }\n }\n}, {\n reg: /^touch/,\n props: ['touches', 'changedTouches', 'targetTouches']\n}, {\n reg: /^hashchange$/,\n props: ['newURL', 'oldURL']\n}, {\n reg: /^gesturechange$/i,\n props: ['rotation', 'scale']\n}, {\n reg: /^(mousewheel|DOMMouseScroll)$/,\n props: [],\n fix: function fix(event, nativeEvent) {\n var deltaX = undefined;\n var deltaY = undefined;\n var delta = undefined;\n var wheelDelta = nativeEvent.wheelDelta;\n var axis = nativeEvent.axis;\n var wheelDeltaY = nativeEvent.wheelDeltaY;\n var wheelDeltaX = nativeEvent.wheelDeltaX;\n var detail = nativeEvent.detail;\n\n // ie/webkit\n if (wheelDelta) {\n delta = wheelDelta / 120;\n }\n\n // gecko\n if (detail) {\n // press control e.detail == 1 else e.detail == 3\n delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);\n }\n\n // Gecko\n if (axis !== undefined) {\n if (axis === event.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = 0 - delta;\n } else if (axis === event.VERTICAL_AXIS) {\n deltaX = 0;\n deltaY = delta;\n }\n }\n\n // Webkit\n if (wheelDeltaY !== undefined) {\n deltaY = wheelDeltaY / 120;\n }\n if (wheelDeltaX !== undefined) {\n deltaX = -1 * wheelDeltaX / 120;\n }\n\n // 默认 deltaY (ie)\n if (!deltaX && !deltaY) {\n deltaY = delta;\n }\n\n if (deltaX !== undefined) {\n /**\n * deltaX of mousewheel event\n * @property deltaX\n * @member Event.DomEvent.Object\n */\n event.deltaX = deltaX;\n }\n\n if (deltaY !== undefined) {\n /**\n * deltaY of mousewheel event\n * @property deltaY\n * @member Event.DomEvent.Object\n */\n event.deltaY = deltaY;\n }\n\n if (delta !== undefined) {\n /**\n * delta of mousewheel event\n * @property delta\n * @member Event.DomEvent.Object\n */\n event.delta = delta;\n }\n }\n}, {\n reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,\n props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],\n fix: function fix(event, nativeEvent) {\n var eventDoc = undefined;\n var doc = undefined;\n var body = undefined;\n var target = event.target;\n var button = nativeEvent.button;\n\n // Calculate pageX/Y if missing and clientX/Y available\n if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {\n eventDoc = target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // which for click: 1 === left; 2 === middle; 3 === right\n // do not use button\n if (!event.which && button !== undefined) {\n if (button & 1) {\n event.which = 1;\n } else if (button & 2) {\n event.which = 3;\n } else if (button & 4) {\n event.which = 2;\n } else {\n event.which = 0;\n }\n }\n\n // add relatedTarget, if necessary\n if (!event.relatedTarget && event.fromElement) {\n event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;\n }\n\n return event;\n }\n}];\n\nfunction retTrue() {\n return TRUE;\n}\n\nfunction retFalse() {\n return FALSE;\n}\n\nfunction DomEventObject(nativeEvent) {\n var type = nativeEvent.type;\n\n var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';\n\n _EventBaseObject2['default'].call(this);\n\n this.nativeEvent = nativeEvent;\n\n // in case dom event has been mark as default prevented by lower dom node\n var isDefaultPrevented = retFalse;\n if ('defaultPrevented' in nativeEvent) {\n isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;\n } else if ('getPreventDefault' in nativeEvent) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=691151\n isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;\n } else if ('returnValue' in nativeEvent) {\n isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;\n }\n\n this.isDefaultPrevented = isDefaultPrevented;\n\n var fixFns = [];\n var fixFn = undefined;\n var l = undefined;\n var prop = undefined;\n var props = commonProps.concat();\n\n eventNormalizers.forEach(function (normalizer) {\n if (type.match(normalizer.reg)) {\n props = props.concat(normalizer.props);\n if (normalizer.fix) {\n fixFns.push(normalizer.fix);\n }\n }\n });\n\n l = props.length;\n\n // clone properties of the original event object\n while (l) {\n prop = props[--l];\n this[prop] = nativeEvent[prop];\n }\n\n // fix target property, if necessary\n if (!this.target && isNative) {\n this.target = nativeEvent.srcElement || document; // srcElement might not be defined either\n }\n\n // check if target is a text node (safari)\n if (this.target && this.target.nodeType === 3) {\n this.target = this.target.parentNode;\n }\n\n l = fixFns.length;\n\n while (l) {\n fixFn = fixFns[--l];\n fixFn(this, nativeEvent);\n }\n\n this.timeStamp = nativeEvent.timeStamp || Date.now();\n}\n\nvar EventBaseObjectProto = _EventBaseObject2['default'].prototype;\n\n(0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {\n constructor: DomEventObject,\n\n preventDefault: function preventDefault() {\n var e = this.nativeEvent;\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n // otherwise set the returnValue property of the original event to FALSE (IE)\n e.returnValue = FALSE;\n }\n\n EventBaseObjectProto.preventDefault.call(this);\n },\n\n stopPropagation: function stopPropagation() {\n var e = this.nativeEvent;\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n } else {\n // otherwise set the cancelBubble property of the original event to TRUE (IE)\n e.cancelBubble = TRUE;\n }\n\n EventBaseObjectProto.stopPropagation.call(this);\n }\n});\n\nexports['default'] = DomEventObject;\nmodule.exports = exports['default'];","/**\n * @ignore\n * base event object for custom and dom event.\n * @author yiminghe@gmail.com\n */\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction returnFalse() {\n return false;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction EventBaseObject() {\n this.timeStamp = Date.now();\n this.target = undefined;\n this.currentTarget = undefined;\n}\n\nEventBaseObject.prototype = {\n isEventObject: 1,\n\n constructor: EventBaseObject,\n\n isDefaultPrevented: returnFalse,\n\n isPropagationStopped: returnFalse,\n\n isImmediatePropagationStopped: returnFalse,\n\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n },\n\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n },\n\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n // fixed 1.2\n // call stopPropagation implicitly\n this.stopPropagation();\n },\n\n halt: function halt(immediate) {\n if (immediate) {\n this.stopImmediatePropagation();\n } else {\n this.stopPropagation();\n }\n this.preventDefault();\n }\n};\n\nexports[\"default\"] = EventBaseObject;\nmodule.exports = exports[\"default\"];","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\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","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n","var api = require(\"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../css-loader/dist/cjs.js!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function insertAtTop(element) {\n\t\t\t\t document.head.insertBefore(element, document.head.firstElementChild);\n\t\t\t\t};\noptions.singleton = false;\n\nvar update = api(content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;","\"use strict\";\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 = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\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 && btoa) {\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 ';\n };\n};\n\n/* takes a css factory function and outputs an element factory */\nvar wrapAsElement = function wrapAsElement(css, names) {\n return function () {\n var _props;\n\n var props = (_props = {}, _props[SC_ATTR] = stringifyNames(names), _props[SC_VERSION_ATTR] = \"4.4.0\", _props);\n\n var nonce = getNonce();\n if (nonce) {\n // $FlowFixMe\n props.nonce = nonce;\n }\n\n // eslint-disable-next-line react/no-danger\n return React.createElement('style', _extends({}, props, { dangerouslySetInnerHTML: { __html: css() } }));\n };\n};\n\nvar getIdsFromMarkersFactory = function getIdsFromMarkersFactory(markers) {\n return function () {\n return Object.keys(markers);\n };\n};\n\n/* speedy tags utilise insertRule */\nvar makeSpeedyTag = function makeSpeedyTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var sizes = [];\n\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = sizes.length;\n sizes.push(0);\n resetIdNames(names, id);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var sheet = sheetForTag(el);\n var insertIndex = addUpUntilIndex(sizes, marker);\n\n var injectedRules = 0;\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = cssRules[i];\n var mayHaveImport = extractImport; /* @import rules are reordered to appear first */\n if (mayHaveImport && cssRule.indexOf('@import') !== -1) {\n importRules.push(cssRule);\n } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n mayHaveImport = false;\n injectedRules += 1;\n }\n }\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n\n sizes[marker] += injectedRules; /* add up no of injected rules */\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n // $FlowFixMe\n if (el.isConnected === false) return;\n\n var size = sizes[marker];\n var sheet = sheetForTag(el);\n var removalIndex = addUpUntilIndex(sizes, marker) - 1;\n deleteRules(sheet, removalIndex, size);\n sizes[marker] = 0;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var _sheetForTag = sheetForTag(el),\n cssRules = _sheetForTag.cssRules;\n\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += makeTextMarker(id);\n var marker = markers[id];\n var end = addUpUntilIndex(sizes, marker);\n var size = sizes[marker];\n for (var i = end - size; i < end; i += 1) {\n var rule = cssRules[i];\n if (rule !== undefined) {\n str += rule.cssText;\n }\n }\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeTextNode = function makeTextNode(targetDocument, id) {\n return targetDocument.createTextNode(makeTextMarker(id));\n};\n\nvar makeBrowserTag = function makeBrowserTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n\n var extractImport = getImportRuleTag !== undefined;\n\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = makeTextNode(el.ownerDocument, id);\n el.appendChild(markers[id]);\n names[id] = Object.create(null);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var rule = cssRules[i];\n var mayHaveImport = extractImport;\n if (mayHaveImport && rule.indexOf('@import') !== -1) {\n importRules.push(rule);\n } else {\n mayHaveImport = false;\n var separator = i === cssRulesSize - 1 ? '' : ' ';\n marker.appendData('' + rule + separator);\n }\n }\n\n addNameForId(names, id, name);\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n\n /* create new empty text node and replace the current one */\n var newMarker = makeTextNode(el.ownerDocument, id);\n el.replaceChild(newMarker, marker);\n markers[id] = newMarker;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += markers[id].data;\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeServerTag = function makeServerTag(namesArg, markersArg) {\n var names = namesArg === undefined ? Object.create(null) : namesArg;\n var markers = markersArg === undefined ? Object.create(null) : markersArg;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n return markers[id] = [''];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n marker[0] += cssRules.join(' ');\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n marker[0] = '';\n resetIdNames(names, id);\n };\n\n var css = function css() {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n var cssForId = markers[id][0];\n if (cssForId) {\n str += makeTextMarker(id) + cssForId;\n }\n }\n return str;\n };\n\n var clone = function clone() {\n var namesClone = cloneNames(names);\n var markersClone = Object.create(null);\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n markersClone[id] = [markers[id][0]];\n }\n\n return makeServerTag(namesClone, markersClone);\n };\n\n var tag = {\n clone: clone,\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: null,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n\n return tag;\n};\n\nvar makeTag = function makeTag(target, tagEl, forceServer, insertBefore, getImportRuleTag) {\n if (IS_BROWSER && !forceServer) {\n var el = makeStyleTag(target, tagEl, insertBefore);\n\n if (DISABLE_SPEEDY) {\n return makeBrowserTag(el, getImportRuleTag);\n } else {\n return makeSpeedyTag(el, getImportRuleTag);\n }\n }\n\n return makeServerTag();\n};\n\nvar rehydrate = function rehydrate(tag, els, extracted) {\n /* add all extracted components to the new tag */\n for (var i = 0, len = extracted.length; i < len; i += 1) {\n var _extracted$i = extracted[i],\n componentId = _extracted$i.componentId,\n cssFromDOM = _extracted$i.cssFromDOM;\n\n var cssRules = splitByRules(cssFromDOM);\n tag.insertRules(componentId, cssRules);\n }\n\n /* remove old HTMLStyleElements, since they have been rehydrated */\n for (var _i = 0, _len = els.length; _i < _len; _i += 1) {\n var el = els[_i];\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n};\n\n// \n\nvar SPLIT_REGEX = /\\s+/;\n\n/* determine the maximum number of components before tags are sharded */\nvar MAX_SIZE = void 0;\nif (IS_BROWSER) {\n /* in speedy mode we can keep a lot more rules in a sheet before a slowdown can be expected */\n MAX_SIZE = DISABLE_SPEEDY ? 40 : 1000;\n} else {\n /* for servers we do not need to shard at all */\n MAX_SIZE = -1;\n}\n\nvar sheetRunningId = 0;\nvar master = void 0;\n\nvar StyleSheet = function () {\n\n /* a map from ids to tags */\n\n /* deferred rules for a given id */\n\n /* this is used for not reinjecting rules via hasNameForId() */\n\n /* when rules for an id are removed using remove() we have to ignore rehydratedNames for it */\n\n /* a list of tags belonging to this StyleSheet */\n\n /* a tag for import rules */\n\n /* current capacity until a new tag must be created */\n\n /* children (aka clones) of this StyleSheet inheriting all and future injections */\n\n function StyleSheet() {\n var _this = this;\n\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : IS_BROWSER ? document.head : null;\n var forceServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n classCallCheck(this, StyleSheet);\n\n this.getImportRuleTag = function () {\n var importRuleTag = _this.importRuleTag;\n\n if (importRuleTag !== undefined) {\n return importRuleTag;\n }\n\n var firstTag = _this.tags[0];\n var insertBefore = true;\n\n return _this.importRuleTag = makeTag(_this.target, firstTag ? firstTag.styleTag : null, _this.forceServer, insertBefore);\n };\n\n sheetRunningId += 1;\n this.id = sheetRunningId;\n this.forceServer = forceServer;\n this.target = forceServer ? null : target;\n this.tagMap = {};\n this.deferred = {};\n this.rehydratedNames = {};\n this.ignoreRehydratedNames = {};\n this.tags = [];\n this.capacity = 1;\n this.clones = [];\n }\n\n /* rehydrate all SSR'd style tags */\n\n\n StyleSheet.prototype.rehydrate = function rehydrate$$1() {\n if (!IS_BROWSER || this.forceServer) return this;\n\n var els = [];\n var extracted = [];\n var isStreamed = false;\n\n /* retrieve all of our SSR style elements from the DOM */\n var nodes = document.querySelectorAll('style[' + SC_ATTR + '][' + SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"]');\n\n var nodesSize = nodes.length;\n\n /* abort rehydration if no previous style tags were found */\n if (!nodesSize) return this;\n\n for (var i = 0; i < nodesSize; i += 1) {\n var el = nodes[i];\n\n /* check if style tag is a streamed tag */\n if (!isStreamed) isStreamed = !!el.getAttribute(SC_STREAM_ATTR);\n\n /* retrieve all component names */\n var elNames = (el.getAttribute(SC_ATTR) || '').trim().split(SPLIT_REGEX);\n var elNamesSize = elNames.length;\n for (var j = 0, name; j < elNamesSize; j += 1) {\n name = elNames[j];\n /* add rehydrated name to sheet to avoid re-adding styles */\n this.rehydratedNames[name] = true;\n }\n\n /* extract all components and their CSS */\n extracted.push.apply(extracted, extractComps(el.textContent));\n\n /* store original HTMLStyleElement */\n els.push(el);\n }\n\n /* abort rehydration if nothing was extracted */\n var extractedSize = extracted.length;\n if (!extractedSize) return this;\n\n /* create a tag to be used for rehydration */\n var tag = this.makeTag(null);\n\n rehydrate(tag, els, extracted);\n\n /* reset capacity and adjust MAX_SIZE by the initial size of the rehydration */\n this.capacity = Math.max(1, MAX_SIZE - extractedSize);\n this.tags.push(tag);\n\n /* retrieve all component ids */\n for (var _j = 0; _j < extractedSize; _j += 1) {\n this.tagMap[extracted[_j].componentId] = tag;\n }\n\n return this;\n };\n\n /* retrieve a \"master\" instance of StyleSheet which is typically used when no other is available\n * The master StyleSheet is targeted by createGlobalStyle, keyframes, and components outside of any\n * StyleSheetManager's context */\n\n\n /* reset the internal \"master\" instance */\n StyleSheet.reset = function reset() {\n var forceServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n master = new StyleSheet(undefined, forceServer).rehydrate();\n };\n\n /* adds \"children\" to the StyleSheet that inherit all of the parents' rules\n * while their own rules do not affect the parent */\n\n\n StyleSheet.prototype.clone = function clone() {\n var sheet = new StyleSheet(this.target, this.forceServer);\n\n /* add to clone array */\n this.clones.push(sheet);\n\n /* clone all tags */\n sheet.tags = this.tags.map(function (tag) {\n var ids = tag.getIds();\n var newTag = tag.clone();\n\n /* reconstruct tagMap */\n for (var i = 0; i < ids.length; i += 1) {\n sheet.tagMap[ids[i]] = newTag;\n }\n\n return newTag;\n });\n\n /* clone other maps */\n sheet.rehydratedNames = _extends({}, this.rehydratedNames);\n sheet.deferred = _extends({}, this.deferred);\n\n return sheet;\n };\n\n /* force StyleSheet to create a new tag on the next injection */\n\n\n StyleSheet.prototype.sealAllTags = function sealAllTags() {\n this.capacity = 1;\n\n this.tags.forEach(function (tag) {\n // eslint-disable-next-line no-param-reassign\n tag.sealed = true;\n });\n };\n\n StyleSheet.prototype.makeTag = function makeTag$$1(tag) {\n var lastEl = tag ? tag.styleTag : null;\n var insertBefore = false;\n\n return makeTag(this.target, lastEl, this.forceServer, insertBefore, this.getImportRuleTag);\n };\n\n /* get a tag for a given componentId, assign the componentId to one, or shard */\n StyleSheet.prototype.getTagForId = function getTagForId(id) {\n /* simply return a tag, when the componentId was already assigned one */\n var prev = this.tagMap[id];\n if (prev !== undefined && !prev.sealed) {\n return prev;\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n /* shard (create a new tag) if the tag is exhausted (See MAX_SIZE) */\n this.capacity -= 1;\n\n if (this.capacity === 0) {\n this.capacity = MAX_SIZE;\n tag = this.makeTag(tag);\n this.tags.push(tag);\n }\n\n return this.tagMap[id] = tag;\n };\n\n /* mainly for createGlobalStyle to check for its id */\n\n\n StyleSheet.prototype.hasId = function hasId(id) {\n return this.tagMap[id] !== undefined;\n };\n\n /* caching layer checking id+name to already have a corresponding tag and injected rules */\n\n\n StyleSheet.prototype.hasNameForId = function hasNameForId(id, name) {\n /* exception for rehydrated names which are checked separately */\n if (this.ignoreRehydratedNames[id] === undefined && this.rehydratedNames[name]) {\n return true;\n }\n\n var tag = this.tagMap[id];\n return tag !== undefined && tag.hasNameForId(id, name);\n };\n\n /* registers a componentId and registers it on its tag */\n\n\n StyleSheet.prototype.deferredInject = function deferredInject(id, cssRules) {\n /* don't inject when the id is already registered */\n if (this.tagMap[id] !== undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].deferredInject(id, cssRules);\n }\n\n this.getTagForId(id).insertMarker(id);\n this.deferred[id] = cssRules;\n };\n\n /* injects rules for a given id with a name that will need to be cached */\n\n\n StyleSheet.prototype.inject = function inject(id, cssRules, name) {\n var clones = this.clones;\n\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].inject(id, cssRules, name);\n }\n\n var tag = this.getTagForId(id);\n\n /* add deferred rules for component */\n if (this.deferred[id] !== undefined) {\n // Combine passed cssRules with previously deferred CSS rules\n // NOTE: We cannot mutate the deferred array itself as all clones\n // do the same (see clones[i].inject)\n var rules = this.deferred[id].concat(cssRules);\n tag.insertRules(id, rules, name);\n\n this.deferred[id] = undefined;\n } else {\n tag.insertRules(id, cssRules, name);\n }\n };\n\n /* removes all rules for a given id, which doesn't remove its marker but resets it */\n\n\n StyleSheet.prototype.remove = function remove(id) {\n var tag = this.tagMap[id];\n if (tag === undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].remove(id);\n }\n\n /* remove all rules from the tag */\n tag.removeRules(id);\n\n /* ignore possible rehydrated names */\n this.ignoreRehydratedNames[id] = true;\n\n /* delete possible deferred rules */\n this.deferred[id] = undefined;\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n var id = this.id;\n\n\n return this.tags.map(function (tag, i) {\n var key = 'sc-' + id + '-' + i;\n return cloneElement(tag.toElement(), { key: key });\n });\n };\n\n createClass(StyleSheet, null, [{\n key: 'master',\n get: function get$$1() {\n return master || (master = new StyleSheet().rehydrate());\n }\n\n /* NOTE: This is just for backwards-compatibility with jest-styled-components */\n\n }, {\n key: 'instance',\n get: function get$$1() {\n return StyleSheet.master;\n }\n }]);\n return StyleSheet;\n}();\n\n// \n\nvar Keyframes = function () {\n function Keyframes(name, rules) {\n var _this = this;\n\n classCallCheck(this, Keyframes);\n\n this.inject = function (styleSheet) {\n if (!styleSheet.hasNameForId(_this.id, _this.name)) {\n styleSheet.inject(_this.id, _this.rules, _this.name);\n }\n };\n\n this.toString = function () {\n throw new StyledComponentsError(12, String(_this.name));\n };\n\n this.name = name;\n this.rules = rules;\n\n this.id = 'sc-keyframes-' + name;\n }\n\n Keyframes.prototype.getName = function getName() {\n return this.name;\n };\n\n return Keyframes;\n}();\n\n// \n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\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 * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return string.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\n// \n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nfunction addUnitIfNeeded(name, value) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n}\n\n// \n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nvar isFalsish = function isFalsish(chunk) {\n return chunk === undefined || chunk === null || chunk === false || chunk === '';\n};\n\nvar objToCssArray = function objToCssArray(obj, prevKey) {\n var rules = [];\n var keys = Object.keys(obj);\n\n keys.forEach(function (key) {\n if (!isFalsish(obj[key])) {\n if (isPlainObject(obj[key])) {\n rules.push.apply(rules, objToCssArray(obj[key], key));\n\n return rules;\n } else if (isFunction(obj[key])) {\n rules.push(hyphenateStyleName(key) + ':', obj[key], ';');\n\n return rules;\n }\n rules.push(hyphenateStyleName(key) + ': ' + addUnitIfNeeded(key, obj[key]) + ';');\n }\n return rules;\n });\n\n return prevKey ? [prevKey + ' {'].concat(rules, ['}']) : rules;\n};\n\nfunction flatten(chunk, executionContext, styleSheet) {\n if (Array.isArray(chunk)) {\n var ruleSet = [];\n\n for (var i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet);\n\n if (result === null) continue;else if (Array.isArray(result)) ruleSet.push.apply(ruleSet, result);else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return null;\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return '.' + chunk.styledComponentId;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n var _result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(_result)) {\n // eslint-disable-next-line no-console\n console.warn(getComponentName(chunk) + ' is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.');\n }\n\n return flatten(_result, executionContext, styleSheet);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet);\n return chunk.getName();\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n}\n\n// \n\nfunction css(styles) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return flatten(interleave(EMPTY_ARRAY, [styles].concat(interpolations)));\n }\n\n // $FlowFixMe\n return flatten(interleave(styles, interpolations));\n}\n\n// \n\nfunction constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n if (!isValidElementType(tag)) {\n throw new StyledComponentsError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n var templateFunction = function templateFunction() {\n return componentConstructor(tag, options, css.apply(undefined, arguments));\n };\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean)\n }));\n };\n\n return templateFunction;\n}\n\n// \n// Source: https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash(c) {\n for (var e = c.length | 0, a = e | 0, d = 0, b; e >= 4;) {\n b = c.charCodeAt(d) & 255 | (c.charCodeAt(++d) & 255) << 8 | (c.charCodeAt(++d) & 255) << 16 | (c.charCodeAt(++d) & 255) << 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), b ^= b >>> 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16) ^ b, e -= 4, ++d;\n }\n switch (e) {\n case 3:\n a ^= (c.charCodeAt(d + 2) & 255) << 16;\n case 2:\n a ^= (c.charCodeAt(d + 1) & 255) << 8;\n case 1:\n a ^= c.charCodeAt(d) & 255, a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n }\n a ^= a >>> 13;\n a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n return (a ^ a >>> 15) >>> 0;\n}\n\n// \n/* eslint-disable no-bitwise */\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nvar charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nvar getAlphabeticChar = function getAlphabeticChar(code) {\n return String.fromCharCode(code + (code > 25 ? 39 : 97));\n};\n\n/* input a number, usually a hash and convert it to base-52 */\nfunction generateAlphabeticName(code) {\n var name = '';\n var x = void 0;\n\n /* get a char and divide by alphabet-length */\n for (x = code; x > charsLength; x = Math.floor(x / charsLength)) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return getAlphabeticChar(x % charsLength) + name;\n}\n\n// \n\nfunction hasFunctionObjectKey(obj) {\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in obj) {\n if (isFunction(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isStaticRules(rules, attrs) {\n for (var i = 0; i < rules.length; i += 1) {\n var rule = rules[i];\n\n // recursive case\n if (Array.isArray(rule) && !isStaticRules(rule, attrs)) {\n return false;\n } else if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n if (attrs.some(function (x) {\n return isFunction(x) || hasFunctionObjectKey(x);\n })) return false;\n\n return true;\n}\n\n// \n\n/* combines hashStr (murmurhash) and nameGenerator for convenience */\nvar hasher = function hasher(str) {\n return generateAlphabeticName(murmurhash(str));\n};\n\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\n\nvar ComponentStyle = function () {\n function ComponentStyle(rules, attrs, componentId) {\n classCallCheck(this, ComponentStyle);\n\n this.rules = rules;\n this.isStatic = process.env.NODE_ENV === 'production' && isStaticRules(rules, attrs);\n this.componentId = componentId;\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n\n\n ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) {\n var isStatic = this.isStatic,\n componentId = this.componentId,\n lastClassName = this.lastClassName;\n\n if (IS_BROWSER && isStatic && typeof lastClassName === 'string' && styleSheet.hasNameForId(componentId, lastClassName)) {\n return lastClassName;\n }\n\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var name = hasher(this.componentId + flatCSS.join(''));\n if (!styleSheet.hasNameForId(componentId, name)) {\n styleSheet.inject(this.componentId, stringifyRules(flatCSS, '.' + name, undefined, componentId), name);\n }\n\n this.lastClassName = name;\n return name;\n };\n\n ComponentStyle.generateName = function generateName(str) {\n return hasher(str);\n };\n\n return ComponentStyle;\n}();\n\n// \n\nvar LIMIT = 200;\n\nvar createWarnTooManyClasses = (function (displayName) {\n var generatedClasses = {};\n var warningSeen = false;\n\n return function (className) {\n if (!warningSeen) {\n generatedClasses[className] = true;\n if (Object.keys(generatedClasses).length >= LIMIT) {\n // Unable to find latestRule in test environment.\n /* eslint-disable no-console, prefer-template */\n console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \\n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\\n' + 'Example:\\n' + ' const Component = styled.div.attrs(props => ({\\n' + ' style: {\\n' + ' background: props.background,\\n' + ' },\\n' + ' }))`width: 100%;`\\n\\n' + ' ');\n warningSeen = true;\n generatedClasses = {};\n }\n }\n };\n});\n\n// \n\nvar determineTheme = (function (props, fallbackTheme) {\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types, flowtype-errors/show-errors */\n var isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;\n /* eslint-enable */\n\n return theme;\n});\n\n// \nvar escapeRegex = /[[\\].#*$><+~=|^:(),\"'`-]+/g;\nvar dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nfunction escape(str) {\n return str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n\n// \n\nfunction isTag(target) {\n return typeof target === 'string' && (process.env.NODE_ENV !== 'production' ? target.charAt(0) === target.charAt(0).toLowerCase() : true);\n}\n\n// \n\nfunction generateDisplayName(target) {\n // $FlowFixMe\n return isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')';\n}\n\nvar _TYPE_STATICS;\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDerivedStateFromProps: true,\n propTypes: true,\n type: true\n};\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};\n\nvar TYPE_STATICS = (_TYPE_STATICS = {}, _TYPE_STATICS[ForwardRef] = {\n $$typeof: true,\n render: true\n}, _TYPE_STATICS);\n\nvar defineProperty$1 = Object.defineProperty,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n _Object$getOwnPropert = Object.getOwnPropertySymbols,\n getOwnPropertySymbols = _Object$getOwnPropert === undefined ? function () {\n return [];\n} : _Object$getOwnPropert,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getPrototypeOf = Object.getPrototypeOf,\n objectPrototype = Object.prototype;\nvar arrayPrototype = Array.prototype;\n\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n\n var keys = arrayPrototype.concat(getOwnPropertyNames(sourceComponent),\n // $FlowFixMe\n getOwnPropertySymbols(sourceComponent));\n\n var targetStatics = TYPE_STATICS[targetComponent.$$typeof] || REACT_STATICS;\n\n var sourceStatics = TYPE_STATICS[sourceComponent.$$typeof] || REACT_STATICS;\n\n var i = keys.length;\n var descriptor = void 0;\n var key = void 0;\n\n // eslint-disable-next-line no-plusplus\n while (i--) {\n key = keys[i];\n\n if (\n // $FlowFixMe\n !KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) &&\n // $FlowFixMe\n !(targetStatics && targetStatics[key])) {\n descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n if (descriptor) {\n try {\n // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {\n /* fail silently */\n }\n }\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\n// \nfunction isDerivedReactComponent(fn) {\n return !!(fn && fn.prototype && fn.prototype.isReactComponent);\n}\n\n// \n// Helper to call a given function, only once\nvar once = (function (cb) {\n var called = false;\n\n return function () {\n if (!called) {\n called = true;\n cb.apply(undefined, arguments);\n }\n };\n});\n\n// \n\nvar ThemeContext = createContext();\n\nvar ThemeConsumer = ThemeContext.Consumer;\n\n/**\n * Provide a theme to an entire react component tree via context\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider(props) {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext.bind(_this));\n _this.renderInner = _this.renderInner.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) return null;\n\n return React.createElement(\n ThemeContext.Consumer,\n null,\n this.renderInner\n );\n };\n\n ThemeProvider.prototype.renderInner = function renderInner(outerTheme) {\n var context = this.getContext(this.props.theme, outerTheme);\n\n return React.createElement(\n ThemeContext.Provider,\n { value: context },\n this.props.children\n );\n };\n\n /**\n * Get the theme from the props, supporting both (outerTheme) => {}\n * as well as object notation\n */\n\n\n ThemeProvider.prototype.getTheme = function getTheme(theme, outerTheme) {\n if (isFunction(theme)) {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme === null || Array.isArray(mergedTheme) || (typeof mergedTheme === 'undefined' ? 'undefined' : _typeof(mergedTheme)) !== 'object')) {\n throw new StyledComponentsError(7);\n }\n\n return mergedTheme;\n }\n\n if (theme === null || Array.isArray(theme) || (typeof theme === 'undefined' ? 'undefined' : _typeof(theme)) !== 'object') {\n throw new StyledComponentsError(8);\n }\n\n return _extends({}, outerTheme, theme);\n };\n\n ThemeProvider.prototype.getContext = function getContext(theme, outerTheme) {\n return this.getTheme(theme, outerTheme);\n };\n\n return ThemeProvider;\n}(Component);\n\n// \n\nvar CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nvar ServerStyleSheet = function () {\n function ServerStyleSheet() {\n classCallCheck(this, ServerStyleSheet);\n\n /* The master sheet might be reset, so keep a reference here */\n this.masterSheet = StyleSheet.master;\n this.instance = this.masterSheet.clone();\n this.sealed = false;\n }\n\n /**\n * Mark the ServerStyleSheet as being fully emitted and manually GC it from the\n * StyleSheet singleton.\n */\n\n\n ServerStyleSheet.prototype.seal = function seal() {\n if (!this.sealed) {\n /* Remove sealed StyleSheets from the master sheet */\n var index = this.masterSheet.clones.indexOf(this.instance);\n this.masterSheet.clones.splice(index, 1);\n this.sealed = true;\n }\n };\n\n ServerStyleSheet.prototype.collectStyles = function collectStyles(children) {\n if (this.sealed) {\n throw new StyledComponentsError(2);\n }\n\n return React.createElement(\n StyleSheetManager,\n { sheet: this.instance },\n children\n );\n };\n\n ServerStyleSheet.prototype.getStyleTags = function getStyleTags() {\n this.seal();\n return this.instance.toHTML();\n };\n\n ServerStyleSheet.prototype.getStyleElement = function getStyleElement() {\n this.seal();\n return this.instance.toReactElements();\n };\n\n ServerStyleSheet.prototype.interleaveWithNodeStream = function interleaveWithNodeStream(readableStream) {\n var _this = this;\n\n {\n throw new StyledComponentsError(3);\n }\n\n /* the tag index keeps track of which tags have already been emitted */\n var instance = this.instance;\n\n var instanceTagIndex = 0;\n\n var streamAttr = SC_STREAM_ATTR + '=\"true\"';\n\n var transformer = new stream.Transform({\n transform: function appendStyleChunks(chunk, /* encoding */_, callback) {\n var tags = instance.tags;\n\n var html = '';\n\n /* retrieve html for each new style tag */\n for (; instanceTagIndex < tags.length; instanceTagIndex += 1) {\n var tag = tags[instanceTagIndex];\n html += tag.toHTML(streamAttr);\n }\n\n /* force our StyleSheets to emit entirely new tags */\n instance.sealAllTags();\n\n var renderedHtml = chunk.toString();\n\n /* prepend style html to chunk, unless the start of the chunk is a closing tag in which case append right after that */\n if (CLOSING_TAG_R.test(renderedHtml)) {\n var endOfClosingTag = renderedHtml.indexOf('>');\n\n this.push(renderedHtml.slice(0, endOfClosingTag + 1) + html + renderedHtml.slice(endOfClosingTag + 1));\n } else this.push(html + renderedHtml);\n\n callback();\n }\n });\n\n readableStream.on('end', function () {\n return _this.seal();\n });\n\n readableStream.on('error', function (err) {\n _this.seal();\n\n // forward the error to the transform stream\n transformer.emit('error', err);\n });\n\n return readableStream.pipe(transformer);\n };\n\n return ServerStyleSheet;\n}();\n\n// \n\nvar StyleSheetContext = createContext();\nvar StyleSheetConsumer = StyleSheetContext.Consumer;\n\nvar StyleSheetManager = function (_Component) {\n inherits(StyleSheetManager, _Component);\n\n function StyleSheetManager(props) {\n classCallCheck(this, StyleSheetManager);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext);\n return _this;\n }\n\n StyleSheetManager.prototype.getContext = function getContext(sheet, target) {\n if (sheet) {\n return sheet;\n } else if (target) {\n return new StyleSheet(target);\n } else {\n throw new StyledComponentsError(4);\n }\n };\n\n StyleSheetManager.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n sheet = _props.sheet,\n target = _props.target;\n\n\n return React.createElement(\n StyleSheetContext.Provider,\n { value: this.getContext(sheet, target) },\n process.env.NODE_ENV !== 'production' ? React.Children.only(children) : children\n );\n };\n\n return StyleSheetManager;\n}(Component);\nprocess.env.NODE_ENV !== \"production\" ? StyleSheetManager.propTypes = {\n sheet: PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]),\n\n target: PropTypes.shape({\n appendChild: PropTypes.func.isRequired\n })\n} : void 0;\n\n// \n\nvar THEME_PROP_REGEX = /\\.theme[.[]/;\nvar identifiers = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(_ComponentStyle, _displayName, parentComponentId) {\n var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName);\n\n /**\n * This ensures uniqueness if two components happen to share\n * the same displayName.\n */\n var nr = (identifiers[displayName] || 0) + 1;\n identifiers[displayName] = nr;\n\n var componentId = displayName + '-' + _ComponentStyle.generateName(displayName + nr);\n\n return parentComponentId ? parentComponentId + '-' + componentId : componentId;\n}\n\n// $FlowFixMe\n\nvar StyledComponent = function (_Component) {\n inherits(StyledComponent, _Component);\n\n function StyledComponent() {\n classCallCheck(this, StyledComponent);\n\n var _this = possibleConstructorReturn(this, _Component.call(this));\n\n _this.attrs = {};\n\n _this.renderOuter = _this.renderOuter.bind(_this);\n _this.renderInner = _this.renderInner.bind(_this);\n\n if (process.env.NODE_ENV !== 'production') {\n _this.warnInnerRef = once(function (displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('The \"innerRef\" API has been removed in styled-components v4 in favor of React 16 ref forwarding, use \"ref\" instead like a typical component. \"innerRef\" was detected on component \"' + displayName + '\".')\n );\n });\n\n _this.warnAttrsFnObjectKeyDeprecated = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('Functions as object-form attrs({}) keys are now deprecated and will be removed in a future version of styled-components. Switch to the new attrs(props => ({})) syntax instead for easier and more powerful composition. The attrs key in question is \"' + key + '\" on component \"' + displayName + '\".', '\\n ' + new Error().stack)\n );\n });\n\n _this.warnNonStyledComponentAttrsObjectKey = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('It looks like you\\'ve used a non styled-component as the value for the \"' + key + '\" prop in an object-form attrs constructor of \"' + displayName + '\".\\n' + 'You should use the new function-form attrs constructor which avoids this issue: attrs(props => ({ yourStuff }))\\n' + \"To continue using the deprecated object syntax, you'll need to wrap your component prop in a function to make it available inside the styled component (you'll still get the deprecation warning though.)\\n\" + ('For example, { ' + key + ': () => InnerComponent } instead of { ' + key + ': InnerComponent }'))\n );\n });\n }\n return _this;\n }\n\n StyledComponent.prototype.render = function render() {\n return React.createElement(\n StyleSheetConsumer,\n null,\n this.renderOuter\n );\n };\n\n StyledComponent.prototype.renderOuter = function renderOuter() {\n var styleSheet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : StyleSheet.master;\n\n this.styleSheet = styleSheet;\n\n // No need to subscribe a static component to theme changes, it won't change anything\n if (this.props.forwardedComponent.componentStyle.isStatic) return this.renderInner();\n\n return React.createElement(\n ThemeConsumer,\n null,\n this.renderInner\n );\n };\n\n StyledComponent.prototype.renderInner = function renderInner(theme) {\n var _props$forwardedCompo = this.props.forwardedComponent,\n componentStyle = _props$forwardedCompo.componentStyle,\n defaultProps = _props$forwardedCompo.defaultProps,\n displayName = _props$forwardedCompo.displayName,\n foldedComponentIds = _props$forwardedCompo.foldedComponentIds,\n styledComponentId = _props$forwardedCompo.styledComponentId,\n target = _props$forwardedCompo.target,\n usesTheme = _props$forwardedCompo.usesTheme;\n\n\n var generatedClassName = void 0;\n var rawTheme = void 0;\n\n if (componentStyle.isStatic) {\n generatedClassName = this.generateAndInjectStyles(EMPTY_OBJECT, this.props);\n } else {\n rawTheme = determineTheme(this.props, theme, defaultProps);\n generatedClassName = this.generateAndInjectStyles(rawTheme || EMPTY_OBJECT, this.props);\n\n if (process.env.NODE_ENV !== 'production' && usesTheme && !rawTheme) {\n console.error('Component \\'' +\n // $FlowFixMe\n displayName + '\\' (.' + styledComponentId + ') references the \\'theme\\' prop in its styles but no theme was provided via prop or .');\n }\n }\n\n var elementToBeCreated = this.props.as || this.attrs.as || target;\n var isTargetTag = isTag(elementToBeCreated);\n\n var propsForElement = {};\n var computedProps = _extends({}, this.props, this.attrs);\n\n var key = void 0;\n // eslint-disable-next-line guard-for-in\n for (key in computedProps) {\n if (process.env.NODE_ENV !== 'production' && key === 'innerRef' && isTargetTag) {\n this.warnInnerRef(displayName);\n }\n\n if (key === 'forwardedComponent' || key === 'as') {\n continue;\n } else if (key === 'forwardedRef') propsForElement.ref = computedProps[key];else if (key === 'forwardedAs') propsForElement.as = computedProps[key];else if (!isTargetTag || validAttr(key)) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (this.props.style && this.attrs.style) {\n propsForElement.style = _extends({}, this.attrs.style, this.props.style);\n }\n\n propsForElement.className = Array.prototype.concat(foldedComponentIds, styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : null, this.props.className, this.attrs.className).filter(Boolean).join(' ');\n\n return createElement(elementToBeCreated, propsForElement);\n };\n\n StyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props, attrs) {\n var _this2 = this;\n\n var context = _extends({}, props, { theme: theme });\n\n if (!attrs.length) return context;\n\n this.attrs = {};\n\n attrs.forEach(function (attrDef) {\n var resolvedAttrDef = attrDef;\n var attrDefWasFn = false;\n var attr = void 0;\n var key = void 0;\n\n if (isFunction(resolvedAttrDef)) {\n // $FlowFixMe\n resolvedAttrDef = resolvedAttrDef(context);\n attrDefWasFn = true;\n }\n\n /* eslint-disable guard-for-in */\n // $FlowFixMe\n for (key in resolvedAttrDef) {\n attr = resolvedAttrDef[key];\n\n if (!attrDefWasFn) {\n if (isFunction(attr) && !isDerivedReactComponent(attr) && !isStyledComponent(attr)) {\n if (process.env.NODE_ENV !== 'production') {\n _this2.warnAttrsFnObjectKeyDeprecated(key, props.forwardedComponent.displayName);\n }\n\n attr = attr(context);\n\n if (process.env.NODE_ENV !== 'production' && React.isValidElement(attr)) {\n _this2.warnNonStyledComponentAttrsObjectKey(key, props.forwardedComponent.displayName);\n }\n }\n }\n\n _this2.attrs[key] = attr;\n context[key] = attr;\n }\n /* eslint-enable */\n });\n\n return context;\n };\n\n StyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var _props$forwardedCompo2 = props.forwardedComponent,\n attrs = _props$forwardedCompo2.attrs,\n componentStyle = _props$forwardedCompo2.componentStyle,\n warnTooManyClasses = _props$forwardedCompo2.warnTooManyClasses;\n\n // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n\n if (componentStyle.isStatic && !attrs.length) {\n return componentStyle.generateAndInjectStyles(EMPTY_OBJECT, this.styleSheet);\n }\n\n var className = componentStyle.generateAndInjectStyles(this.buildExecutionContext(theme, props, attrs), this.styleSheet);\n\n if (process.env.NODE_ENV !== 'production' && warnTooManyClasses) warnTooManyClasses(className);\n\n return className;\n };\n\n return StyledComponent;\n}(Component);\n\nfunction createStyledComponent(target, options, rules) {\n var isTargetStyledComp = isStyledComponent(target);\n var isClass = !isTag(target);\n\n var _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? generateDisplayName(target) : _options$displayName,\n _options$componentId = options.componentId,\n componentId = _options$componentId === undefined ? generateId(ComponentStyle, options.displayName, options.parentComponentId) : _options$componentId,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? StyledComponent : _options$ParentCompon,\n _options$attrs = options.attrs,\n attrs = _options$attrs === undefined ? EMPTY_ARRAY : _options$attrs;\n\n\n var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n var finalAttrs =\n // $FlowFixMe\n isTargetStyledComp && target.attrs ? Array.prototype.concat(target.attrs, attrs).filter(Boolean) : attrs;\n\n var componentStyle = new ComponentStyle(isTargetStyledComp ? // fold the underlying StyledComponent rules up (implicit extend)\n // $FlowFixMe\n target.componentStyle.rules.concat(rules) : rules, finalAttrs, styledComponentId);\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n var WrappedStyledComponent = void 0;\n var forwardRef = function forwardRef(props, ref) {\n return React.createElement(ParentComponent, _extends({}, props, { forwardedComponent: WrappedStyledComponent, forwardedRef: ref }));\n };\n forwardRef.displayName = displayName;\n WrappedStyledComponent = React.forwardRef(forwardRef);\n WrappedStyledComponent.displayName = displayName;\n\n // $FlowFixMe\n WrappedStyledComponent.attrs = finalAttrs;\n // $FlowFixMe\n WrappedStyledComponent.componentStyle = componentStyle;\n\n // $FlowFixMe\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp ? // $FlowFixMe\n Array.prototype.concat(target.foldedComponentIds, target.styledComponentId) : EMPTY_ARRAY;\n\n // $FlowFixMe\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n // $FlowFixMe\n WrappedStyledComponent.target = isTargetStyledComp ? target.target : target;\n\n // $FlowFixMe\n WrappedStyledComponent.withComponent = function withComponent(tag) {\n var previousComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['componentId']);\n\n\n var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag)));\n\n var newOptions = _extends({}, optionsToCopy, {\n attrs: finalAttrs,\n componentId: newComponentId,\n ParentComponent: ParentComponent\n });\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n // $FlowFixMe\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get: function get$$1() {\n return this._foldedDefaultProps;\n },\n set: function set$$1(obj) {\n // $FlowFixMe\n this._foldedDefaultProps = isTargetStyledComp ? merge(target.defaultProps, obj) : obj;\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n WrappedStyledComponent.usesTheme = componentStyle.rules.some(function (x) {\n return isFunction(x) && THEME_PROP_REGEX.test(x.toString());\n });\n\n // $FlowFixMe\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName);\n }\n\n // $FlowFixMe\n WrappedStyledComponent.toString = function () {\n return '.' + WrappedStyledComponent.styledComponentId;\n };\n\n if (isClass) {\n hoistNonReactStatics(WrappedStyledComponent, target, {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n styledComponentId: true,\n target: true,\n withComponent: true\n });\n }\n\n return WrappedStyledComponent;\n}\n\n// \n// Thanks to ReactDOMFactories for this handy list!\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr',\n\n// SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'marker', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// \n\nvar styled = function styled(tag) {\n return constructWithOptions(createStyledComponent, tag);\n};\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(function (domElement) {\n styled[domElement] = styled(domElement);\n});\n\n// \n\nvar GlobalStyle = function () {\n function GlobalStyle(rules, componentId) {\n classCallCheck(this, GlobalStyle);\n\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules, EMPTY_ARRAY);\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n GlobalStyle.prototype.createStyles = function createStyles(executionContext, styleSheet) {\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var css = stringifyRules(flatCSS, '');\n\n styleSheet.inject(this.componentId, css);\n };\n\n GlobalStyle.prototype.removeStyles = function removeStyles(styleSheet) {\n var componentId = this.componentId;\n\n if (styleSheet.hasId(componentId)) {\n styleSheet.remove(componentId);\n }\n };\n\n // TODO: overwrite in-place instead of remove+create?\n\n\n GlobalStyle.prototype.renderStyles = function renderStyles(executionContext, styleSheet) {\n this.removeStyles(styleSheet);\n this.createStyles(executionContext, styleSheet);\n };\n\n return GlobalStyle;\n}();\n\n// \n\n// place our cache into shared context so it'll persist between HMRs\nif (IS_BROWSER) {\n window.scCGSHMRCache = {};\n}\n\nfunction createGlobalStyle(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var id = 'sc-global-' + murmurhash(JSON.stringify(rules));\n var style = new GlobalStyle(rules, id);\n\n var GlobalStyleComponent = function (_React$Component) {\n inherits(GlobalStyleComponent, _React$Component);\n\n function GlobalStyleComponent(props) {\n classCallCheck(this, GlobalStyleComponent);\n\n var _this = possibleConstructorReturn(this, _React$Component.call(this, props));\n\n var _this$constructor = _this.constructor,\n globalStyle = _this$constructor.globalStyle,\n styledComponentId = _this$constructor.styledComponentId;\n\n\n if (IS_BROWSER) {\n window.scCGSHMRCache[styledComponentId] = (window.scCGSHMRCache[styledComponentId] || 0) + 1;\n }\n\n /**\n * This fixes HMR compatibility. Don't ask me why, but this combination of\n * caching the closure variables via statics and then persisting the statics in\n * state works across HMR where no other combination did. ¯\\_(ツ)_/¯\n */\n _this.state = {\n globalStyle: globalStyle,\n styledComponentId: styledComponentId\n };\n return _this;\n }\n\n GlobalStyleComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n if (window.scCGSHMRCache[this.state.styledComponentId]) {\n window.scCGSHMRCache[this.state.styledComponentId] -= 1;\n }\n /**\n * Depending on the order \"render\" is called this can cause the styles to be lost\n * until the next render pass of the remaining instance, which may\n * not be immediate.\n */\n if (window.scCGSHMRCache[this.state.styledComponentId] === 0) {\n this.state.globalStyle.removeStyles(this.styleSheet);\n }\n };\n\n GlobalStyleComponent.prototype.render = function render() {\n var _this2 = this;\n\n if (process.env.NODE_ENV !== 'production' && React.Children.count(this.props.children)) {\n // eslint-disable-next-line no-console\n console.warn('The global style component ' + this.state.styledComponentId + ' was given child JSX. createGlobalStyle does not render children.');\n }\n\n return React.createElement(\n StyleSheetConsumer,\n null,\n function (styleSheet) {\n _this2.styleSheet = styleSheet || StyleSheet.master;\n\n var globalStyle = _this2.state.globalStyle;\n\n\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(STATIC_EXECUTION_CONTEXT, _this2.styleSheet);\n\n return null;\n } else {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = _this2.constructor.defaultProps;\n\n\n var context = _extends({}, _this2.props);\n\n if (typeof theme !== 'undefined') {\n context.theme = determineTheme(_this2.props, theme, defaultProps);\n }\n\n globalStyle.renderStyles(context, _this2.styleSheet);\n\n return null;\n }\n );\n }\n }\n );\n };\n\n return GlobalStyleComponent;\n }(React.Component);\n\n GlobalStyleComponent.globalStyle = style;\n GlobalStyleComponent.styledComponentId = id;\n\n\n return GlobalStyleComponent;\n}\n\n// \n\nvar replaceWhitespace = function replaceWhitespace(str) {\n return str.replace(/\\s|\\\\n/g, '');\n};\n\nfunction keyframes(strings) {\n /* Warning if you've used keyframes on React Native */\n if (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn('`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.');\n }\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n\n var name = generateAlphabeticName(murmurhash(replaceWhitespace(JSON.stringify(rules))));\n\n return new Keyframes(name, stringifyRules(rules, name, '@keyframes'));\n}\n\n// \n\nvar withTheme = (function (Component$$1) {\n var WithTheme = React.forwardRef(function (props, ref) {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = Component$$1.defaultProps;\n\n var themeProp = determineTheme(props, theme, defaultProps);\n\n if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + getComponentName(Component$$1) + '\"');\n }\n\n return React.createElement(Component$$1, _extends({}, props, { theme: themeProp, ref: ref }));\n }\n );\n });\n\n hoistNonReactStatics(WithTheme, Component$$1);\n\n WithTheme.displayName = 'WithTheme(' + getComponentName(Component$$1) + ')';\n\n return WithTheme;\n});\n\n// \n\n/* eslint-disable */\nvar __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS = {\n StyleSheet: StyleSheet\n};\n\n// \n\n/* Warning if you've imported this file on React Native */\nif (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like you've imported 'styled-components' on React Native.\\n\" + \"Perhaps you're looking to import 'styled-components/native'?\\n\" + 'Read more about this at https://www.styled-components.com/docs/basics#react-native');\n}\n\n/* Warning if there are several instances of styled-components */\nif (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test' && typeof window !== 'undefined' && typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Node.js') === -1 && navigator.userAgent.indexOf('jsdom') === -1) {\n window['__styled-components-init__'] = window['__styled-components-init__'] || 0;\n\n if (window['__styled-components-init__'] === 1) {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. \" + 'This may cause dynamic styles not rendering properly, errors happening during rehydration process ' + 'and makes your application bigger without a good reason.\\n\\n' + 'See https://s-c.sh/2BAXzed for more info.');\n }\n\n window['__styled-components-init__'] += 1;\n}\n\n//\n\nexport default styled;\nexport { createGlobalStyle, css, isStyledComponent, keyframes, ServerStyleSheet, StyleSheetConsumer, StyleSheetContext, StyleSheetManager, ThemeConsumer, ThemeContext, ThemeProvider, withTheme, __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS };\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","export const colors = {\n PRIMARY: '#ABE2FB',\n SECONDARY: '#E6E6E6',\n DARKER_PRIMARY: '#87ceeb',\n OFF_WHITE: '#15181A',\n GREY: '#D3D3D3',\n RED: '#FF5E5E',\n DARK_GREY: '#535D63'\n};\n\nexport const TRACK_TOTAL_DEG = 270.0;\n\nexport const RADIAN = Math.PI / 180.0;\n\nexport const light = {\n primary: colors.PRIMARY,\n secondary: colors.SECONDARY,\n detail: colors.GREY,\n dark: false\n};\n\nexport const dark = {\n primary: colors.PRIMARY,\n secondary: colors.DARK_GREY,\n detail: colors.DARK_GREY,\n dark: true\n};\n\nexport default {\n dark,\n light,\n colors\n};\n","import { omit } from 'ramda';\n\nexport const getClassName = (componentName, theme) => {\n return 'daq-' + componentName + (theme && theme.dark ? '--dark' : '--light');\n};\n\nexport const getFilteredProps = props => omit(['className', 'id', 'setProps', 'style'], props);\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(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};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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};","import React from 'react';\nimport styled from 'styled-components';\n\nimport Label from './Label.styled';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-around;\n flex-direction: column;\n ${({ fullSize }) => {\n if (fullSize) return 'width: 100%;';\n return '';\n }}\n`;\n\nfunction LabelContainer(props) {\n let labelText = props.label;\n let customLabelStyle = {};\n if (typeof props.label === 'object') {\n labelText = props.label.label;\n customLabelStyle = props.label.style;\n }\n const labelElement = \n // if (labelText && labelText.length) {\n return (\n \n {props.labelPosition == 'top' && labelElement}\n {props.children}\n {props.labelPosition != 'top' && labelElement}\n \n );\n // }\n // return
{props.children}
;\n}\n\nLabelContainer.defaultProps = {\n labelPosition: 'bottom'\n};\n\nexport default LabelContainer;\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = 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 (0, _defineProperty2.default)(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}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","(function() { module.exports = window[\"ReactDOM\"]; }());","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n\tvar _react = __webpack_require__(1);\n\n\tvar _react2 = _interopRequireDefault(_react);\n\n\tvar _propTypes = __webpack_require__(2);\n\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\tvar KEYCODE_UP = 38;\n\tvar KEYCODE_DOWN = 40;\n\tvar IS_BROWSER = typeof document != 'undefined';\n\tvar RE_NUMBER = /^[+-]?((\\.\\d+)|(\\d+(\\.\\d+)?))$/;\n\tvar RE_INCOMPLETE_NUMBER = /^([+-]|\\.0*|[+-]\\.0*|[+-]?\\d+\\.)?$/;\n\n\tfunction addClass(element, className) {\n\t if (element.classList) {\n\t return element.classList.add(className);\n\t }\n\t if (!element.className.search(new RegExp(\"\\\\b\" + className + \"\\\\b\"))) {\n\t element.className = \" \" + className;\n\t }\n\t}\n\n\tfunction removeClass(element, className) {\n\t if (element.className) {\n\t if (element.classList) {\n\t return element.classList.remove(className);\n\t }\n\n\t element.className = element.className.replace(new RegExp(\"\\\\b\" + className + \"\\\\b\", \"g\"), \"\");\n\t }\n\t}\n\n\tfunction access(object, prop, defaultValue) {\n\t var result = object[prop];\n\t if (typeof result == \"function\") {\n\t for (var _len = arguments.length, args = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n\t args[_key - 3] = arguments[_key];\n\t }\n\n\t result = result.apply(undefined, args);\n\t }\n\t return result === undefined ? defaultValue : result;\n\t}\n\n\tvar NumericInput = function (_Component) {\n\t _inherits(NumericInput, _Component);\n\n\t function NumericInput() {\n\t var _ref;\n\n\t _classCallCheck(this, NumericInput);\n\n\t for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t args[_key2] = arguments[_key2];\n\t }\n\n\t var _this = _possibleConstructorReturn(this, (_ref = NumericInput.__proto__ || Object.getPrototypeOf(NumericInput)).call.apply(_ref, [this].concat(args)));\n\n\t _this._isStrict = !!_this.props.strict;\n\n\t _this.state = _extends({\n\t btnDownHover: false,\n\t btnDownActive: false,\n\t btnUpHover: false,\n\t btnUpActive: false,\n\t stringValue: \"\"\n\t }, _this._propsToState(_this.props));\n\t _this.stop = _this.stop.bind(_this);\n\t _this.onTouchEnd = _this.onTouchEnd.bind(_this);\n\t _this.refsInput = {};\n\t _this.refsWrapper = {};\n\t return _this;\n\t }\n\n\t _createClass(NumericInput, [{\n\t key: '_propsToState',\n\t value: function _propsToState(props) {\n\t var out = {};\n\n\t if (props.hasOwnProperty(\"value\")) {\n\t out.stringValue = String(props.value || props.value === 0 ? props.value : '').trim();\n\n\t out.value = out.stringValue !== '' ? this._parse(props.value) : null;\n\t } else if (!this._isMounted && props.hasOwnProperty(\"defaultValue\")) {\n\t out.stringValue = String(props.defaultValue || props.defaultValue === 0 ? props.defaultValue : '').trim();\n\n\t out.value = props.defaultValue !== '' ? this._parse(props.defaultValue) : null;\n\t }\n\n\t return out;\n\t }\n\t }, {\n\t key: 'componentWillReceiveProps',\n\t value: function componentWillReceiveProps(props) {\n\t var _this2 = this;\n\n\t this._isStrict = !!props.strict;\n\t var nextState = this._propsToState(props);\n\t if (Object.keys(nextState).length) {\n\t this._ignoreValueChange = true;\n\t this.setState(nextState, function () {\n\t _this2._ignoreValueChange = false;\n\t });\n\t }\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate() {\n\t this.saveSelection();\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate(prevProps, prevState) {\n\t if (!this._ignoreValueChange && prevState.value !== this.state.value && (!isNaN(this.state.value) || this.state.value === null)) {\n\t this._invokeEventCallback(\"onChange\", this.state.value, this.refsInput.value, this.refsInput);\n\t }\n\n\t if (this._inputFocus) {\n\t this.refsInput.focus();\n\n\t if (this.state.selectionStart || this.state.selectionStart === 0) {\n\t this.refsInput.selectionStart = this.state.selectionStart;\n\t }\n\n\t if (this.state.selectionEnd || this.state.selectionEnd === 0) {\n\t this.refsInput.selectionEnd = this.state.selectionEnd;\n\t }\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t this._isMounted = false;\n\t this.stop();\n\t }\n\t }, {\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var _this3 = this;\n\n\t this._isMounted = true;\n\t this.refsInput.getValueAsNumber = function () {\n\t return _this3.state.value || 0;\n\t };\n\n\t this.refsInput.setValue = function (value) {\n\t _this3.setState({\n\t value: _this3._parse(value),\n\t stringValue: value\n\t });\n\t };\n\n\t if (!this._inputFocus && IS_BROWSER && document.activeElement === this.refsInput) {\n\t this._inputFocus = true;\n\t this.refsInput.focus();\n\t this._invokeEventCallback(\"onFocus\", {\n\t target: this.refsInput,\n\t type: \"focus\"\n\t });\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'saveSelection',\n\t value: function saveSelection() {\n\t this.state.selectionStart = this.refsInput.selectionStart;\n\t this.state.selectionEnd = this.refsInput.selectionEnd;\n\t }\n\t }, {\n\t key: 'checkValidity',\n\t value: function checkValidity() {\n\t var valid = void 0,\n\t validationError = \"\";\n\n\t var supportsValidation = !!this.refsInput.checkValidity;\n\n\t var noValidate = !!(this.props.noValidate && this.props.noValidate != \"false\");\n\n\t this.refsInput.noValidate = noValidate;\n\n\t valid = noValidate || !supportsValidation;\n\n\t if (valid) {\n\t validationError = \"\";\n\t } else {\n\t if (this.refsInput.pattern === \"\") {\n\t this.refsInput.pattern = this.props.required ? \".+\" : \".*\";\n\t }\n\n\t if (supportsValidation) {\n\t this.refsInput.checkValidity();\n\t valid = this.refsInput.validity.valid;\n\n\t if (!valid) {\n\t validationError = this.refsInput.validationMessage;\n\t }\n\t }\n\n\t if (valid && supportsValidation && this.props.maxLength) {\n\t if (this.refsInput.value.length > this.props.maxLength) {\n\t validationError = \"This value is too long\";\n\t }\n\t }\n\t }\n\n\t validationError = validationError || (valid ? \"\" : this.refsInput.validationMessage || \"Unknown Error\");\n\n\t var validStateChanged = this._valid !== validationError;\n\t this._valid = validationError;\n\t if (validationError) {\n\t addClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onInvalid\", validationError, this.state.value, this.refsInput.value);\n\t }\n\t } else {\n\t removeClass(this.refsWrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onValid\", this.state.value, this.refsInput.value);\n\t }\n\t }\n\t }\n\t }, {\n\t key: '_toNumber',\n\t value: function _toNumber(x) {\n\t var n = parseFloat(x);\n\t if (isNaN(n) || !isFinite(n)) {\n\t n = 0;\n\t }\n\n\t if (this._isStrict) {\n\t var precision = access(this.props, \"precision\", null, this);\n\t var q = Math.pow(10, precision === null ? 10 : precision);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t n = Math.min(Math.max(n, _min), _max);\n\t n = Math.round(n * q) / q;\n\t }\n\n\t return n;\n\t }\n\t }, {\n\t key: '_parse',\n\t value: function _parse(x) {\n\t x = String(x);\n\t if (typeof this.props.parse == 'function') {\n\t return parseFloat(this.props.parse(x));\n\t }\n\t return parseFloat(x);\n\t }\n\t }, {\n\t key: '_format',\n\t value: function _format(n) {\n\t var _n = this._toNumber(n);\n\t var precision = access(this.props, \"precision\", null, this);\n\t if (precision !== null) {\n\t _n = n.toFixed(precision);\n\t }\n\n\t _n += \"\";\n\n\t if (this.props.format) {\n\t return this.props.format(_n);\n\t }\n\n\t return _n;\n\t }\n\t }, {\n\t key: '_step',\n\t value: function _step(n, callback) {\n\t var _isStrict = this._isStrict;\n\t this._isStrict = true;\n\n\t var _step = +access(this.props, \"step\", NumericInput.defaultProps.step, this, n > 0 ? NumericInput.DIRECTION_UP : NumericInput.DIRECTION_DOWN);\n\n\t var _n = this._toNumber((this.state.value || 0) + _step * n);\n\n\t if (this.props.snap) {\n\t _n = Math.round(_n / _step) * _step;\n\t }\n\n\t this._isStrict = _isStrict;\n\n\t if (_n !== this.state.value) {\n\t this.setState({ value: _n, stringValue: _n + \"\" }, callback);\n\t return true;\n\t }\n\n\t return false;\n\t }\n\t }, {\n\t key: '_onKeyDown',\n\t value: function _onKeyDown() {\n\t for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n\t args[_key3] = arguments[_key3];\n\t }\n\n\t args[0].persist();\n\t this._invokeEventCallback.apply(this, [\"onKeyDown\"].concat(args));\n\t var e = args[0];\n\t if (!e.isDefaultPrevented()) {\n\t if (e.keyCode === KEYCODE_UP) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? 0.1 : e.shiftKey ? 10 : 1);\n\t } else if (e.keyCode === KEYCODE_DOWN) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? -0.1 : e.shiftKey ? -10 : -1);\n\t } else {\n\t var _value = this.refsInput.value,\n\t length = _value.length;\n\t if (e.keyCode === 8) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd > 0 && _value.length && _value.charAt(this.refsInput.selectionEnd - 1) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd - 1;\n\t }\n\t } else if (e.keyCode === 46) {\n\t if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd < length + 1 && _value.length && _value.charAt(this.refsInput.selectionEnd) === \".\") {\n\t e.preventDefault();\n\t this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd + 1;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'stop',\n\t value: function stop() {\n\t if (this._timer) {\n\t clearTimeout(this._timer);\n\t }\n\t }\n\t }, {\n\t key: 'increase',\n\t value: function increase() {\n\t var _this4 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(1, callback);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t if (isNaN(this.state.value) || +this.state.value < _max) {\n\t this._timer = setTimeout(function () {\n\t _this4.increase(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'decrease',\n\t value: function decrease() {\n\t var _this5 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(-1, callback);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t if (isNaN(this.state.value) || +this.state.value > _min) {\n\t this._timer = setTimeout(function () {\n\t _this5.decrease(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'onMouseDown',\n\t value: function onMouseDown(dir, callback) {\n\t if (dir == 'down') {\n\t this.decrease(false, callback);\n\t } else if (dir == 'up') {\n\t this.increase(false, callback);\n\t }\n\t }\n\t }, {\n\t key: 'onTouchStart',\n\t value: function onTouchStart(dir, e) {\n\t e.preventDefault();\n\t if (dir == 'down') {\n\t this.decrease();\n\t } else if (dir == 'up') {\n\t this.increase();\n\t }\n\t }\n\t }, {\n\t key: 'onTouchEnd',\n\t value: function onTouchEnd(e) {\n\t e.preventDefault();\n\t this.stop();\n\t }\n\t }, {\n\t key: '_invokeEventCallback',\n\t value: function _invokeEventCallback(callbackName) {\n\t if (typeof this.props[callbackName] == \"function\") {\n\t var _props$callbackName;\n\n\t for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n\t args[_key4 - 1] = arguments[_key4];\n\t }\n\n\t (_props$callbackName = this.props[callbackName]).call.apply(_props$callbackName, [null].concat(args));\n\t }\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _this6 = this;\n\n\t var props = this.props;\n\t var state = this.state;\n\t var css = {};\n\n\t var _props = this.props,\n\t step = _props.step,\n\t min = _props.min,\n\t max = _props.max,\n\t precision = _props.precision,\n\t parse = _props.parse,\n\t format = _props.format,\n\t mobile = _props.mobile,\n\t snap = _props.snap,\n\t componentClass = _props.componentClass,\n\t value = _props.value,\n\t type = _props.type,\n\t style = _props.style,\n\t defaultValue = _props.defaultValue,\n\t onInvalid = _props.onInvalid,\n\t onValid = _props.onValid,\n\t strict = _props.strict,\n\t noStyle = _props.noStyle,\n\t rest = _objectWithoutProperties(_props, ['step', 'min', 'max', 'precision', 'parse', 'format', 'mobile', 'snap', 'componentClass', 'value', 'type', 'style', 'defaultValue', 'onInvalid', 'onValid', 'strict', 'noStyle']);\n\n\t noStyle = noStyle || style === false;\n\n\t for (var x in NumericInput.style) {\n\t css[x] = _extends({}, NumericInput.style[x], style ? style[x] || {} : {});\n\t }\n\n\t var hasFormControl = props.className && /\\bform-control\\b/.test(props.className);\n\n\t if (mobile == 'auto') {\n\t mobile = IS_BROWSER && 'ontouchstart' in document;\n\t }\n\n\t if (typeof mobile == \"function\") {\n\t mobile = mobile.call(this);\n\t }\n\t mobile = !!mobile;\n\n\t var attrs = {\n\t wrap: {\n\t style: noStyle ? null : css.wrap,\n\t className: 'react-numeric-input',\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsWrapper = e;\n\t }\n\t },\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined\n\t },\n\t input: _extends({\n\t ref: function ref(e) {\n\t if (e != null && e != undefined) {\n\t _this6.refsInput = e;\n\t }\n\t },\n\t type: 'text',\n\t style: noStyle ? null : _extends({}, css.input, !hasFormControl ? css['input:not(.form-control)'] : {}, this._inputFocus ? css['input:focus'] : {})\n\t }, rest),\n\t btnUp: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnUp, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnUpActive ? css['btn:active'] : state.btnUpHover ? css['btn:hover'] : {})\n\t },\n\t btnDown: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: noStyle ? null : _extends({}, css.btn, css.btnDown, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnDownActive ? css['btn:active'] : state.btnDownHover ? css['btn:hover'] : {})\n\t }\n\t };\n\n\t var stringValue = String(state.stringValue || (state.value || state.value === 0 ? state.value : \"\") || \"\");\n\n\t var loose = !this._isStrict && (this._inputFocus || !this._isMounted);\n\n\t if (loose && RE_INCOMPLETE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (loose && stringValue && !RE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (state.value || state.value === 0) {\n\t attrs.input.value = this._format(state.value);\n\t } else {\n\t attrs.input.value = \"\";\n\t }\n\n\t if (hasFormControl && !noStyle) {\n\t _extends(attrs.wrap.style, css['wrap.hasFormControl']);\n\t }\n\n\t if (mobile && !noStyle) {\n\t _extends(attrs.input.style, css['input.mobile']);\n\t _extends(attrs.btnUp.style, css['btnUp.mobile']);\n\t _extends(attrs.btnDown.style, css['btnDown.mobile']);\n\t }\n\n\t if (!props.disabled && !props.readOnly) {\n\t _extends(attrs.wrap, {\n\t onMouseUp: this.stop,\n\t onMouseLeave: this.stop\n\t });\n\n\t _extends(attrs.btnUp, {\n\t onTouchStart: this.onTouchStart.bind(this, 'up'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnUpHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnUpHover: false,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n\t args[_key5] = arguments[_key5];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('up');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.btnDown, {\n\t onTouchStart: this.onTouchStart.bind(this, 'down'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnDownHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnDownHover: false,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n\t args[_key6] = arguments[_key6];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('down');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.input, {\n\t onChange: function onChange(e) {\n\t var original = e.target.value;\n\t var val = _this6._parse(original);\n\t if (isNaN(val)) {\n\t val = null;\n\t }\n\t _this6.setState({\n\t value: _this6._isStrict ? _this6._toNumber(val) : val,\n\t stringValue: original\n\t });\n\t },\n\t onKeyDown: this._onKeyDown.bind(this),\n\t onInput: function onInput() {\n\t for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n\t args[_key7] = arguments[_key7];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onInput\"].concat(args));\n\t },\n\t onSelect: function onSelect() {\n\t for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n\t args[_key8] = arguments[_key8];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onSelect\"].concat(args));\n\t },\n\t onFocus: function onFocus() {\n\t for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n\t args[_key9] = arguments[_key9];\n\t }\n\n\t args[0].persist();\n\t _this6._inputFocus = true;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val,\n\t stringValue: val || val === 0 ? val + \"\" : \"\"\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t });\n\t },\n\t onBlur: function onBlur() {\n\t for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n\t args[_key10] = arguments[_key10];\n\t }\n\n\t var _isStrict = _this6._isStrict;\n\t _this6._isStrict = true;\n\t args[0].persist();\n\t _this6._inputFocus = false;\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onBlur\"].concat(args));\n\t _this6._isStrict = _isStrict;\n\t });\n\t }\n\t });\n\t } else {\n\t if (!noStyle && props.disabled) {\n\t _extends(attrs.input.style, css['input:disabled']);\n\t }\n\t }\n\n\t var InputTag = componentClass || 'input';\n\n\t if (mobile) {\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus }),\n\t _react2.default.createElement('i', { style: noStyle ? null : css.plus })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.minus })\n\t )\n\t );\n\t }\n\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement(InputTag, attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowUp })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: noStyle ? null : css.arrowDown })\n\t )\n\t );\n\t }\n\t }]);\n\n\t return NumericInput;\n\t}(_react.Component);\n\n\tNumericInput.propTypes = {\n\t step: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t min: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t max: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t precision: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t maxLength: _propTypes2.default.number,\n\t parse: _propTypes2.default.func,\n\t format: _propTypes2.default.func,\n\t className: _propTypes2.default.string,\n\t disabled: _propTypes2.default.bool,\n\t readOnly: _propTypes2.default.bool,\n\t required: _propTypes2.default.bool,\n\t snap: _propTypes2.default.bool,\n\t noValidate: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n\t style: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),\n\t noStyle: _propTypes2.default.bool,\n\t type: _propTypes2.default.string,\n\t pattern: _propTypes2.default.string,\n\t onFocus: _propTypes2.default.func,\n\t onBlur: _propTypes2.default.func,\n\t onKeyDown: _propTypes2.default.func,\n\t onChange: _propTypes2.default.func,\n\t onInvalid: _propTypes2.default.func,\n\t onValid: _propTypes2.default.func,\n\t onInput: _propTypes2.default.func,\n\t onSelect: _propTypes2.default.func,\n\t size: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t strict: _propTypes2.default.bool,\n\t componentClass: _propTypes2.default.string,\n\t mobile: function mobile(props, propName) {\n\t var prop = props[propName];\n\t if (prop !== true && prop !== false && prop !== 'auto' && typeof prop != 'function') {\n\t return new Error('The \"mobile\" prop must be true, false, \"auto\" or a function');\n\t }\n\t }\n\t};\n\tNumericInput.defaultProps = {\n\t step: 1,\n\t min: Number.MIN_SAFE_INTEGER || -9007199254740991,\n\t max: Number.MAX_SAFE_INTEGER || 9007199254740991,\n\t precision: null,\n\t parse: null,\n\t format: null,\n\t mobile: 'auto',\n\t strict: false,\n\t componentClass: \"input\",\n\t style: {}\n\t};\n\tNumericInput.style = {\n\t wrap: {\n\t position: 'relative',\n\t display: 'inline-block'\n\t },\n\n\t 'wrap.hasFormControl': {\n\t display: 'block'\n\t },\n\n\t arrowUp: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0 0.6ex 0.6ex 0.6ex',\n\t borderColor: 'transparent transparent rgba(0, 0, 0, 0.7)',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t arrowDown: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0.6ex 0.6ex 0 0.6ex',\n\t borderColor: 'rgba(0, 0, 0, 0.7) transparent transparent',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t plus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 2,\n\t height: 10,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-5px 0 0 -1px'\n\t },\n\n\t minus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 10,\n\t height: 2,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-1px 0 0 -5px'\n\t },\n\n\t btn: {\n\t position: 'absolute',\n\t right: 2,\n\t width: '2.26ex',\n\t borderColor: 'rgba(0,0,0,.1)',\n\t borderStyle: 'solid',\n\t textAlign: 'center',\n\t cursor: 'default',\n\t transition: 'all 0.1s',\n\t background: 'rgba(0,0,0,.1)',\n\t boxShadow: '-1px -1px 3px rgba(0,0,0,.1) inset,' + '1px 1px 3px rgba(255,255,255,.7) inset'\n\t },\n\n\t btnUp: {\n\t top: 2,\n\t bottom: '50%',\n\t borderRadius: '2px 2px 0 0',\n\t borderWidth: '1px 1px 0 1px'\n\t },\n\n\t 'btnUp.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t btnDown: {\n\t top: '50%',\n\t bottom: 2,\n\t borderRadius: '0 0 2px 2px',\n\t borderWidth: '0 1px 1px 1px'\n\t },\n\n\t 'btnDown.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t left: 2,\n\t top: 2,\n\t right: 'auto',\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t 'btn:hover': {\n\t background: 'rgba(0,0,0,.2)'\n\t },\n\n\t 'btn:active': {\n\t background: 'rgba(0,0,0,.3)',\n\t boxShadow: '0 1px 3px rgba(0,0,0,.2) inset,' + '-1px -1px 4px rgba(255,255,255,.5) inset'\n\t },\n\n\t 'btn:disabled': {\n\t opacity: 0.5,\n\t boxShadow: 'none',\n\t cursor: 'not-allowed'\n\t },\n\n\t input: {\n\t paddingRight: '3ex',\n\t boxSizing: 'border-box',\n\t fontSize: 'inherit'\n\t },\n\n\t 'input:not(.form-control)': {\n\t border: '1px solid #ccc',\n\t borderRadius: 2,\n\t paddingLeft: 4,\n\t display: 'block',\n\t WebkitAppearance: 'none',\n\t lineHeight: 'normal'\n\t },\n\n\t 'input.mobile': {\n\t paddingLeft: ' 3.4ex',\n\t paddingRight: '3.4ex',\n\t textAlign: 'center'\n\t },\n\n\t 'input:focus': {},\n\n\t 'input:disabled': {\n\t color: 'rgba(0, 0, 0, 0.3)',\n\t textShadow: '0 1px 0 rgba(255, 255, 255, 0.8)'\n\t }\n\t};\n\tNumericInput.SPEED = 50;\n\tNumericInput.DELAY = 500;\n\tNumericInput.DIRECTION_UP = \"up\";\n\tNumericInput.DIRECTION_DOWN = \"down\";\n\n\n\tmodule.exports = NumericInput;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"react\");\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"prop-types\");\n\n/***/ })\n/******/ ]);","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","/**\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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (typeof obj === 'undefined') {\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from './_curry1';\nimport _isPlaceholder from './_isPlaceholder';\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _isArrayLike from './_isArrayLike';\nimport _xwrap from './_xwrap';\nimport bind from '../bind';\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from './_has';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n};\n\nexport default _isArguments;","import _curry1 from './internal/_curry1';\nimport _has from './internal/_has';\nimport _isArguments from './internal/_isArguments';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar _keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n} : function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n};\nvar keys = /*#__PURE__*/_curry1(_keys);\nexport default keys;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","import _objectAssign from './_objectAssign';\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _curry1 from './internal/_curry1';\nimport _of from './internal/_of';\n\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\nvar of = /*#__PURE__*/_curry1(_of);\nexport default of;","import _curry2 from './internal/_curry2';\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\nvar omit = /*#__PURE__*/_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nexport default omit;","import _cloneRegExp from './internal/_cloneRegExp';\nimport _curry2 from './internal/_curry2';\nimport _isRegExp from './internal/_isRegExp';\nimport toString from './toString';\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\nvar test = /*#__PURE__*/_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n return _cloneRegExp(pattern).test(str);\n});\nexport default test;","import _curry1 from './internal/_curry1';\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\nvar _trim = !hasProtoTrim || /*#__PURE__*/ws.trim() || ! /*#__PURE__*/zeroWidth.trim() ? function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n} : function trim(str) {\n return str.trim();\n};\nvar trim = /*#__PURE__*/_curry1(_trim);\nexport default trim;","export { default as F } from './F';\nexport { default as T } from './T';\nexport { default as __ } from './__';\nexport { default as add } from './add';\nexport { default as addIndex } from './addIndex';\nexport { default as adjust } from './adjust';\nexport { default as all } from './all';\nexport { default as allPass } from './allPass';\nexport { default as always } from './always';\nexport { default as and } from './and';\nexport { default as any } from './any';\nexport { default as anyPass } from './anyPass';\nexport { default as ap } from './ap';\nexport { default as aperture } from './aperture';\nexport { default as append } from './append';\nexport { default as apply } from './apply';\nexport { default as applySpec } from './applySpec';\nexport { default as applyTo } from './applyTo';\nexport { default as ascend } from './ascend';\nexport { default as assoc } from './assoc';\nexport { default as assocPath } from './assocPath';\nexport { default as binary } from './binary';\nexport { default as bind } from './bind';\nexport { default as both } from './both';\nexport { default as call } from './call';\nexport { default as chain } from './chain';\nexport { default as clamp } from './clamp';\nexport { default as clone } from './clone';\nexport { default as comparator } from './comparator';\nexport { default as complement } from './complement';\nexport { default as compose } from './compose';\nexport { default as composeK } from './composeK';\nexport { default as composeP } from './composeP';\nexport { default as concat } from './concat';\nexport { default as cond } from './cond';\nexport { default as construct } from './construct';\nexport { default as constructN } from './constructN';\nexport { default as contains } from './contains';\nexport { default as converge } from './converge';\nexport { default as countBy } from './countBy';\nexport { default as curry } from './curry';\nexport { default as curryN } from './curryN';\nexport { default as dec } from './dec';\nexport { default as defaultTo } from './defaultTo';\nexport { default as descend } from './descend';\nexport { default as difference } from './difference';\nexport { default as differenceWith } from './differenceWith';\nexport { default as dissoc } from './dissoc';\nexport { default as dissocPath } from './dissocPath';\nexport { default as divide } from './divide';\nexport { default as drop } from './drop';\nexport { default as dropLast } from './dropLast';\nexport { default as dropLastWhile } from './dropLastWhile';\nexport { default as dropRepeats } from './dropRepeats';\nexport { default as dropRepeatsWith } from './dropRepeatsWith';\nexport { default as dropWhile } from './dropWhile';\nexport { default as either } from './either';\nexport { default as empty } from './empty';\nexport { default as endsWith } from './endsWith';\nexport { default as eqBy } from './eqBy';\nexport { default as eqProps } from './eqProps';\nexport { default as equals } from './equals';\nexport { default as evolve } from './evolve';\nexport { default as filter } from './filter';\nexport { default as find } from './find';\nexport { default as findIndex } from './findIndex';\nexport { default as findLast } from './findLast';\nexport { default as findLastIndex } from './findLastIndex';\nexport { default as flatten } from './flatten';\nexport { default as flip } from './flip';\nexport { default as forEach } from './forEach';\nexport { default as forEachObjIndexed } from './forEachObjIndexed';\nexport { default as fromPairs } from './fromPairs';\nexport { default as groupBy } from './groupBy';\nexport { default as groupWith } from './groupWith';\nexport { default as gt } from './gt';\nexport { default as gte } from './gte';\nexport { default as has } from './has';\nexport { default as hasIn } from './hasIn';\nexport { default as head } from './head';\nexport { default as identical } from './identical';\nexport { default as identity } from './identity';\nexport { default as ifElse } from './ifElse';\nexport { default as inc } from './inc';\nexport { default as indexBy } from './indexBy';\nexport { default as indexOf } from './indexOf';\nexport { default as init } from './init';\nexport { default as innerJoin } from './innerJoin';\nexport { default as insert } from './insert';\nexport { default as insertAll } from './insertAll';\nexport { default as intersection } from './intersection';\nexport { default as intersperse } from './intersperse';\nexport { default as into } from './into';\nexport { default as invert } from './invert';\nexport { default as invertObj } from './invertObj';\nexport { default as invoker } from './invoker';\nexport { default as is } from './is';\nexport { default as isEmpty } from './isEmpty';\nexport { default as isNil } from './isNil';\nexport { default as join } from './join';\nexport { default as juxt } from './juxt';\nexport { default as keys } from './keys';\nexport { default as keysIn } from './keysIn';\nexport { default as last } from './last';\nexport { default as lastIndexOf } from './lastIndexOf';\nexport { default as length } from './length';\nexport { default as lens } from './lens';\nexport { default as lensIndex } from './lensIndex';\nexport { default as lensPath } from './lensPath';\nexport { default as lensProp } from './lensProp';\nexport { default as lift } from './lift';\nexport { default as liftN } from './liftN';\nexport { default as lt } from './lt';\nexport { default as lte } from './lte';\nexport { default as map } from './map';\nexport { default as mapAccum } from './mapAccum';\nexport { default as mapAccumRight } from './mapAccumRight';\nexport { default as mapObjIndexed } from './mapObjIndexed';\nexport { default as match } from './match';\nexport { default as mathMod } from './mathMod';\nexport { default as max } from './max';\nexport { default as maxBy } from './maxBy';\nexport { default as mean } from './mean';\nexport { default as median } from './median';\nexport { default as memoize } from './memoize';\nexport { default as memoizeWith } from './memoizeWith';\nexport { default as merge } from './merge';\nexport { default as mergeAll } from './mergeAll';\nexport { default as mergeDeepLeft } from './mergeDeepLeft';\nexport { default as mergeDeepRight } from './mergeDeepRight';\nexport { default as mergeDeepWith } from './mergeDeepWith';\nexport { default as mergeDeepWithKey } from './mergeDeepWithKey';\nexport { default as mergeWith } from './mergeWith';\nexport { default as mergeWithKey } from './mergeWithKey';\nexport { default as min } from './min';\nexport { default as minBy } from './minBy';\nexport { default as modulo } from './modulo';\nexport { default as multiply } from './multiply';\nexport { default as nAry } from './nAry';\nexport { default as negate } from './negate';\nexport { default as none } from './none';\nexport { default as not } from './not';\nexport { default as nth } from './nth';\nexport { default as nthArg } from './nthArg';\nexport { default as o } from './o';\nexport { default as objOf } from './objOf';\nexport { default as of } from './of';\nexport { default as omit } from './omit';\nexport { default as once } from './once';\nexport { default as or } from './or';\nexport { default as over } from './over';\nexport { default as pair } from './pair';\nexport { default as partial } from './partial';\nexport { default as partialRight } from './partialRight';\nexport { default as partition } from './partition';\nexport { default as path } from './path';\nexport { default as pathEq } from './pathEq';\nexport { default as pathOr } from './pathOr';\nexport { default as pathSatisfies } from './pathSatisfies';\nexport { default as pick } from './pick';\nexport { default as pickAll } from './pickAll';\nexport { default as pickBy } from './pickBy';\nexport { default as pipe } from './pipe';\nexport { default as pipeK } from './pipeK';\nexport { default as pipeP } from './pipeP';\nexport { default as pluck } from './pluck';\nexport { default as prepend } from './prepend';\nexport { default as product } from './product';\nexport { default as project } from './project';\nexport { default as prop } from './prop';\nexport { default as propEq } from './propEq';\nexport { default as propIs } from './propIs';\nexport { default as propOr } from './propOr';\nexport { default as propSatisfies } from './propSatisfies';\nexport { default as props } from './props';\nexport { default as range } from './range';\nexport { default as reduce } from './reduce';\nexport { default as reduceBy } from './reduceBy';\nexport { default as reduceRight } from './reduceRight';\nexport { default as reduceWhile } from './reduceWhile';\nexport { default as reduced } from './reduced';\nexport { default as reject } from './reject';\nexport { default as remove } from './remove';\nexport { default as repeat } from './repeat';\nexport { default as replace } from './replace';\nexport { default as reverse } from './reverse';\nexport { default as scan } from './scan';\nexport { default as sequence } from './sequence';\nexport { default as set } from './set';\nexport { default as slice } from './slice';\nexport { default as sort } from './sort';\nexport { default as sortBy } from './sortBy';\nexport { default as sortWith } from './sortWith';\nexport { default as split } from './split';\nexport { default as splitAt } from './splitAt';\nexport { default as splitEvery } from './splitEvery';\nexport { default as splitWhen } from './splitWhen';\nexport { default as startsWith } from './startsWith';\nexport { default as subtract } from './subtract';\nexport { default as sum } from './sum';\nexport { default as symmetricDifference } from './symmetricDifference';\nexport { default as symmetricDifferenceWith } from './symmetricDifferenceWith';\nexport { default as tail } from './tail';\nexport { default as take } from './take';\nexport { default as takeLast } from './takeLast';\nexport { default as takeLastWhile } from './takeLastWhile';\nexport { default as takeWhile } from './takeWhile';\nexport { default as tap } from './tap';\nexport { default as test } from './test';\nexport { default as times } from './times';\nexport { default as toLower } from './toLower';\nexport { default as toPairs } from './toPairs';\nexport { default as toPairsIn } from './toPairsIn';\nexport { default as toString } from './toString';\nexport { default as toUpper } from './toUpper';\nexport { default as transduce } from './transduce';\nexport { default as transpose } from './transpose';\nexport { default as traverse } from './traverse';\nexport { default as trim } from './trim';\nexport { default as tryCatch } from './tryCatch';\nexport { default as type } from './type';\nexport { default as unapply } from './unapply';\nexport { default as unary } from './unary';\nexport { default as uncurryN } from './uncurryN';\nexport { default as unfold } from './unfold';\nexport { default as union } from './union';\nexport { default as unionWith } from './unionWith';\nexport { default as uniq } from './uniq';\nexport { default as uniqBy } from './uniqBy';\nexport { default as uniqWith } from './uniqWith';\nexport { default as unless } from './unless';\nexport { default as unnest } from './unnest';\nexport { default as until } from './until';\nexport { default as update } from './update';\nexport { default as useWith } from './useWith';\nexport { default as values } from './values';\nexport { default as valuesIn } from './valuesIn';\nexport { default as view } from './view';\nexport { default as when } from './when';\nexport { default as where } from './where';\nexport { default as whereEq } from './whereEq';\nexport { default as without } from './without';\nexport { default as xprod } from './xprod';\nexport { default as zip } from './zip';\nexport { default as zipObj } from './zipObj';\nexport { default as zipWith } from './zipWith';","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","module.exports = {};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","module.exports = true;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","exports.f = {}.propertyIsEnumerable;\n","import styled, { css } from 'styled-components';\n\nexport default styled.label`\n display: block;\n font-size: 14px;\n ${({ position }) =>\n position === 'top'\n ? css`\n margin-bottom: 8px;\n `\n : css`\n margin-top: 8px;\n `}\n ${props =>\n css`\n ${props.css}\n `}\n`;\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _getPrototypeOf = require(\"../core-js/object/get-prototype-of\");\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _getOwnPropertyDescriptor = require(\"../core-js/object/get-own-property-descriptor\");\n\nvar _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = (0, _getOwnPropertyDescriptor2.default)(object, property);\n\n if (desc === undefined) {\n var parent = (0, _getPrototypeOf2.default)(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};","/**\n * CSS conic-gradient() polyfill\n * By Lea Verou — http://lea.verou.me\n * MIT license\n */\n\n(function(){\n\nvar π = Math.PI;\nvar τ = 2 * π;\nvar ε = .00001;\nvar deg = π/180;\n\nvar dummy = document.createElement(\"div\");\ndocument.head.appendChild(dummy);\n\nvar _ = self.ConicGradient = function(o) {\n\tvar me = this;\n\t_.all.push(this);\n\n\to = o || {};\n\n\tthis.canvas = document.createElement(\"canvas\");\n\tthis.context = this.canvas.getContext(\"2d\");\n\n\tthis.repeating = !!o.repeating;\n\n\tthis.size = o.size || Math.max(innerWidth, innerHeight);\n\n\tthis.canvas.width = this.canvas.height = this.size;\n\n\tvar stops = o.stops;\n\n\tthis.stops = (stops || \"\").split(/\\s*,(?![^(]*\\))\\s*/); // commas that are not followed by a ) without a ( first\n\n\tthis.from = 0;\n\n\tfor (var i=0; i 0) {\n\t\tvar first = this.stops[0].clone();\n\t\tfirst.pos = 0;\n\t\tthis.stops.unshift(first);\n\t}\n\n\t// Add dummy last stop or set first stop’s position to 100% if it doesn’t have one\n\tif (this.stops[this.stops.length - 1].pos === undefined) {\n\t\tthis.stops[this.stops.length - 1].pos = 1;\n\t}\n\telse if (!this.repeating && this.stops[this.stops.length - 1].pos < 1) {\n\t\tvar last = this.stops[this.stops.length - 1].clone();\n\t\tlast.pos = 1;\n\t\tthis.stops.push(last);\n\t}\n\n\tthis.stops.forEach(function(stop, i){\n\t\tif (stop.pos === undefined) {\n\t\t\t// Evenly space color stops with no position\n\t\t\tfor (var j=i+1; this[j]; j++) {\n\t\t\t\tif (this[j].pos !== undefined) {\n\t\t\t\t\tstop.pos = this[i-1].pos + (this[j].pos - this[i-1].pos)/(j-i+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (i > 0) {\n\t\t\t// Normalize color stops whose position is smaller than the position of the stop before them\n\t\t\tstop.pos = Math.max(stop.pos, this[i-1].pos);\n\t\t}\n\t}, this.stops);\n\n\tif (this.repeating) {\n\t\t// Repeat color stops until >= 1\n\t\tvar stops = this.stops.slice();\n\t\tvar lastStop = stops[stops.length-1];\n\t\tvar difference = lastStop.pos - stops[0].pos;\n\n\t\tfor (var i=0; this.stops[this.stops.length-1].pos < 1 && i<10000; i++) {\n\t\t\tfor (var j=0; j' +\n\t\t\t'' +\n\t\t\t'';\n\t},\n\n\tget png() {\n\t\treturn this.canvas.toDataURL();\n\t},\n\n\tget r() {\n\t\treturn Math.sqrt(2) * this.size / 2;\n\t},\n\n\t// Paint the conical gradient on the canvas\n\t// Algorithm inspired from http://jsdo.it/akm2/yr9B\n\tpaint: function() {\n\t\tvar c = this.context;\n\n\t\tvar radius = this.r;\n\t\tvar x = this.size / 2;\n\n\t\tvar stopIndex = 0; // The index of the current color\n\t\tvar stop = this.stops[stopIndex], prevStop;\n\n\t\tvar diff, t;\n\n\t\t// Transform coordinate system so that angles start from the top left, like in CSS\n\t\tc.translate(this.size/2, this.size/2);\n\t\tc.rotate(-90*deg);\n\t\tc.rotate(this.from*deg);\n\t\tc.translate(-this.size/2, -this.size/2);\n\n\t\tfor (var i = 0; i < 360;) {\n\t\t\tif (i/360 + ε >= stop.pos) {\n\t\t\t\t// Switch color stop\n\t\t\t\tdo {\n\t\t\t\t\tprevStop = stop;\n\n\t\t\t\t\tstopIndex++;\n\t\t\t\t\tstop = this.stops[stopIndex];\n\t\t\t\t} while(stop && stop != prevStop && stop.pos === prevStop.pos);\n\n\t\t\t\tif (!stop) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tvar sameColor = prevStop.color + \"\" === stop.color + \"\" && prevStop != stop;\n\n\t\t\t\tdiff = prevStop.color.map(function(c, i){\n\t\t\t\t\treturn stop.color[i] - c;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tt = (i/360 - prevStop.pos) / (stop.pos - prevStop.pos);\n\n\t\t\tvar interpolated = sameColor? stop.color : diff.map(function(d,i){\n\t\t\t\tvar ret = d * t + prevStop.color[i];\n\n\t\t\t\treturn i < 3? ret & 255 : ret;\n\t\t\t});\n\n\t\t\t// Draw a series of arcs, 1deg each\n\t\t\tc.fillStyle = 'rgba(' + interpolated.join(\",\") + ')';\n\t\t\tc.beginPath();\n\t\t\tc.moveTo(x, x);\n\n\t\t\tif (sameColor) {\n\t\t\t\tvar θ = 360 * (stop.pos - prevStop.pos);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar θ = .5;\n\t\t\t}\n\n\t\t\tvar beginArg = i*deg;\n\t\t\tbeginArg = Math.min(360*deg, beginArg);\n\n\t\t\t// .02: To prevent empty blank line and corresponding moire\n\t\t\t// only non-alpha colors are cared now\n\t\t\tvar endArg = beginArg + θ*deg;\n\t\t\tendArg = Math.min(360*deg, endArg + .02);\n\n\t\t\tc.arc(x, x, radius, beginArg, endArg);\n\n\t\t\tc.closePath();\n\t\t\tc.fill();\n\n\t\t\ti += θ;\n\t\t}\n\t}\n};\n\n_.ColorStop = function(gradient, stop) {\n\tthis.gradient = gradient;\n\n\tif (stop) {\n\t\tvar parts = stop.match(/^(.+?)(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?(?:\\s+([\\d.]+)(%|deg|turn|grad|rad)?)?\\s*$/);\n\n\t\tthis.color = _.ColorStop.colorToRGBA(parts[1]);\n\n\t\tif (parts[2]) {\n\t\t\tvar unit = parts[3];\n\n\t\t\tif (unit == \"%\" || parts[2] === \"0\" && !unit) {\n\t\t\t\tthis.pos = parts[2]/100;\n\t\t\t}\n\t\t\telse if (unit == \"turn\") {\n\t\t\t\tthis.pos = +parts[2];\n\t\t\t}\n\t\t\telse if (unit == \"deg\") {\n\t\t\t\tthis.pos = parts[2] / 360;\n\t\t\t}\n\t\t\telse if (unit == \"grad\") {\n\t\t\t\tthis.pos = parts[2] / 400;\n\t\t\t}\n\t\t\telse if (unit == \"rad\") {\n\t\t\t\tthis.pos = parts[2] / τ;\n\t\t\t}\n\t\t}\n\n\t\tif (parts[4]) {\n\t\t\tthis.next = new _.ColorStop(gradient, parts[1] + \" \" + parts[4] + parts[5]);\n\t\t}\n\t}\n}\n\n_.ColorStop.prototype = {\n\tclone: function() {\n\t\tvar ret = new _.ColorStop(this.gradient);\n\t\tret.color = this.color;\n\t\tret.pos = this.pos;\n\n\t\treturn ret;\n\t},\n\n\ttoString: function() {\n\t\treturn \"rgba(\" + this.color.join(\", \") + \") \" + this.pos * 100 + \"%\";\n\t}\n};\n\n_.ColorStop.colorToRGBA = function(color) {\n\tif (!Array.isArray(color) && color.indexOf(\"from\") == -1) {\n\t\tdummy.style.color = color;\n\n\t\tvar rgba = getComputedStyle(dummy).color.match(/rgba?\\(([\\d.]+), ([\\d.]+), ([\\d.]+)(?:, ([\\d.]+))?\\)/);\n\n\t\tif (rgba) {\n\t\t\trgba.shift();\n\t\t\trgba = rgba.map(function(a) { return +a });\n\t\t\trgba[3] = isNaN(rgba[3])? 1 : rgba[3];\n\t\t}\n\n\t\treturn rgba || [0,0,0,0];\n\t}\n\n\treturn color;\n};\n\n})();\n\nif (self.StyleFix) {\n\t// Test if conic gradients are supported first:\n\t(function(){\n\t\tvar dummy = document.createElement(\"p\");\n\t\tdummy.style.backgroundImage = \"conic-gradient(white, black)\";\n\t\tdummy.style.backgroundImage = PrefixFree.prefix + \"conic-gradient(white, black)\";\n\n\t\tif (!dummy.style.backgroundImage) {\n\t\t\t// Not supported, use polyfill\n\t\t\tStyleFix.register(function(css, raw) {\n\t\t\t\tif (css.indexOf(\"conic-gradient\") > -1) {\n\t\t\t\t\tcss = css.replace(/(?:repeating-)?conic-gradient\\(\\s*((?:\\([^()]+\\)|[^;()}])+?)\\)/g, function(gradient, stops) {\n\t\t\t\t\t\treturn new ConicGradient({\n\t\t\t\t\t\t\tstops: stops,\n\t\t\t\t\t\t\trepeating: gradient.indexOf(\"repeating-\") > -1\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn css;\n\t\t\t});\n\t\t}\n\t})();\n}\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","!function(e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(null):\"function\"==typeof define&&define.amd?define(e(null)):window.stylis=e(null)}(function e(a){\"use strict\";var r=/^\\0+/g,c=/[\\0\\r\\f]/g,s=/: */g,t=/zoo|gra/,i=/([,: ])(transform)/g,f=/,+\\s*(?![^(]*[)])/g,n=/ +\\s*(?![^(]*[)])/g,l=/ *[\\0] */g,o=/,\\r+?/g,h=/([\\t\\r\\n ])*\\f?&/g,u=/:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g,d=/\\W+/g,b=/@(k\\w+)\\s*(\\S*)\\s*/,p=/::(place)/g,k=/:(read-only)/g,g=/\\s+(?=[{\\];=:>])/g,A=/([[}=:>])\\s+/g,C=/(\\{[^{]+?);(?=\\})/g,w=/\\s{2,}/g,v=/([^\\(])(:+) */g,m=/[svh]\\w+-[tblr]{2}/,x=/\\(\\s*(.*)\\s*\\)/g,$=/([\\s\\S]*?);/g,y=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\\w-]+)[^]*/,j=/stretch|:\\s*\\w+\\-(?:conte|avail)/,z=/([^-])(image-set\\()/,N=\"-webkit-\",S=\"-moz-\",F=\"-ms-\",W=59,q=125,B=123,D=40,E=41,G=91,H=93,I=10,J=13,K=9,L=64,M=32,P=38,Q=45,R=95,T=42,U=44,V=58,X=39,Y=34,Z=47,_=62,ee=43,ae=126,re=0,ce=12,se=11,te=107,ie=109,fe=115,ne=112,le=111,oe=105,he=99,ue=100,de=112,be=1,pe=1,ke=0,ge=1,Ae=1,Ce=1,we=0,ve=0,me=0,xe=[],$e=[],ye=0,Oe=null,je=-2,ze=-1,Ne=0,Se=1,Fe=2,We=3,qe=0,Be=1,De=\"\",Ee=\"\",Ge=\"\";function He(e,a,s,t,i){for(var f,n,o=0,h=0,u=0,d=0,g=0,A=0,C=0,w=0,m=0,$=0,y=0,O=0,j=0,z=0,R=0,we=0,$e=0,Oe=0,je=0,ze=s.length,Je=ze-1,Re=\"\",Te=\"\",Ue=\"\",Ve=\"\",Xe=\"\",Ye=\"\";R0)Te=Te.replace(c,\"\");if(Te.trim().length>0){switch(C){case M:case K:case W:case J:case I:break;default:Te+=s.charAt(R)}C=W}}if(1===$e)switch(C){case B:case q:case W:case Y:case X:case D:case E:case U:$e=0;case K:case J:case I:case M:break;default:for($e=0,je=R,g=C,R--,C=W;je0)++R,C=g;case B:je=ze}}switch(C){case B:for(g=(Te=Te.trim()).charCodeAt(0),y=1,je=++R;R0)Te=Te.replace(c,\"\");switch(A=Te.charCodeAt(1)){case ue:case ie:case fe:case Q:f=a;break;default:f=xe}if(je=(Ue=He(a,f,Ue,A,i+1)).length,me>0&&0===je)je=Te.length;if(ye>0)if(f=Ie(xe,Te,Oe),n=Pe(We,Ue,f,a,pe,be,je,A,i,t),Te=f.join(\"\"),void 0!==n)if(0===(je=(Ue=n.trim()).length))A=0,Ue=\"\";if(je>0)switch(A){case fe:Te=Te.replace(x,Me);case ue:case ie:case Q:Ue=Te+\"{\"+Ue+\"}\";break;case te:if(Ue=(Te=Te.replace(b,\"$1 $2\"+(Be>0?De:\"\")))+\"{\"+Ue+\"}\",1===Ae||2===Ae&&Le(\"@\"+Ue,3))Ue=\"@\"+N+Ue+\"@\"+Ue;else Ue=\"@\"+Ue;break;default:if(Ue=Te+Ue,t===de)Ve+=Ue,Ue=\"\"}else Ue=\"\";break;default:Ue=He(a,Ie(a,Te,Oe),Ue,t,i+1)}Xe+=Ue,O=0,$e=0,z=0,we=0,Oe=0,j=0,Te=\"\",Ue=\"\",C=s.charCodeAt(++R);break;case q:case W:if((je=(Te=(we>0?Te.replace(c,\"\"):Te).trim()).length)>1){if(0===z)if((g=Te.charCodeAt(0))===Q||g>96&&g<123)je=(Te=Te.replace(\" \",\":\")).length;if(ye>0)if(void 0!==(n=Pe(Se,Te,a,e,pe,be,Ve.length,t,i,t)))if(0===(je=(Te=n.trim()).length))Te=\"\\0\\0\";switch(g=Te.charCodeAt(0),A=Te.charCodeAt(1),g){case re:break;case L:if(A===oe||A===he){Ye+=Te+s.charAt(R);break}default:if(Te.charCodeAt(je-1)===V)break;Ve+=Ke(Te,g,A,Te.charCodeAt(2))}}O=0,$e=0,z=0,we=0,Oe=0,Te=\"\",C=s.charCodeAt(++R)}}switch(C){case J:case I:if(h+d+u+o+ve===0)switch($){case E:case X:case Y:case L:case ae:case _:case T:case ee:case Z:case Q:case V:case U:case W:case B:case q:break;default:if(z>0)$e=1}if(h===Z)h=0;else if(ge+O===0&&t!==te&&Te.length>0)we=1,Te+=\"\\0\";if(ye*qe>0)Pe(Ne,Te,a,e,pe,be,Ve.length,t,i,t);be=1,pe++;break;case W:case q:if(h+d+u+o===0){be++;break}default:switch(be++,Re=s.charAt(R),C){case K:case M:if(d+o+h===0)switch(w){case U:case V:case K:case M:Re=\"\";break;default:if(C!==M)Re=\" \"}break;case re:Re=\"\\\\0\";break;case ce:Re=\"\\\\f\";break;case se:Re=\"\\\\v\";break;case P:if(d+h+o===0&&ge>0)Oe=1,we=1,Re=\"\\f\"+Re;break;case 108:if(d+h+o+ke===0&&z>0)switch(R-z){case 2:if(w===ne&&s.charCodeAt(R-3)===V)ke=w;case 8:if(m===le)ke=m}break;case V:if(d+h+o===0)z=R;break;case U:if(h+u+d+o===0)we=1,Re+=\"\\r\";break;case Y:case X:if(0===h)d=d===C?0:0===d?C:d;break;case G:if(d+h+u===0)o++;break;case H:if(d+h+u===0)o--;break;case E:if(d+h+o===0)u--;break;case D:if(d+h+o===0){if(0===O)switch(2*w+3*m){case 533:break;default:y=0,O=1}u++}break;case L:if(h+u+d+o+z+j===0)j=1;break;case T:case Z:if(d+o+u>0)break;switch(h){case 0:switch(2*C+3*s.charCodeAt(R+1)){case 235:h=Z;break;case 220:je=R,h=T}break;case T:if(C===Z&&w===T&&je+2!==R){if(33===s.charCodeAt(je+2))Ve+=s.substring(je,R+1);Re=\"\",h=0}}}if(0===h){if(ge+d+o+j===0&&t!==te&&C!==W)switch(C){case U:case ae:case _:case ee:case E:case D:if(0===O){switch(w){case K:case M:case I:case J:Re+=\"\\0\";break;default:Re=\"\\0\"+Re+(C===U?\"\":\"\\0\")}we=1}else switch(C){case D:if(z+7===R&&108===w)z=0;O=++y;break;case E:if(0==(O=--y))we=1,Re+=\"\\0\"}break;case K:case M:switch(w){case re:case B:case q:case W:case U:case ce:case K:case M:case I:case J:break;default:if(0===O)we=1,Re+=\"\\0\"}}if(Te+=Re,C!==M&&C!==K)$=C}}m=w,w=C,R++}if(je=Ve.length,me>0)if(0===je&&0===Xe.length&&0===a[0].length==false)if(t!==ie||1===a.length&&(ge>0?Ee:Ge)===a[0])je=a.join(\",\").length+2;if(je>0){if(f=0===ge&&t!==te?function(e){for(var a,r,s=0,t=e.length,i=Array(t);s1)continue;if(u=n.charCodeAt(n.length-1),d=r.charCodeAt(0),a=\"\",0!==o)switch(u){case T:case ae:case _:case ee:case M:case D:break;default:a=\" \"}switch(d){case P:r=a+Ee;case ae:case _:case ee:case M:case E:case D:break;case G:r=a+r+Ee;break;case V:switch(2*r.charCodeAt(1)+3*r.charCodeAt(2)){case 530:if(Ce>0){r=a+r.substring(8,h-1);break}default:if(o<1||f[o-1].length<1)r=a+Ee+r}break;case U:a=\"\";default:if(h>1&&r.indexOf(\":\")>0)r=a+r.replace(v,\"$1\"+Ee+\"$2\");else r=a+r+Ee}n+=r}i[s]=n.replace(c,\"\").trim()}return i}(a):a,ye>0)if(void 0!==(n=Pe(Fe,Ve,f,e,pe,be,je,t,i,t))&&0===(Ve=n).length)return Ye+Ve+Xe;if(Ve=f.join(\",\")+\"{\"+Ve+\"}\",Ae*ke!=0){if(2===Ae&&!Le(Ve,2))ke=0;switch(ke){case le:Ve=Ve.replace(k,\":\"+S+\"$1\")+Ve;break;case ne:Ve=Ve.replace(p,\"::\"+N+\"input-$1\")+Ve.replace(p,\"::\"+S+\"$1\")+Ve.replace(p,\":\"+F+\"input-$1\")+Ve}ke=0}}return Ye+Ve+Xe}function Ie(e,a,r){var c=a.trim().split(o),s=c,t=c.length,i=e.length;switch(i){case 0:case 1:for(var f=0,n=0===i?\"\":e[0]+\" \";f0&&ge>0)return s.replace(u,\"$1\").replace(h,\"$1\"+Ge);break;default:return e.trim()+s.replace(h,\"$1\"+e.trim())}default:if(r*ge>0&&s.indexOf(\"\\f\")>0)return s.replace(h,(e.charCodeAt(0)===V?\"\":\"$1\")+e.trim())}return e+s}function Ke(e,a,r,c){var l,o=0,h=e+\";\",u=2*a+3*r+4*c;if(944===u)return function(e){var a=e.length,r=e.indexOf(\":\",9)+1,c=e.substring(0,r).trim(),s=e.substring(r,a-1).trim();switch(e.charCodeAt(9)*Be){case 0:break;case Q:if(110!==e.charCodeAt(10))break;default:for(var t=s.split((s=\"\",f)),i=0,r=0,a=t.length;iL&&h<90||h>96&&h<123||h===R||h===Q&&l.charCodeAt(1)!==Q))switch(isNaN(parseFloat(l))+(-1!==l.indexOf(\"(\"))){case 1:switch(l){case\"infinite\":case\"alternate\":case\"backwards\":case\"running\":case\"normal\":case\"forwards\":case\"both\":case\"none\":case\"linear\":case\"ease\":case\"ease-in\":case\"ease-out\":case\"ease-in-out\":case\"paused\":case\"reverse\":case\"alternate-reverse\":case\"inherit\":case\"initial\":case\"unset\":case\"step-start\":case\"step-end\":break;default:l+=De}}o[r++]=l}s+=(0===i?\"\":\",\")+o.join(\" \")}}if(s=c+s+\";\",1===Ae||2===Ae&&Le(s,1))return N+s+s;return s}(h);else if(0===Ae||2===Ae&&!Le(h,1))return h;switch(u){case 1015:return 97===h.charCodeAt(10)?N+h+h:h;case 951:return 116===h.charCodeAt(3)?N+h+h:h;case 963:return 110===h.charCodeAt(5)?N+h+h:h;case 1009:if(100!==h.charCodeAt(4))break;case 969:case 942:return N+h+h;case 978:return N+h+S+h+h;case 1019:case 983:return N+h+S+h+F+h+h;case 883:if(h.charCodeAt(8)===Q)return N+h+h;if(h.indexOf(\"image-set(\",11)>0)return h.replace(z,\"$1\"+N+\"$2\")+h;return h;case 932:if(h.charCodeAt(4)===Q)switch(h.charCodeAt(5)){case 103:return N+\"box-\"+h.replace(\"-grow\",\"\")+N+h+F+h.replace(\"grow\",\"positive\")+h;case 115:return N+h+F+h.replace(\"shrink\",\"negative\")+h;case 98:return N+h+F+h.replace(\"basis\",\"preferred-size\")+h}return N+h+F+h+h;case 964:return N+h+F+\"flex-\"+h+h;case 1023:if(99!==h.charCodeAt(8))break;return l=h.substring(h.indexOf(\":\",15)).replace(\"flex-\",\"\").replace(\"space-between\",\"justify\"),N+\"box-pack\"+l+N+h+F+\"flex-pack\"+l+h;case 1005:return t.test(h)?h.replace(s,\":\"+N)+h.replace(s,\":\"+S)+h:h;case 1e3:switch(o=(l=h.substring(13).trim()).indexOf(\"-\")+1,l.charCodeAt(0)+l.charCodeAt(o)){case 226:l=h.replace(m,\"tb\");break;case 232:l=h.replace(m,\"tb-rl\");break;case 220:l=h.replace(m,\"lr\");break;default:return h}return N+h+F+l+h;case 1017:if(-1===h.indexOf(\"sticky\",9))return h;case 975:switch(o=(h=e).length-10,u=(l=(33===h.charCodeAt(o)?h.substring(0,o):h).substring(e.indexOf(\":\",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(l.charCodeAt(8)<111)break;case 115:h=h.replace(l,N+l)+\";\"+h;break;case 207:case 102:h=h.replace(l,N+(u>102?\"inline-\":\"\")+\"box\")+\";\"+h.replace(l,N+l)+\";\"+h.replace(l,F+l+\"box\")+\";\"+h}return h+\";\";case 938:if(h.charCodeAt(5)===Q)switch(h.charCodeAt(6)){case 105:return l=h.replace(\"-items\",\"\"),N+h+N+\"box-\"+l+F+\"flex-\"+l+h;case 115:return N+h+F+\"flex-item-\"+h.replace(y,\"\")+h;default:return N+h+F+\"flex-line-pack\"+h.replace(\"align-content\",\"\").replace(y,\"\")+h}break;case 973:case 989:if(h.charCodeAt(3)!==Q||122===h.charCodeAt(4))break;case 931:case 953:if(true===j.test(e))if(115===(l=e.substring(e.indexOf(\":\")+1)).charCodeAt(0))return Ke(e.replace(\"stretch\",\"fill-available\"),a,r,c).replace(\":fill-available\",\":stretch\");else return h.replace(l,N+l)+h.replace(l,S+l.replace(\"fill-\",\"\"))+h;break;case 962:if(h=N+h+(102===h.charCodeAt(5)?F+h:\"\")+h,r+c===211&&105===h.charCodeAt(13)&&h.indexOf(\"transform\",10)>0)return h.substring(0,h.indexOf(\";\",27)+1).replace(i,\"$1\"+N+\"$2\")+h}return h}function Le(e,a){var r=e.indexOf(1===a?\":\":\"{\"),c=e.substring(0,3!==a?r:10),s=e.substring(r+1,e.length-1);return Oe(2!==a?c:c.replace(O,\"$1\"),s,a)}function Me(e,a){var r=Ke(a,a.charCodeAt(0),a.charCodeAt(1),a.charCodeAt(2));return r!==a+\";\"?r.replace($,\" or ($1)\").substring(4):\"(\"+a+\")\"}function Pe(e,a,r,c,s,t,i,f,n,l){for(var o,h=0,u=a;h0)De=s.replace(d,t===G?\"\":\"-\");if(t=1,1===ge)Ge=s;else Ee=s;var i,f=[Ge];if(ye>0)if(void 0!==(i=Pe(ze,r,f,f,pe,be,0,0,0,0))&&\"string\"==typeof i)r=i;var n=He(xe,f,r,0,0);if(ye>0)if(void 0!==(i=Pe(je,n,f,f,pe,be,n.length,0,0,0))&&\"string\"!=typeof(n=i))t=0;return De=\"\",Ge=\"\",Ee=\"\",ke=0,pe=1,be=1,we*t==0?n:n.replace(c,\"\").replace(g,\"\").replace(A,\"$1\").replace(C,\"$1\").replace(w,\" \")}if(Te.use=function e(a){switch(a){case void 0:case null:ye=$e.length=0;break;default:if(\"function\"==typeof a)$e[ye++]=a;else if(\"object\"==typeof a)for(var r=0,c=a.length;r\n import(/* webpackChunkName: \"colorpicker\" */ '../fragments/ColorPicker.react')\n);\n/**\n * A color picker.\n */\nexport default class ColorPicker extends Component {\n render() {\n return (\n \n \n \n );\n }\n}\n\nColorPicker.defaultProps = {\n size: 225,\n theme: light,\n labelPosition: 'top',\n persisted_props: ['value'],\n persistence_type: 'local'\n};\n\nColorPicker.propTypes = {\n /**\n * The ID used to identify the color picker in Dash callbacks\n */\n id: PropTypes.string,\n\n /**\n * Color value of the picker\n */\n value: PropTypes.shape({\n /**\n * Hex string\n */\n hex: PropTypes.string,\n\n /**\n * RGB/RGBA object\n */\n rbg: PropTypes.shape({\n r: PropTypes.number,\n g: PropTypes.number,\n b: PropTypes.number,\n a: PropTypes.number\n })\n }),\n\n /**\n * If true, color cannot be picked.\n */\n disabled: PropTypes.bool,\n\n /**\n * Size (width) of the component in pixels\n */\n size: PropTypes.number,\n\n /**\n * Theme configuration to be set by a ThemeProvider\n */\n theme: PropTypes.object,\n\n /**\n * Description to be displayed alongside the control. To control styling,\n * pass an object with label and style properties\n */\n label: PropTypes.oneOfType([\n /**\n * Label to be displayed\n */\n PropTypes.string,\n\n /**\n * The style and label\n */\n PropTypes.shape({\n style: PropTypes.object,\n label: PropTypes.string\n })\n ]),\n\n /**\n * Where the indicator label is positioned\n */\n labelPosition: PropTypes.oneOf(['top', 'bottom']),\n\n /**\n * Class to apply to the root component element\n */\n className: PropTypes.string,\n\n /**\n * Dash-assigned callback that gets fired when\n * the color picker's value changes\n */\n setProps: PropTypes.func,\n\n /**\n * Style to apply to the root component element\n */\n style: PropTypes.object,\n\n /**\n * Used to allow user interactions in this component to be persisted when\n * the component - or the page - is refreshed. If `persisted` is truthy and\n * hasn't changed from its previous value, a `value` that the user has\n * changed while using the app will keep that change, as long as\n * the new `value` also matches what was given originally.\n * Used in conjunction with `persistence_type`.\n */\n persistence: PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.number]),\n\n /**\n * Properties whose user interactions will persist after refreshing the\n * component or the page. Since only `value` is allowed this prop can\n * normally be ignored.\n */\n persisted_props: PropTypes.arrayOf(PropTypes.oneOf(['value'])),\n\n /**\n * Where persisted user changes will be stored:\n * memory: only kept in memory, reset on page refresh.\n * local: window.localStorage, data is kept after the browser quit.\n * session: window.sessionStorage, data is cleared once the browser quit.\n */\n persistence_type: PropTypes.oneOf(['local', 'session', 'memory'])\n};\n\nexport const defaultProps = ColorPicker.defaultProps;\nexport const propTypes = ColorPicker.propTypes;\n","// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","// 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","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = require('./_hide');\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","(function (factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory()) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory()) :\n\t\t\t(window['stylisRuleSheet'] = factory())\n}(function () {\n\n\t'use strict'\n\n\treturn function (insertRule) {\n\t\tvar delimiter = '/*|*/'\n\t\tvar needle = delimiter+'}'\n\n\t\tfunction toSheet (block) {\n\t\t\tif (block)\n\t\t\t\ttry {\n\t\t\t\t\tinsertRule(block + '}')\n\t\t\t\t} catch (e) {}\n\t\t}\n\n\t\treturn function ruleSheet (context, content, selectors, parents, line, column, length, ns, depth, at) {\n\t\t\tswitch (context) {\n\t\t\t\t// property\n\t\t\t\tcase 1:\n\t\t\t\t\t// @import\n\t\t\t\t\tif (depth === 0 && content.charCodeAt(0) === 64)\n\t\t\t\t\t\treturn insertRule(content+';'), ''\n\t\t\t\t\tbreak\n\t\t\t\t// selector\n\t\t\t\tcase 2:\n\t\t\t\t\tif (ns === 0)\n\t\t\t\t\t\treturn content + delimiter\n\t\t\t\t\tbreak\n\t\t\t\t// at-rule\n\t\t\t\tcase 3:\n\t\t\t\t\tswitch (ns) {\n\t\t\t\t\t\t// @font-face, @page\n\t\t\t\t\t\tcase 102:\n\t\t\t\t\t\tcase 112:\n\t\t\t\t\t\t\treturn insertRule(selectors[0]+content), ''\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn content + (at === 0 ? delimiter : '')\n\t\t\t\t\t}\n\t\t\t\tcase -2:\n\t\t\t\t\tcontent.split(needle).forEach(toSheet)\n\t\t\t}\n\t\t}\n\t}\n}))\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","/*!\n * TinyGradient 0.4.3\n * Copyright 2014-2018 Damien \"Mistic\" Sorel (http://www.strangeplanet.fr)\n * Licensed under MIT (http://opensource.org/licenses/MIT)\n */\n\n(function (root, factory) {\n if (typeof module !== \"undefined\" && module.exports) {\n module.exports = factory(require('tinycolor2'));\n }\n else if (typeof define === 'function' && define.amd) {\n define(['tinycolor2'], factory);\n }\n else {\n root.tinygradient = factory(root.tinycolor);\n }\n}(this, function (tinycolor) {\n \"use strict\";\n\n var RGBA_MAX = {r: 256, g: 256, b: 256, a: 1};\n var HSVA_MAX = {h: 360, s: 1, v: 1, a: 1};\n\n /**\n * Linearly compute the step size between start and end (not normalized)\n * @param {Object} start - rgba or hsva\n * @param {Object} end - rgba or hsva\n * @param {int} steps - number of desired steps\n * @return {Object} rgba or hsva\n */\n function stepize(start, end, steps) {\n var step = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n step[k] = steps === 0 ? 0 : (end[k] - start[k]) / steps;\n }\n }\n\n return step;\n }\n\n /**\n * Compute the final step color\n * @param {Object} step - rgba or hsva from `stepize`\n * @param {Object} start - rgba or hsva\n * @param {int} i - color index\n * @param {Object} max - rgba or hsva of maximum values for each channel\n * @return {Object} rgba or hsva\n */\n function interpolate(step, start, i, max) {\n var color = {};\n\n for (var k in start) {\n if (start.hasOwnProperty(k)) {\n color[k] = step[k] * i + start[k];\n color[k] = color[k] < 0 ? color[k] + max[k] : ( max[k] !== 1 ? color[k] % max[k] : color[k] );\n }\n }\n\n return color;\n }\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateRgb(stop1, stop2, steps) {\n var start = stop1.color.toRgb(),\n end = stop2.color.toRgb(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n color;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, RGBA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {Object} stop1\n * @param {Object} stop2\n * @param {int} steps\n * @param {Boolean} trigonometric - true to step in trigonometric order\n * @return {tinycolor[]} color1 included, color2 excluded\n */\n function interpolateHsv(stop1, stop2, steps, trigonometric) {\n var start = stop1.color.toHsv(),\n end = stop2.color.toHsv(),\n gradient = [stop1.color],\n step = stepize(start, end, steps),\n diff, color;\n\n // recompute hue\n if ((start.h <= end.h && !trigonometric) || (start.h >= end.h && trigonometric)) {\n diff = end.h - start.h;\n }\n else if (trigonometric) {\n diff = 360 - end.h + start.h;\n }\n else {\n diff = 360 - start.h + end.h;\n }\n step.h = Math.pow(-1, trigonometric ? 1 : 0) * Math.abs(diff) / steps;\n\n for (var i = 1; i < steps; i++) {\n color = interpolate(step, start, i, HSVA_MAX);\n gradient.push(tinycolor(color));\n }\n\n return gradient;\n }\n\n /**\n * Compute substeps between each stops\n * @param {Object[]} stops\n * @param {int} steps\n * @return {int[]}\n */\n function computeSubsteps(stops, steps) {\n var l = stops.length;\n\n // validation\n steps = parseInt(steps);\n\n if (isNaN(steps) || steps < 2) {\n throw new Error('Invalid number of steps (< 2)');\n }\n if (steps < l) {\n throw new Error('Number of steps cannot be inferior to number of stops');\n }\n\n // compute substeps from stop positions\n var substeps = [];\n\n for (var i = 1; i < l; i++) {\n var step = (steps - 1) * (stops[i].pos - stops[i - 1].pos);\n substeps.push(Math.max(1, Math.round(step)));\n }\n\n // adjust number of steps\n var totalSubsteps = 1;\n for (var n = l - 1; n--;) totalSubsteps += substeps[n];\n\n while (totalSubsteps !== steps) {\n if (totalSubsteps < steps) {\n var min = Math.min.apply(null, substeps);\n substeps[substeps.indexOf(min)]++;\n totalSubsteps++;\n }\n else {\n var max = Math.max.apply(null, substeps);\n substeps[substeps.indexOf(max)]--;\n totalSubsteps--;\n }\n }\n\n return substeps;\n }\n\n /**\n * Compute the color at a specific position\n * @param {Object[]} stops\n * @param {float} pos\n * @param {string} method\n * @param {Object} max\n * @returns {tinycolor}\n */\n function computeAt(stops, pos, method, max) {\n if (pos < 0 || pos > 1) {\n throw new Error('Position must be between 0 and 1');\n }\n\n var start, end;\n for (var i = 0, l = stops.length; i < l - 1; i++) {\n if (pos >= stops[i].pos && pos < stops[i + 1].pos) {\n start = stops[i];\n end = stops[i + 1];\n break;\n }\n }\n\n if (!start) {\n start = end = stops[stops.length - 1];\n }\n\n var step = stepize(start.color[method](), end.color[method](), (end.pos - start.pos) * 100);\n var color = interpolate(step, start.color[method](), Math.round((pos - start.pos) * 100), max);\n return tinycolor(color);\n }\n\n /**\n * @class tinygradient\n * @param {*} stops\n */\n var TinyGradient = function (stops) {\n // varargs\n if (arguments.length === 1) {\n if (!(arguments[0] instanceof Array)) {\n throw new Error('\"stops\" is not an array');\n }\n stops = arguments[0];\n }\n else {\n stops = Array.prototype.slice.call(arguments);\n }\n\n // if we are called as a function, call using new instead\n if (!(this instanceof TinyGradient)) {\n return new TinyGradient(stops);\n }\n\n // validation\n if (stops.length < 2) {\n throw new Error('Invalid number of stops (< 2)');\n }\n\n var havingPositions = stops[0].pos !== undefined,\n l = stops.length,\n p = -1;\n // create tinycolor objects and clean positions\n this.stops = stops.map(function (stop, i) {\n var hasPosition = stop.pos !== undefined;\n if (havingPositions ^ hasPosition) {\n throw new Error('Cannot mix positionned and not posionned color stops');\n }\n\n if (hasPosition) {\n stop = {\n color: tinycolor(stop.color),\n pos : stop.pos\n };\n\n if (stop.pos < 0 || stop.pos > 1) {\n throw new Error('Color stops positions must be between 0 and 1');\n }\n else if (stop.pos <= p) {\n throw new Error('Color stops positions are not ordered');\n }\n p = stop.pos;\n }\n else {\n stop = {\n color: tinycolor(stop),\n pos : i / (l - 1)\n };\n }\n\n return stop;\n });\n\n if (this.stops[0].pos !== 0) {\n this.stops.unshift({\n color: this.stops[0].color,\n pos : 0\n });\n }\n if (this.stops[this.stops.length - 1].pos !== 1) {\n this.stops.push({\n color: this.stops[this.stops.length - 1].color,\n pos : 1\n });\n }\n };\n\n /**\n * Return new instance with reversed stops\n * @return {tinygradient}\n */\n TinyGradient.prototype.reverse = function () {\n var stops = [];\n\n this.stops.forEach(function (stop) {\n stops.push({\n color: stop.color,\n pos : 1 - stop.pos\n });\n });\n\n return new TinyGradient(stops.reverse());\n };\n\n /**\n * Generate gradient with RGBa interpolation\n * @param {int} steps\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.rgb = function (steps) {\n var substeps = computeSubsteps(this.stops, steps),\n gradient = [];\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate gradient with HSVa interpolation\n * @param {int} steps\n * @param {Boolean|String} [mode=false]\n * - false to step in clockwise\n * - true to step in trigonometric order\n * - 'short' to use the shortest way\n * - 'long' to use the longest way\n * @return {tinycolor[]}\n */\n TinyGradient.prototype.hsv = function (steps, mode) {\n var substeps = computeSubsteps(this.stops, steps),\n trigonometric = mode === true,\n parametrized = typeof mode === 'string',\n gradient = [],\n start, end, trig;\n\n for (var i = 0, l = this.stops.length; i < l - 1; i++) {\n start = this.stops[i].color.toHsv();\n end = this.stops[i + 1].color.toHsv();\n\n if (parametrized) {\n trig = (start.h < end.h && end.h - start.h < 180) || (start.h > end.h && start.h - end.h > 180);\n }\n\n // rgb interpolation if one of the steps in grayscale\n if (start.s === 0 || end.s === 0) {\n gradient = gradient.concat(interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]));\n }\n else {\n gradient = gradient.concat(interpolateHsv(this.stops[i], this.stops[i + 1], substeps[i],\n (mode === 'long' && trig) || (mode === 'short' && !trig) || (!parametrized && trigonometric)\n ));\n }\n }\n\n gradient.push(this.stops[l - 1].color);\n\n return gradient;\n };\n\n /**\n * Generate CSS3 command (no prefix) for this gradient\n * @param {String} [mode=linear] - 'linear' or 'radial'\n * @param {String} [direction] - default is 'to right' or 'ellipse at center'\n * @return {String}\n */\n TinyGradient.prototype.css = function (mode, direction) {\n mode = mode || 'linear';\n direction = direction || (mode === 'linear' ? 'to right' : 'ellipse at center');\n\n var css = mode + '-gradient(' + direction;\n this.stops.forEach(function (stop) {\n css += ', ' + stop.color.toRgbString() + ' ' + (stop.pos * 100) + '%';\n });\n css += ')';\n return css;\n };\n\n /**\n * Returns the color at specific position with RGBa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.rgbAt = function (pos) {\n return computeAt(this.stops, pos, 'toRgb', RGBA_MAX);\n };\n\n /**\n * Returns the color at specific position with HSVa interpolation\n * @param {float} pos, between 0 and 1\n * @return {tinycolor}\n */\n TinyGradient.prototype.hsvAt = function (pos) {\n return computeAt(this.stops, pos, 'toHsv', HSVA_MAX);\n };\n\n var STATIC_FNS = {\n 'rgb' : 1,\n 'hsv' : 2,\n 'css' : 2,\n 'rgbAt': 1,\n 'hsvAt': 1\n };\n\n Object.keys(STATIC_FNS).forEach(function (fn) {\n TinyGradient[fn] = function () {\n var colors = Array.prototype.slice.call(arguments);\n var args = colors.splice(-STATIC_FNS[fn]);\n var gradient = new TinyGradient(colors);\n return gradient[fn].apply(gradient, args);\n };\n });\n\n // export\n return TinyGradient;\n}));","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = addEventListener;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventObject = require('./EventObject');\n\nvar _EventObject2 = _interopRequireDefault(_EventObject);\n\nfunction addEventListener(target, eventType, callback, option) {\n function wrapCallback(e) {\n var ne = new _EventObject2['default'](e);\n callback.call(target, ne);\n }\n\n if (target.addEventListener) {\n var _ret = (function () {\n var useCapture = false;\n if (typeof option === 'object') {\n useCapture = option.capture || false;\n } else if (typeof option === 'boolean') {\n useCapture = option;\n }\n\n target.addEventListener(eventType, wrapCallback, option || false);\n\n return {\n v: {\n remove: function remove() {\n target.removeEventListener(eventType, wrapCallback, useCapture);\n }\n }\n };\n })();\n\n if (typeof _ret === 'object') return _ret.v;\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, wrapCallback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, wrapCallback);\n }\n };\n }\n}\n\nmodule.exports = exports['default'];","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\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 }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.nipplejs = f()}})(function(){var define,module,exports;\n'use strict';\n\n// Constants\nvar isTouch = !!('ontouchstart' in window);\nvar isPointer = window.PointerEvent ? true : false;\nvar isMSPointer = window.MSPointerEvent ? true : false;\nvar events = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend, touchcancel'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n },\n pointer: {\n start: 'pointerdown',\n move: 'pointermove',\n end: 'pointerup, pointercancel'\n },\n MSPointer: {\n start: 'MSPointerDown',\n move: 'MSPointerMove',\n end: 'MSPointerUp'\n }\n};\nvar toBind;\nvar secondBind = {};\nif (isPointer) {\n toBind = events.pointer;\n} else if (isMSPointer) {\n toBind = events.MSPointer;\n} else if (isTouch) {\n toBind = events.touch;\n secondBind = events.mouse;\n} else {\n toBind = events.mouse;\n}\n\n///////////////////////\n/// UTILS ///\n///////////////////////\n\nvar u = {};\nu.distance = function (p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return Math.sqrt((dx * dx) + (dy * dy));\n};\n\nu.angle = function(p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n\n return u.degrees(Math.atan2(dy, dx));\n};\n\nu.findCoord = function(p, d, a) {\n var b = {x: 0, y: 0};\n a = u.radians(a);\n b.x = p.x - d * Math.cos(a);\n b.y = p.y - d * Math.sin(a);\n return b;\n};\n\nu.radians = function(a) {\n return a * (Math.PI / 180);\n};\n\nu.degrees = function(a) {\n return a * (180 / Math.PI);\n};\n\nu.bindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.addEventListener) {\n el.addEventListener(type, handler, false);\n } else if (el.attachEvent) {\n el.attachEvent(type, handler);\n }\n }\n};\n\nu.unbindEvt = function (el, arg, handler) {\n var types = arg.split(/[ ,]+/g);\n var type;\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (el.removeEventListener) {\n el.removeEventListener(type, handler);\n } else if (el.detachEvent) {\n el.detachEvent(type, handler);\n }\n }\n};\n\nu.trigger = function (el, type, data) {\n var evt = new CustomEvent(type, data);\n el.dispatchEvent(evt);\n};\n\nu.prepareEvent = function (evt) {\n evt.preventDefault();\n return evt.type.match(/^touch/) ? evt.changedTouches : evt;\n};\n\nu.getScroll = function () {\n var x = (window.pageXOffset !== undefined) ?\n window.pageXOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollLeft;\n\n var y = (window.pageYOffset !== undefined) ?\n window.pageYOffset :\n (document.documentElement || document.body.parentNode || document.body)\n .scrollTop;\n return {\n x: x,\n y: y\n };\n};\n\nu.applyPosition = function (el, pos) {\n if (pos.top || pos.right || pos.bottom || pos.left) {\n el.style.top = pos.top;\n el.style.right = pos.right;\n el.style.bottom = pos.bottom;\n el.style.left = pos.left;\n } else {\n el.style.left = pos.x + 'px';\n el.style.top = pos.y + 'px';\n }\n};\n\nu.getTransitionStyle = function (property, values, time) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (typeof values === 'string') {\n obj[i] = values + ' ' + time;\n } else {\n var st = '';\n for (var j = 0, max = values.length; j < max; j += 1) {\n st += values[j] + ' ' + time + ', ';\n }\n obj[i] = st.slice(0, -2);\n }\n }\n }\n return obj;\n};\n\nu.getVendorStyle = function (property, value) {\n var obj = u.configStylePropertyObject(property);\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n obj[i] = value;\n }\n }\n return obj;\n};\n\nu.configStylePropertyObject = function (prop) {\n var obj = {};\n obj[prop] = '';\n var vendors = ['webkit', 'Moz', 'o'];\n vendors.forEach(function (vendor) {\n obj[vendor + prop.charAt(0).toUpperCase() + prop.slice(1)] = '';\n });\n return obj;\n};\n\nu.extend = function (objA, objB) {\n for (var i in objB) {\n if (objB.hasOwnProperty(i)) {\n objA[i] = objB[i];\n }\n }\n return objA;\n};\n\n// Overwrite only what's already present\nu.safeExtend = function (objA, objB) {\n var obj = {};\n for (var i in objA) {\n if (objA.hasOwnProperty(i) && objB.hasOwnProperty(i)) {\n obj[i] = objB[i];\n } else if (objA.hasOwnProperty(i)) {\n obj[i] = objA[i];\n }\n }\n return obj;\n};\n\n// Map for array or unique item.\nu.map = function (ar, fn) {\n if (ar.length) {\n for (var i = 0, max = ar.length; i < max; i += 1) {\n fn(ar[i]);\n }\n } else {\n fn(ar);\n }\n};\n\n///////////////////////\n/// SUPER CLASS ///\n///////////////////////\n\nfunction Super () {};\n\n// Basic event system.\nSuper.prototype.on = function (arg, cb) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n self._handlers_[type] = self._handlers_[type] || [];\n self._handlers_[type].push(cb);\n }\n return self;\n};\n\nSuper.prototype.off = function (type, cb) {\n var self = this;\n self._handlers_ = self._handlers_ || {};\n\n if (type === undefined) {\n self._handlers_ = {};\n } else if (cb === undefined) {\n self._handlers_[type] = null;\n } else if (self._handlers_[type] &&\n self._handlers_[type].indexOf(cb) >= 0) {\n self._handlers_[type].splice(self._handlers_[type].indexOf(cb), 1);\n }\n\n return self;\n};\n\nSuper.prototype.trigger = function (arg, data) {\n var self = this;\n var types = arg.split(/[ ,]+/g);\n var type;\n self._handlers_ = self._handlers_ || {};\n\n for (var i = 0; i < types.length; i += 1) {\n type = types[i];\n if (self._handlers_[type] && self._handlers_[type].length) {\n self._handlers_[type].forEach(function (handler) {\n handler.call(self, {\n type: type,\n target: self\n }, data);\n });\n }\n }\n};\n\n// Configuration\nSuper.prototype.config = function (options) {\n var self = this;\n self.options = self.defaults || {};\n if (options) {\n self.options = u.safeExtend(self.options, options);\n }\n};\n\n// Bind internal events.\nSuper.prototype.bindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n self._domHandlers_[type] = function () {\n if (typeof self['on' + type] === 'function') {\n self['on' + type].apply(self, arguments);\n } else {\n console.warn('[WARNING] : Missing \"on' + type + '\" handler.');\n }\n };\n\n u.bindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.bindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n return self;\n};\n\n// Unbind dom events.\nSuper.prototype.unbindEvt = function (el, type) {\n var self = this;\n self._domHandlers_ = self._domHandlers_ || {};\n\n u.unbindEvt(el, toBind[type], self._domHandlers_[type]);\n\n if (secondBind[type]) {\n // Support for both touch and mouse at the same time.\n u.unbindEvt(el, secondBind[type], self._domHandlers_[type]);\n }\n\n delete self._domHandlers_[type];\n\n return this;\n};\n\n///////////////////////\n/// THE NIPPLE ///\n///////////////////////\n\nfunction Nipple (collection, options) {\n this.identifier = options.identifier;\n this.position = options.position;\n this.frontPosition = options.frontPosition;\n this.collection = collection;\n\n // Defaults\n this.defaults = {\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n mode: 'dynamic',\n zone: document.body,\n lockX: false,\n lockY: false\n };\n\n this.config(options);\n\n // Overwrites\n if (this.options.mode === 'dynamic') {\n this.options.restOpacity = 0;\n }\n\n this.id = Nipple.id;\n Nipple.id += 1;\n this.buildEl()\n .stylize();\n\n // Nipple's API.\n this.instance = {\n el: this.ui.el,\n on: this.on.bind(this),\n off: this.off.bind(this),\n show: this.show.bind(this),\n hide: this.hide.bind(this),\n add: this.addToDom.bind(this),\n remove: this.removeFromDom.bind(this),\n destroy: this.destroy.bind(this),\n resetDirection: this.resetDirection.bind(this),\n computeDirection: this.computeDirection.bind(this),\n trigger: this.trigger.bind(this),\n position: this.position,\n frontPosition: this.frontPosition,\n ui: this.ui,\n identifier: this.identifier,\n id: this.id,\n options: this.options\n };\n\n return this.instance;\n};\n\nNipple.prototype = new Super();\nNipple.constructor = Nipple;\nNipple.id = 0;\n\n// Build the dom element of the Nipple instance.\nNipple.prototype.buildEl = function (options) {\n this.ui = {};\n\n if (this.options.dataOnly) {\n return this;\n }\n\n this.ui.el = document.createElement('div');\n this.ui.back = document.createElement('div');\n this.ui.front = document.createElement('div');\n\n this.ui.el.className = 'nipple collection_' + this.collection.id;\n this.ui.back.className = 'back';\n this.ui.front.className = 'front';\n\n this.ui.el.setAttribute('id', 'nipple_' + this.collection.id +\n '_' + this.id);\n\n this.ui.el.appendChild(this.ui.back);\n this.ui.el.appendChild(this.ui.front);\n\n return this;\n};\n\n// Apply CSS to the Nipple instance.\nNipple.prototype.stylize = function () {\n if (this.options.dataOnly) {\n return this;\n }\n var animTime = this.options.fadeTime + 'ms';\n var borderStyle = u.getVendorStyle('borderRadius', '50%');\n var transitStyle = u.getTransitionStyle('transition', 'opacity', animTime);\n var styles = {};\n styles.el = {\n position: 'absolute',\n opacity: this.options.restOpacity,\n display: 'block',\n 'zIndex': 999\n };\n\n styles.back = {\n position: 'absolute',\n display: 'block',\n width: this.options.size + 'px',\n height: this.options.size + 'px',\n marginLeft: -this.options.size / 2 + 'px',\n marginTop: -this.options.size / 2 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n styles.front = {\n width: this.options.size / 2 + 'px',\n height: this.options.size / 2 + 'px',\n position: 'absolute',\n display: 'block',\n marginLeft: -this.options.size / 4 + 'px',\n marginTop: -this.options.size / 4 + 'px',\n background: this.options.color,\n 'opacity': '.5'\n };\n\n u.extend(styles.el, transitStyle);\n u.extend(styles.back, borderStyle);\n u.extend(styles.front, borderStyle);\n\n this.applyStyles(styles);\n\n return this;\n};\n\nNipple.prototype.applyStyles = function (styles) {\n // Apply styles\n for (var i in this.ui) {\n if (this.ui.hasOwnProperty(i)) {\n for (var j in styles[i]) {\n this.ui[i].style[j] = styles[i][j];\n }\n }\n }\n\n return this;\n};\n\n// Inject the Nipple instance into DOM.\nNipple.prototype.addToDom = function () {\n // We're not adding it if we're dataOnly or already in dom.\n if (this.options.dataOnly || document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.appendChild(this.ui.el);\n return this;\n};\n\n// Remove the Nipple instance from DOM.\nNipple.prototype.removeFromDom = function () {\n if (this.options.dataOnly || !document.body.contains(this.ui.el)) {\n return this;\n }\n this.options.zone.removeChild(this.ui.el);\n return this;\n};\n\n// Entirely destroy this nipple\nNipple.prototype.destroy = function () {\n clearTimeout(this.removeTimeout);\n clearTimeout(this.showTimeout);\n clearTimeout(this.restTimeout);\n this.trigger('destroyed', this.instance);\n this.removeFromDom();\n this.off();\n};\n\n// Fade in the Nipple instance.\nNipple.prototype.show = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.addToDom();\n\n self.restCallback();\n\n setTimeout(function () {\n self.ui.el.style.opacity = 1;\n }, 0);\n\n self.showTimeout = setTimeout(function () {\n self.trigger('shown', self.instance);\n if (typeof cb === 'function') {\n cb.call(this);\n }\n }, self.options.fadeTime);\n\n return self;\n};\n\n// Fade out the Nipple instance.\nNipple.prototype.hide = function (cb) {\n var self = this;\n\n if (self.options.dataOnly) {\n return self;\n }\n\n self.ui.el.style.opacity = self.options.restOpacity;\n\n clearTimeout(self.removeTimeout);\n clearTimeout(self.showTimeout);\n clearTimeout(self.restTimeout);\n\n self.removeTimeout = setTimeout(\n function () {\n var display = self.options.mode === 'dynamic' ? 'none' : 'block';\n self.ui.el.style.display = display;\n if (typeof cb === 'function') {\n cb.call(self);\n }\n\n self.trigger('hidden', self.instance);\n },\n self.options.fadeTime\n );\n if (self.options.restJoystick) {\n self.restPosition();\n }\n\n return self;\n};\n\nNipple.prototype.restPosition = function (cb) {\n var self = this;\n self.frontPosition = {\n x: 0,\n y: 0\n };\n var animTime = self.options.fadeTime + 'ms';\n\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition',\n ['top', 'left'], animTime);\n\n var styles = {front: {}};\n styles.front = {\n left: self.frontPosition.x + 'px',\n top: self.frontPosition.y + 'px'\n };\n\n self.applyStyles(transitStyle);\n self.applyStyles(styles);\n\n self.restTimeout = setTimeout(\n function () {\n if (typeof cb === 'function') {\n cb.call(self);\n }\n self.restCallback();\n },\n self.options.fadeTime\n );\n};\n\nNipple.prototype.restCallback = function () {\n var self = this;\n var transitStyle = {};\n transitStyle.front = u.getTransitionStyle('transition', 'none', '');\n self.applyStyles(transitStyle);\n self.trigger('rested', self.instance);\n};\n\nNipple.prototype.resetDirection = function () {\n // Fully rebuild the object to let the iteration possible.\n this.direction = {\n x: false,\n y: false,\n angle: false\n };\n};\n\nNipple.prototype.computeDirection = function (obj) {\n var rAngle = obj.angle.radian;\n var angle45 = Math.PI / 4;\n var angle90 = Math.PI / 2;\n var direction, directionX, directionY;\n\n // Angular direction\n // \\ UP /\n // \\ /\n // LEFT RIGHT\n // / \\\n // /DOWN \\\n //\n if (\n rAngle > angle45 &&\n rAngle < (angle45 * 3) &&\n !obj.lockX\n ) {\n direction = 'up';\n } else if (\n rAngle > -angle45 &&\n rAngle <= angle45 &&\n !obj.lockY\n ) {\n direction = 'left';\n } else if (\n rAngle > (-angle45 * 3) &&\n rAngle <= -angle45 &&\n !obj.lockX\n ) {\n direction = 'down';\n } else if (!obj.lockY) {\n direction = 'right';\n }\n\n // Plain direction\n // UP |\n // _______ | RIGHT\n // LEFT |\n // DOWN |\n if (!obj.lockY) {\n if (rAngle > -angle90 && rAngle < angle90) {\n directionX = 'left';\n } else {\n directionX = 'right';\n }\n }\n\n if (!obj.lockX) {\n if (rAngle > 0) {\n directionY = 'up';\n } else {\n directionY = 'down';\n }\n }\n\n if (obj.force > this.options.threshold) {\n var oldDirection = {};\n for (var i in this.direction) {\n if (this.direction.hasOwnProperty(i)) {\n oldDirection[i] = this.direction[i];\n }\n }\n\n var same = {};\n\n this.direction = {\n x: directionX,\n y: directionY,\n angle: direction\n };\n\n obj.direction = this.direction;\n\n for (var i in oldDirection) {\n if (oldDirection[i] === this.direction[i]) {\n same[i] = true;\n }\n }\n\n // If all 3 directions are the same, we don't trigger anything.\n if (same.x && same.y && same.angle) {\n return obj;\n }\n\n if (!same.x || !same.y) {\n this.trigger('plain', obj);\n }\n\n if (!same.x) {\n this.trigger('plain:' + directionX, obj);\n }\n\n if (!same.y) {\n this.trigger('plain:' + directionY, obj);\n }\n\n if (!same.angle) {\n this.trigger('dir dir:' + direction, obj);\n }\n }\n return obj;\n};\n\n/* global Nipple, Super */\n\n///////////////////////////\n/// THE COLLECTION ///\n///////////////////////////\n\nfunction Collection (manager, options) {\n var self = this;\n self.nipples = [];\n self.idles = [];\n self.actives = [];\n self.ids = [];\n self.pressureIntervals = {};\n self.manager = manager;\n self.id = Collection.id;\n Collection.id += 1;\n\n // Defaults\n self.defaults = {\n zone: document.body,\n multitouch: false,\n maxNumberOfNipples: 10,\n mode: 'dynamic',\n position: {top: 0, left: 0},\n catchDistance: 200,\n size: 100,\n threshold: 0.1,\n color: 'white',\n fadeTime: 250,\n dataOnly: false,\n restJoystick: true,\n restOpacity: 0.5,\n lockX: false,\n lockY: false\n };\n\n self.config(options);\n\n // Overwrites\n if (self.options.mode === 'static' || self.options.mode === 'semi') {\n self.options.multitouch = false;\n }\n\n if (!self.options.multitouch) {\n self.options.maxNumberOfNipples = 1;\n }\n\n self.updateBox();\n self.prepareNipples();\n self.bindings();\n self.begin();\n\n return self.nipples;\n}\n\nCollection.prototype = new Super();\nCollection.constructor = Collection;\nCollection.id = 0;\n\nCollection.prototype.prepareNipples = function () {\n var self = this;\n var nips = self.nipples;\n\n // Public API Preparation.\n nips.on = self.on.bind(self);\n nips.off = self.off.bind(self);\n nips.options = self.options;\n nips.destroy = self.destroy.bind(self);\n nips.ids = self.ids;\n nips.id = self.id;\n nips.processOnMove = self.processOnMove.bind(self);\n nips.processOnEnd = self.processOnEnd.bind(self);\n nips.get = function (id) {\n if (id === undefined) {\n return nips[0];\n }\n for (var i = 0, max = nips.length; i < max; i += 1) {\n if (nips[i].identifier === id) {\n return nips[i];\n }\n }\n return false;\n };\n};\n\nCollection.prototype.bindings = function () {\n var self = this;\n // Touch start event.\n self.bindEvt(self.options.zone, 'start');\n // Avoid native touch actions (scroll, zoom etc...) on the zone.\n self.options.zone.style.touchAction = 'none';\n self.options.zone.style.msTouchAction = 'none';\n};\n\nCollection.prototype.begin = function () {\n var self = this;\n var opts = self.options;\n\n // We place our static nipple\n // if needed.\n if (opts.mode === 'static') {\n var nipple = self.createNipple(\n opts.position,\n self.manager.getIdentifier()\n );\n // Add it to the dom.\n nipple.add();\n // Store it in idles.\n self.idles.push(nipple);\n }\n};\n\n// Nipple Factory\nCollection.prototype.createNipple = function (position, identifier) {\n var self = this;\n var scroll = u.getScroll();\n var toPutOn = {};\n var opts = self.options;\n\n if (position.x && position.y) {\n toPutOn = {\n x: position.x -\n (scroll.x + self.box.left),\n y: position.y -\n (scroll.y + self.box.top)\n };\n } else if (\n position.top ||\n position.right ||\n position.bottom ||\n position.left\n ) {\n\n // We need to compute the position X / Y of the joystick.\n var dumb = document.createElement('DIV');\n dumb.style.display = 'hidden';\n dumb.style.top = position.top;\n dumb.style.right = position.right;\n dumb.style.bottom = position.bottom;\n dumb.style.left = position.left;\n dumb.style.position = 'absolute';\n\n opts.zone.appendChild(dumb);\n var dumbBox = dumb.getBoundingClientRect();\n opts.zone.removeChild(dumb);\n\n toPutOn = position;\n position = {\n x: dumbBox.left + scroll.x,\n y: dumbBox.top + scroll.y\n };\n }\n\n var nipple = new Nipple(self, {\n color: opts.color,\n size: opts.size,\n threshold: opts.threshold,\n fadeTime: opts.fadeTime,\n dataOnly: opts.dataOnly,\n restJoystick: opts.restJoystick,\n restOpacity: opts.restOpacity,\n mode: opts.mode,\n identifier: identifier,\n position: position,\n zone: opts.zone,\n frontPosition: {\n x: 0,\n y: 0\n }\n });\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.el, toPutOn);\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n self.nipples.push(nipple);\n self.trigger('added ' + nipple.identifier + ':added', nipple);\n self.manager.trigger('added ' + nipple.identifier + ':added', nipple);\n\n self.bindNipple(nipple);\n\n return nipple;\n};\n\nCollection.prototype.updateBox = function () {\n var self = this;\n self.box = self.options.zone.getBoundingClientRect();\n};\n\nCollection.prototype.bindNipple = function (nipple) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's id.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed.\n nipple.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n nipple.on('shown hidden rested dir plain', handler);\n nipple.on('dir:up dir:right dir:down dir:left', handler);\n nipple.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nCollection.prototype.pressureFn = function (touch, nipple, identifier) {\n var self = this;\n var previousPressure = 0;\n clearInterval(self.pressureIntervals[identifier]);\n // Create an interval that will read the pressure every 100ms\n self.pressureIntervals[identifier] = setInterval(function () {\n var pressure = touch.force || touch.pressure ||\n touch.webkitForce || 0;\n if (pressure !== previousPressure) {\n nipple.trigger('pressure', pressure);\n self.trigger('pressure ' +\n nipple.identifier + ':pressure', pressure);\n previousPressure = pressure;\n }\n }.bind(self), 100);\n};\n\nCollection.prototype.onstart = function (evt) {\n var self = this;\n var opts = self.options;\n evt = u.prepareEvent(evt);\n\n // Update the box position\n self.updateBox();\n\n var process = function (touch) {\n // If we can create new nipples\n // meaning we don't have more active nipples than we should.\n if (self.actives.length < opts.maxNumberOfNipples) {\n self.processOnStart(touch);\n }\n };\n\n u.map(evt, process);\n\n // We ask upstream to bind the document\n // on 'move' and 'end'\n self.manager.bindDocument();\n return false;\n};\n\nCollection.prototype.processOnStart = function (evt) {\n var self = this;\n var opts = self.options;\n var indexInIdles;\n var identifier = self.manager.getIdentifier(evt);\n var pressure = evt.force || evt.pressure || evt.webkitForce || 0;\n var position = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var nipple = self.getOrCreate(identifier, position);\n\n // Update its touch identifier\n if (nipple.identifier !== identifier) {\n self.manager.removeIdentifier(nipple.identifier);\n }\n nipple.identifier = identifier;\n\n var process = function (nip) {\n // Trigger the start.\n nip.trigger('start', nip);\n self.trigger('start ' + nip.id + ':start', nip);\n\n nip.show();\n if (pressure > 0) {\n self.pressureFn(evt, nip, nip.identifier);\n }\n // Trigger the first move event.\n self.processOnMove(evt);\n };\n\n // Transfer it from idles to actives.\n if ((indexInIdles = self.idles.indexOf(nipple)) >= 0) {\n self.idles.splice(indexInIdles, 1);\n }\n\n // Store the nipple in the actives array\n self.actives.push(nipple);\n self.ids.push(nipple.identifier);\n\n if (opts.mode !== 'semi') {\n process(nipple);\n } else {\n // In semi we check the distance of the touch\n // to decide if we have to reset the nipple\n var distance = u.distance(position, nipple.position);\n if (distance <= opts.catchDistance) {\n process(nipple);\n } else {\n nipple.destroy();\n self.processOnStart(evt);\n return;\n }\n }\n\n return nipple;\n};\n\nCollection.prototype.getOrCreate = function (identifier, position) {\n var self = this;\n var opts = self.options;\n var nipple;\n\n // If we're in static or semi, we might already have an active.\n if (/(semi|static)/.test(opts.mode)) {\n // Get the active one.\n // TODO: Multi-touche for semi and static will start here.\n // Return the nearest one.\n nipple = self.idles[0];\n if (nipple) {\n self.idles.splice(0, 1);\n return nipple;\n }\n\n if (opts.mode === 'semi') {\n // If we're in semi mode, we need to create one.\n return self.createNipple(position, identifier);\n }\n\n console.warn('Coudln\\'t find the needed nipple.');\n return false;\n }\n // In dynamic, we create a new one.\n nipple = self.createNipple(position, identifier);\n return nipple;\n};\n\nCollection.prototype.processOnMove = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n\n if (!nipple) {\n // This is here just for safety.\n // It shouldn't happen.\n console.error('Found zombie joystick with ID ' + identifier);\n self.manager.removeIdentifier(identifier);\n return;\n }\n\n nipple.identifier = identifier;\n\n var size = nipple.options.size / 2;\n var pos = {\n x: evt.pageX,\n y: evt.pageY\n };\n\n var dist = u.distance(pos, nipple.position);\n var angle = u.angle(pos, nipple.position);\n var rAngle = u.radians(angle);\n var force = dist / size;\n\n // If distance is bigger than nipple's size\n // we clamp the position.\n if (dist > size) {\n dist = size;\n pos = u.findCoord(nipple.position, dist, angle);\n }\n\n var xPosition = pos.x - nipple.position.x\n var yPosition = pos.y - nipple.position.y\n\n if (opts.lockX){\n yPosition = 0\n }\n if (opts.lockY) {\n xPosition = 0\n }\n\n nipple.frontPosition = {\n x: xPosition,\n y: yPosition\n };\n\n if (!opts.dataOnly) {\n u.applyPosition(nipple.ui.front, nipple.frontPosition);\n }\n\n // Prepare event's datas.\n var toSend = {\n identifier: nipple.identifier,\n position: pos,\n force: force,\n pressure: evt.force || evt.pressure || evt.webkitForce || 0,\n distance: dist,\n angle: {\n radian: rAngle,\n degree: angle\n },\n instance: nipple,\n lockX: opts.lockX,\n lockY: opts.lockY\n };\n\n // Compute the direction's datas.\n toSend = nipple.computeDirection(toSend);\n\n // Offset angles to follow units circle.\n toSend.angle = {\n radian: u.radians(180 - angle),\n degree: 180 - angle\n };\n\n // Send everything to everyone.\n nipple.trigger('move', toSend);\n self.trigger('move ' + nipple.id + ':move', toSend);\n};\n\nCollection.prototype.processOnEnd = function (evt) {\n var self = this;\n var opts = self.options;\n var identifier = self.manager.getIdentifier(evt);\n var nipple = self.nipples.get(identifier);\n var removedIdentifier = self.manager.removeIdentifier(nipple.identifier);\n\n if (!nipple) {\n return;\n }\n\n if (!opts.dataOnly) {\n nipple.hide(function () {\n if (opts.mode === 'dynamic') {\n nipple.trigger('removed', nipple);\n self.trigger('removed ' + nipple.id + ':removed', nipple);\n self.manager\n .trigger('removed ' + nipple.id + ':removed', nipple);\n nipple.destroy();\n }\n });\n }\n\n // Clear the pressure interval reader\n clearInterval(self.pressureIntervals[nipple.identifier]);\n\n // Reset the direciton of the nipple, to be able to trigger a new direction\n // on start.\n nipple.resetDirection();\n\n nipple.trigger('end', nipple);\n self.trigger('end ' + nipple.id + ':end', nipple);\n\n // Remove identifier from our bank.\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Clean our actives array.\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n\n if (/(semi|static)/.test(opts.mode)) {\n // Transfer nipple from actives to idles\n // if we're in semi or static mode.\n self.idles.push(nipple);\n } else if (self.nipples.indexOf(nipple) >= 0) {\n // Only if we're not in semi or static mode\n // we can remove the instance.\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n\n // We unbind move and end.\n self.manager.unbindDocument();\n\n // We add back the identifier of the idle nipple;\n if (/(semi|static)/.test(opts.mode)) {\n self.manager.ids[removedIdentifier.id] = removedIdentifier.identifier;\n }\n};\n\n// Remove destroyed nipple from the lists\nCollection.prototype.onDestroyed = function(evt, nipple) {\n var self = this;\n if (self.nipples.indexOf(nipple) >= 0) {\n self.nipples.splice(self.nipples.indexOf(nipple), 1);\n }\n if (self.actives.indexOf(nipple) >= 0) {\n self.actives.splice(self.actives.indexOf(nipple), 1);\n }\n if (self.idles.indexOf(nipple) >= 0) {\n self.idles.splice(self.idles.indexOf(nipple), 1);\n }\n if (self.ids.indexOf(nipple.identifier) >= 0) {\n self.ids.splice(self.ids.indexOf(nipple.identifier), 1);\n }\n\n // Remove the identifier from our bank\n self.manager.removeIdentifier(nipple.identifier);\n\n // We unbind move and end.\n self.manager.unbindDocument();\n};\n\n// Cleanly destroy the manager\nCollection.prototype.destroy = function () {\n var self = this;\n self.unbindEvt(self.options.zone, 'start');\n\n // Destroy nipples.\n self.nipples.forEach(function(nipple) {\n nipple.destroy();\n });\n\n // Clean 3DTouch intervals.\n for (var i in self.pressureIntervals) {\n if (self.pressureIntervals.hasOwnProperty(i)) {\n clearInterval(self.pressureIntervals[i]);\n }\n }\n\n // Notify the manager passing the instance\n self.trigger('destroyed', self.nipples);\n // We unbind move and end.\n self.manager.unbindDocument();\n // Unbind everything.\n self.off();\n};\n\n/* global u, Super, Collection */\n\n///////////////////////\n/// MANAGER ///\n///////////////////////\n\nfunction Manager (options) {\n var self = this;\n self.ids = {};\n self.index = 0;\n self.collections = [];\n\n self.config(options);\n self.prepareCollections();\n\n // Listen for resize, to reposition every joysticks\n var resizeTimer;\n u.bindEvt(window, 'resize', function (evt) {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(function () {\n var pos;\n var scroll = u.getScroll();\n self.collections.forEach(function (collection) {\n collection.forEach(function (nipple) {\n pos = nipple.el.getBoundingClientRect();\n nipple.position = {\n x: scroll.x + pos.left,\n y: scroll.y + pos.top\n };\n });\n });\n }, 100);\n });\n\n return self.collections;\n};\n\nManager.prototype = new Super();\nManager.constructor = Manager;\n\nManager.prototype.prepareCollections = function () {\n var self = this;\n // Public API Preparation.\n self.collections.create = self.create.bind(self);\n // Listen to anything\n self.collections.on = self.on.bind(self);\n // Unbind general events\n self.collections.off = self.off.bind(self);\n // Destroy everything\n self.collections.destroy = self.destroy.bind(self);\n // Get any nipple\n self.collections.get = function (id) {\n var nipple;\n self.collections.every(function (collection) {\n if (nipple = collection.get(id)) {\n return false;\n }\n return true;\n });\n return nipple;\n };\n};\n\nManager.prototype.create = function (options) {\n return this.createCollection(options);\n};\n\n// Collection Factory\nManager.prototype.createCollection = function (options) {\n var self = this;\n var collection = new Collection(self, options);\n\n self.bindCollection(collection);\n self.collections.push(collection);\n\n return collection;\n};\n\nManager.prototype.bindCollection = function (collection) {\n var self = this;\n var type;\n // Bubble up identified events.\n var handler = function (evt, data) {\n // Identify the event type with the nipple's identifier.\n type = evt.type + ' ' + data.id + ':' + evt.type;\n self.trigger(type, data);\n };\n\n // When it gets destroyed we clean.\n collection.on('destroyed', self.onDestroyed.bind(self));\n\n // Other events that will get bubbled up.\n collection.on('shown hidden rested dir plain', handler);\n collection.on('dir:up dir:right dir:down dir:left', handler);\n collection.on('plain:up plain:right plain:down plain:left', handler);\n};\n\nManager.prototype.bindDocument = function () {\n var self = this;\n // Bind only if not already binded\n if (!self.binded) {\n self.bindEvt(document, 'move')\n .bindEvt(document, 'end');\n self.binded = true;\n }\n};\n\nManager.prototype.unbindDocument = function (force) {\n var self = this;\n // If there are no touch left\n // unbind the document.\n if (!Object.keys(self.ids).length || force === true) {\n self.unbindEvt(document, 'move')\n .unbindEvt(document, 'end');\n self.binded = false;\n }\n};\n\nManager.prototype.getIdentifier = function (evt) {\n var id;\n // If no event, simple increment\n if (!evt) {\n id = this.index;\n } else {\n // Extract identifier from event object.\n // Unavailable in mouse events so replaced by latest increment.\n id = evt.identifier === undefined ? evt.pointerId : evt.identifier;\n if (id === undefined) {\n id = this.latest || 0;\n }\n }\n\n if (this.ids[id] === undefined) {\n this.ids[id] = this.index;\n this.index += 1;\n }\n\n // Keep the latest id used in case we're using an unidentified mouseEvent\n this.latest = id;\n return this.ids[id];\n};\n\nManager.prototype.removeIdentifier = function (identifier) {\n var removed = {};\n for (var id in this.ids) {\n if (this.ids[id] === identifier) {\n removed.id = id;\n removed.identifier = this.ids[id];\n delete this.ids[id];\n break;\n }\n }\n return removed;\n};\n\nManager.prototype.onmove = function (evt) {\n var self = this;\n self.onAny('move', evt);\n return false;\n};\n\nManager.prototype.onend = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.oncancel = function (evt) {\n var self = this;\n self.onAny('end', evt);\n return false;\n};\n\nManager.prototype.onAny = function (which, evt) {\n var self = this;\n var id;\n var processFn = 'processOn' + which.charAt(0).toUpperCase() +\n which.slice(1);\n evt = u.prepareEvent(evt);\n var processColl = function (e, id, coll) {\n if (coll.ids.indexOf(id) >= 0) {\n coll[processFn](e);\n // Mark the event to avoid cleaning it later.\n e._found_ = true;\n }\n };\n var processEvt = function (e) {\n id = self.getIdentifier(e);\n u.map(self.collections, processColl.bind(null, e, id));\n // If the event isn't handled by any collection,\n // we need to clean its identifier.\n if (!e._found_) {\n self.removeIdentifier(id);\n }\n };\n\n u.map(evt, processEvt);\n\n return false;\n};\n\n// Cleanly destroy the manager\nManager.prototype.destroy = function () {\n var self = this;\n self.unbindDocument(true);\n self.ids = {};\n self.index = 0;\n self.collections.forEach(function(collection) {\n collection.destroy();\n });\n self.off();\n};\n\n// When a collection gets destroyed\n// we clean behind.\nManager.prototype.onDestroyed = function (evt, coll) {\n var self = this;\n if (self.collections.indexOf(coll) < 0) {\n return false;\n }\n self.collections.splice(self.collections.indexOf(coll), 1);\n};\n\nvar factory = new Manager();\nreturn {\n create: function (options) {\n return factory.create(options);\n },\n factory: factory\n};\n\n});\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","/**\r\n * Returns the object type of the given payload\r\n *\r\n * @param {*} payload\r\n * @returns {string}\r\n */\r\nfunction getType(payload) {\r\n return Object.prototype.toString.call(payload).slice(8, -1);\r\n}\r\n/**\r\n * Returns whether the payload is undefined\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isUndefined(payload) {\r\n return getType(payload) === 'Undefined';\r\n}\r\n/**\r\n * Returns whether the payload is null\r\n *\r\n * @param {*} payload\r\n * @returns {payload is null}\r\n */\r\nfunction isNull(payload) {\r\n return getType(payload) === 'Null';\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isPlainObject(payload) {\r\n if (getType(payload) !== 'Object')\r\n return false;\r\n return (payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype);\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isObject(payload) {\r\n return isPlainObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is {[key: string]: any}}\r\n */\r\nfunction isAnyObject(payload) {\r\n return getType(payload) === 'Object';\r\n}\r\n/**\r\n * Returns whether the payload is an object like a type passed in < >\r\n *\r\n * Usage: isObjectLike<{id: any}>(payload) // will make sure it's an object and has an `id` prop.\r\n *\r\n * @template T this must be passed in < >\r\n * @param {*} payload\r\n * @returns {payload is T}\r\n */\r\nfunction isObjectLike(payload) {\r\n return isAnyObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a function\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Function}\r\n */\r\nfunction isFunction(payload) {\r\n return getType(payload) === 'Function';\r\n}\r\n/**\r\n * Returns whether the payload is an array\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isArray(payload) {\r\n return getType(payload) === 'Array';\r\n}\r\n/**\r\n * Returns whether the payload is a string\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isString(payload) {\r\n return getType(payload) === 'String';\r\n}\r\n/**\r\n * Returns whether the payload is a string, BUT returns false for ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isFullString(payload) {\r\n return isString(payload) && payload !== '';\r\n}\r\n/**\r\n * Returns whether the payload is ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isEmptyString(payload) {\r\n return payload === '';\r\n}\r\n/**\r\n * Returns whether the payload is a number\r\n *\r\n * This will return false for NaN\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\r\nfunction isNumber(payload) {\r\n return (getType(payload) === 'Number' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a boolean\r\n *\r\n * @param {*} payload\r\n * @returns {payload is boolean}\r\n */\r\nfunction isBoolean(payload) {\r\n return getType(payload) === 'Boolean';\r\n}\r\n/**\r\n * Returns whether the payload is a regular expression\r\n *\r\n * @param {*} payload\r\n * @returns {payload is RegExp}\r\n */\r\nfunction isRegExp(payload) {\r\n return getType(payload) === 'RegExp';\r\n}\r\n/**\r\n * Returns whether the payload is a date, and that the date is Valid\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Date}\r\n */\r\nfunction isDate(payload) {\r\n return (getType(payload) === 'Date' && !isNaN(payload));\r\n}\r\n/**\r\n * Returns whether the payload is a Symbol\r\n *\r\n * @param {*} payload\r\n * @returns {payload is symbol}\r\n */\r\nfunction isSymbol(payload) {\r\n return (getType(payload) === 'Symbol');\r\n}\r\n/**\r\n * Returns whether the payload is a primitive type (eg. Boolean | Null | Undefined | Number | String | Symbol)\r\n *\r\n * @param {*} payload\r\n * @returns {(payload is boolean | null | undefined | number | string | symbol)}\r\n */\r\nfunction isPrimitive(payload) {\r\n return (isBoolean(payload) ||\r\n isNull(payload) ||\r\n isUndefined(payload) ||\r\n isNumber(payload) ||\r\n isString(payload) ||\r\n isSymbol(payload));\r\n}\r\n/**\r\n * Does a generic check to check that the given payload is of a given type.\r\n * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!);\r\n * It will, however, differentiate between object and null\r\n *\r\n * @template T\r\n * @param {*} payload\r\n * @param {T} type\r\n * @throws {TypeError} Will throw type error if type is an invalid type\r\n * @returns {payload is T}\r\n */\r\nfunction isType(payload, type) {\r\n if (!(type instanceof Function)) {\r\n throw new TypeError('Type must be a function');\r\n }\r\n if (!type.hasOwnProperty('prototype')) {\r\n throw new TypeError('Type is not a class');\r\n }\r\n // Classes usually have names (as functions usually have names)\r\n var name = type.name;\r\n return (getType(payload) === name) || Boolean(payload && (payload.constructor === type));\r\n}\n\nexport { getType, isUndefined, isNull, isPlainObject, isObject, isAnyObject, isObjectLike, isFunction, isArray, isString, isFullString, isEmptyString, isNumber, isBoolean, isRegExp, isDate, isSymbol, isPrimitive, isType };\n","import { isArray, isPlainObject, isSymbol } from 'is-what';\n\nfunction assignProp(carry, key, newVal, originalObject) {\r\n var propType = originalObject.propertyIsEnumerable(key)\r\n ? 'enumerable'\r\n : 'nonenumerable';\r\n if (propType === 'enumerable')\r\n carry[key] = newVal;\r\n if (propType === 'nonenumerable') {\r\n Object.defineProperty(carry, key, {\r\n value: newVal,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n });\r\n }\r\n}\r\nfunction mergeRecursively(origin, newComer, extensions) {\r\n // work directly on newComer if its not an object\r\n if (!isPlainObject(newComer)) {\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newComer = extend(origin, newComer);\r\n });\r\n }\r\n return newComer;\r\n }\r\n // define newObject to merge all values upon\r\n var newObject = {};\r\n if (isPlainObject(origin)) {\r\n var props_1 = Object.getOwnPropertyNames(origin);\r\n var symbols_1 = Object.getOwnPropertySymbols(origin);\r\n newObject = props_1.concat(symbols_1).reduce(function (carry, key) {\r\n // @ts-ignore\r\n var targetVal = origin[key];\r\n if ((!isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key)) ||\r\n (isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key))) {\r\n assignProp(carry, key, targetVal, origin);\r\n }\r\n return carry;\r\n }, {});\r\n }\r\n var props = Object.getOwnPropertyNames(newComer);\r\n var symbols = Object.getOwnPropertySymbols(newComer);\r\n var result = props.concat(symbols).reduce(function (carry, key) {\r\n // re-define the origin and newComer as targetVal and newVal\r\n var newVal = newComer[key];\r\n var targetVal = (isPlainObject(origin))\r\n // @ts-ignore\r\n ? origin[key]\r\n : undefined;\r\n // extend merge rules\r\n if (extensions && isArray(extensions)) {\r\n extensions.forEach(function (extend) {\r\n newVal = extend(targetVal, newVal);\r\n });\r\n }\r\n // When newVal is an object do the merge recursively\r\n if (targetVal !== undefined && isPlainObject(newVal)) {\r\n newVal = mergeRecursively(targetVal, newVal, extensions);\r\n }\r\n assignProp(carry, key, newVal, newComer);\r\n return carry;\r\n }, newObject);\r\n return result;\r\n}\r\n/**\r\n * Merge anything recursively.\r\n * Objects get merged, special objects (classes etc.) are re-assigned \"as is\".\r\n * Basic types overwrite objects or other basic types.\r\n *\r\n * @param {(IConfig | any)} origin\r\n * @param {...any[]} newComers\r\n * @returns the result\r\n */\r\nfunction merge(origin) {\r\n var newComers = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n newComers[_i - 1] = arguments[_i];\r\n }\r\n var extensions = null;\r\n var base = origin;\r\n if (isPlainObject(origin) && origin.extensions && Object.keys(origin).length === 1) {\r\n base = {};\r\n extensions = origin.extensions;\r\n }\r\n return newComers.reduce(function (result, newComer) {\r\n return mergeRecursively(result, newComer, extensions);\r\n }, base);\r\n}\n\nfunction concatArrays(originVal, newVal) {\r\n if (isArray(originVal) && isArray(newVal)) {\r\n // concat logic\r\n return originVal.concat(newVal);\r\n }\r\n return newVal; // always return newVal as fallback!!\r\n}\n\nexport default merge;\nexport { merge, concatArrays };\n","/** @license React v16.8.6\n * react-is.production.min.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'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (colorNames.hasOwnProperty(name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar keyword = /(\\D+)/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\n\t\tif (!rgb) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = (parseFloat(match[1]) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = num.toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function () { /* empty */ };\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","/**\n * @ignore\n * event object for dom\n * @author yiminghe@gmail.com\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventBaseObject = require('./EventBaseObject');\n\nvar _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar TRUE = true;\nvar FALSE = false;\nvar commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];\n\nfunction isNullOrUndefined(w) {\n return w === null || w === undefined;\n}\n\nvar eventNormalizers = [{\n reg: /^key/,\n props: ['char', 'charCode', 'key', 'keyCode', 'which'],\n fix: function fix(event, nativeEvent) {\n if (isNullOrUndefined(event.which)) {\n event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;\n }\n\n // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)\n if (event.metaKey === undefined) {\n event.metaKey = event.ctrlKey;\n }\n }\n}, {\n reg: /^touch/,\n props: ['touches', 'changedTouches', 'targetTouches']\n}, {\n reg: /^hashchange$/,\n props: ['newURL', 'oldURL']\n}, {\n reg: /^gesturechange$/i,\n props: ['rotation', 'scale']\n}, {\n reg: /^(mousewheel|DOMMouseScroll)$/,\n props: [],\n fix: function fix(event, nativeEvent) {\n var deltaX = undefined;\n var deltaY = undefined;\n var delta = undefined;\n var wheelDelta = nativeEvent.wheelDelta;\n var axis = nativeEvent.axis;\n var wheelDeltaY = nativeEvent.wheelDeltaY;\n var wheelDeltaX = nativeEvent.wheelDeltaX;\n var detail = nativeEvent.detail;\n\n // ie/webkit\n if (wheelDelta) {\n delta = wheelDelta / 120;\n }\n\n // gecko\n if (detail) {\n // press control e.detail == 1 else e.detail == 3\n delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);\n }\n\n // Gecko\n if (axis !== undefined) {\n if (axis === event.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = 0 - delta;\n } else if (axis === event.VERTICAL_AXIS) {\n deltaX = 0;\n deltaY = delta;\n }\n }\n\n // Webkit\n if (wheelDeltaY !== undefined) {\n deltaY = wheelDeltaY / 120;\n }\n if (wheelDeltaX !== undefined) {\n deltaX = -1 * wheelDeltaX / 120;\n }\n\n // 默认 deltaY (ie)\n if (!deltaX && !deltaY) {\n deltaY = delta;\n }\n\n if (deltaX !== undefined) {\n /**\n * deltaX of mousewheel event\n * @property deltaX\n * @member Event.DomEvent.Object\n */\n event.deltaX = deltaX;\n }\n\n if (deltaY !== undefined) {\n /**\n * deltaY of mousewheel event\n * @property deltaY\n * @member Event.DomEvent.Object\n */\n event.deltaY = deltaY;\n }\n\n if (delta !== undefined) {\n /**\n * delta of mousewheel event\n * @property delta\n * @member Event.DomEvent.Object\n */\n event.delta = delta;\n }\n }\n}, {\n reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,\n props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],\n fix: function fix(event, nativeEvent) {\n var eventDoc = undefined;\n var doc = undefined;\n var body = undefined;\n var target = event.target;\n var button = nativeEvent.button;\n\n // Calculate pageX/Y if missing and clientX/Y available\n if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {\n eventDoc = target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // which for click: 1 === left; 2 === middle; 3 === right\n // do not use button\n if (!event.which && button !== undefined) {\n if (button & 1) {\n event.which = 1;\n } else if (button & 2) {\n event.which = 3;\n } else if (button & 4) {\n event.which = 2;\n } else {\n event.which = 0;\n }\n }\n\n // add relatedTarget, if necessary\n if (!event.relatedTarget && event.fromElement) {\n event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;\n }\n\n return event;\n }\n}];\n\nfunction retTrue() {\n return TRUE;\n}\n\nfunction retFalse() {\n return FALSE;\n}\n\nfunction DomEventObject(nativeEvent) {\n var type = nativeEvent.type;\n\n var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';\n\n _EventBaseObject2['default'].call(this);\n\n this.nativeEvent = nativeEvent;\n\n // in case dom event has been mark as default prevented by lower dom node\n var isDefaultPrevented = retFalse;\n if ('defaultPrevented' in nativeEvent) {\n isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;\n } else if ('getPreventDefault' in nativeEvent) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=691151\n isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;\n } else if ('returnValue' in nativeEvent) {\n isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;\n }\n\n this.isDefaultPrevented = isDefaultPrevented;\n\n var fixFns = [];\n var fixFn = undefined;\n var l = undefined;\n var prop = undefined;\n var props = commonProps.concat();\n\n eventNormalizers.forEach(function (normalizer) {\n if (type.match(normalizer.reg)) {\n props = props.concat(normalizer.props);\n if (normalizer.fix) {\n fixFns.push(normalizer.fix);\n }\n }\n });\n\n l = props.length;\n\n // clone properties of the original event object\n while (l) {\n prop = props[--l];\n this[prop] = nativeEvent[prop];\n }\n\n // fix target property, if necessary\n if (!this.target && isNative) {\n this.target = nativeEvent.srcElement || document; // srcElement might not be defined either\n }\n\n // check if target is a text node (safari)\n if (this.target && this.target.nodeType === 3) {\n this.target = this.target.parentNode;\n }\n\n l = fixFns.length;\n\n while (l) {\n fixFn = fixFns[--l];\n fixFn(this, nativeEvent);\n }\n\n this.timeStamp = nativeEvent.timeStamp || Date.now();\n}\n\nvar EventBaseObjectProto = _EventBaseObject2['default'].prototype;\n\n(0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {\n constructor: DomEventObject,\n\n preventDefault: function preventDefault() {\n var e = this.nativeEvent;\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n // otherwise set the returnValue property of the original event to FALSE (IE)\n e.returnValue = FALSE;\n }\n\n EventBaseObjectProto.preventDefault.call(this);\n },\n\n stopPropagation: function stopPropagation() {\n var e = this.nativeEvent;\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n } else {\n // otherwise set the cancelBubble property of the original event to TRUE (IE)\n e.cancelBubble = TRUE;\n }\n\n EventBaseObjectProto.stopPropagation.call(this);\n }\n});\n\nexports['default'] = DomEventObject;\nmodule.exports = exports['default'];","/**\n * @ignore\n * base event object for custom and dom event.\n * @author yiminghe@gmail.com\n */\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction returnFalse() {\n return false;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction EventBaseObject() {\n this.timeStamp = Date.now();\n this.target = undefined;\n this.currentTarget = undefined;\n}\n\nEventBaseObject.prototype = {\n isEventObject: 1,\n\n constructor: EventBaseObject,\n\n isDefaultPrevented: returnFalse,\n\n isPropagationStopped: returnFalse,\n\n isImmediatePropagationStopped: returnFalse,\n\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n },\n\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n },\n\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n // fixed 1.2\n // call stopPropagation implicitly\n this.stopPropagation();\n },\n\n halt: function halt(immediate) {\n if (immediate) {\n this.stopImmediatePropagation();\n } else {\n this.stopPropagation();\n }\n this.preventDefault();\n }\n};\n\nexports[\"default\"] = EventBaseObject;\nmodule.exports = exports[\"default\"];","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\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","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n","var api = require(\"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../css-loader/dist/cjs.js!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function insertAtTop(element) {\n\t\t\t\t document.head.insertBefore(element, document.head.firstElementChild);\n\t\t\t\t};\noptions.singleton = false;\n\nvar update = api(content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;","\"use strict\";\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 = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\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 && btoa) {\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 "}},te=function(e,t){return function(){var n,r=((n={})[j]=$(t),n["data-styled-version"]="4.4.0",n),o=G();return o&&(r.nonce=o),l.a.createElement("style",g({},r,{dangerouslySetInnerHTML:{__html:e()}}))}},ne=function(e){return function(){return Object.keys(e)}},re=function(e,t){return e.createTextNode(J(t))},oe=function e(t,n){var r=void 0===t?Object.create(null):t,o=void 0===n?Object.create(null):n,a=function(e){var t=o[e];return void 0!==t?t:o[e]=[""]},i=function(){var e="";for(var t in o){var n=o[t][0];n&&(e+=J(t)+n)}return e};return{clone:function(){var t=function(e){var t=Object.create(null);for(var n in e)t[n]=g({},e[n]);return t}(r),n=Object.create(null);for(var a in o)n[a]=[o[a][0]];return e(t,n)},css:i,getIds:ne(o),hasNameForId:K(r),insertMarker:a,insertRules:function(e,t,n){a(e)[0]+=t.join(" "),Y(r,e,n)},removeRules:function(e){var t=o[e];void 0!==t&&(t[0]="",X(r,e))},sealed:!1,styleTag:null,toElement:te(i,r),toHTML:ee(i,r)}},ae=function(e,t,n,r,o){if(C&&!n){var a=function(e,t,n){var r=document;e?r=e.ownerDocument:t&&(r=t.ownerDocument);var o=r.createElement("style");o.setAttribute(j,""),o.setAttribute("data-styled-version","4.4.0");var a=G();if(a&&o.setAttribute("nonce",a),o.appendChild(r.createTextNode("")),e&&!t)e.appendChild(o);else{if(!t||!e||!t.parentNode)throw new M(6);t.parentNode.insertBefore(o,n?t:t.nextSibling)}return o}(e,t,r);return P?function(e,t){var n=Object.create(null),r=Object.create(null),o=void 0!==t,a=!1,i=function(t){var o=r[t];return void 0!==o?o:(r[t]=re(e.ownerDocument,t),e.appendChild(r[t]),n[t]=Object.create(null),r[t])},s=function(){var e="";for(var t in r)e+=r[t].data;return e};return{clone:function(){throw new M(5)},css:s,getIds:ne(r),hasNameForId:K(n),insertMarker:i,insertRules:function(e,r,s){for(var l=i(e),c=[],u=r.length,f=0;f0&&(a=!0,t().insertRules(e+"-import",c))},removeRules:function(i){var s=r[i];if(void 0!==s){var l=re(e.ownerDocument,i);e.replaceChild(l,s),r[i]=l,X(n,i),o&&a&&t().removeRules(i+"-import")}},sealed:!1,styleTag:e,toElement:te(s,n),toHTML:ee(s,n)}}(a,o):function(e,t){var n=Object.create(null),r=Object.create(null),o=[],a=void 0!==t,i=!1,s=function(e){var t=r[e];return void 0!==t?t:(r[e]=o.length,o.push(0),X(n,e),r[e])},l=function(){var t=q(e).cssRules,n="";for(var a in r){n+=J(a);for(var i=r[a],s=Q(o,i),l=s-o[i];l0&&(i=!0,t().insertRules(r+"-import",h)),o[u]+=d,Y(n,r,c)},removeRules:function(s){var l=r[s];if(void 0!==l&&!1!==e.isConnected){var c=o[l];!function(e,t,n){for(var r=t-n,o=t;o>r;o-=1)e.deleteRule(o)}(q(e),Q(o,l)-1,c),o[l]=0,X(n,s),a&&i&&t().removeRules(s+"-import")}},sealed:!1,styleTag:e,toElement:te(l,n),toHTML:ee(l,n)}}(a,o)}return oe()},ie=/\s+/,se=void 0;se=C?P?40:1e3:-1;var le=0,ce=void 0,ue=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C?document.head:null,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];b(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var n=t.tags[0];return t.importRuleTag=ae(t.target,n?n.styleTag:null,t.forceServer,!0)},le+=1,this.id=le,this.forceServer=r,this.target=r?null:n,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!C||this.forceServer)return this;var e=[],t=[],n=!1,r=document.querySelectorAll("style["+j+'][data-styled-version="4.4.0"]'),o=r.length;if(!o)return this;for(var a=0;a0&&void 0!==arguments[0]&&arguments[0];ce=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map((function(e){for(var n=e.getIds(),r=e.clone(),o=0;o1?t-1:0),r=1;r=4;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),n-=4,++o;switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+((1540483477*(r>>>16)&65535)<<16)}return((r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16))^r>>>15)>>>0}var xe=function(e){return String.fromCharCode(e+(e>25?39:97))};function we(e){var t="",n=void 0;for(n=e;n>52;n=Math.floor(n/52))t=xe(n%52)+t;return xe(n%52)+t}function Oe(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:k,r=!!n&&e.theme===n.theme,o=e.theme&&!r?e.theme:t||n.theme;return o},je=/[[\].#*$><+~=|^:(),"'`-]+/g,Ce=/(^-|-$)/g;function Pe(e){return e.replace(je,"-").replace(Ce,"")}function Me(e){return"string"==typeof e&&!0}var Ae={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},Te={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},De=((ke={})[u.ForwardRef]={$$typeof:!0,render:!0},ke),Ne=Object.defineProperty,Ie=Object.getOwnPropertyNames,Le=Object.getOwnPropertySymbols,Re=void 0===Le?function(){return[]}:Le,Fe=Object.getOwnPropertyDescriptor,He=Object.getPrototypeOf,ze=Object.prototype,Be=Array.prototype;function Ue(e,t,n){if("string"!=typeof t){var r=He(t);r&&r!==ze&&Ue(e,r,n);for(var o=Be.concat(Ie(t),Re(t)),a=De[e.$$typeof]||Ae,i=De[t.$$typeof]||Ae,s=o.length,l=void 0,c=void 0;s--;)if(c=o[s],!(Te[c]||n&&n[c]||i&&i[c]||a&&a[c])&&(l=Fe(t,c)))try{Ne(e,c,l)}catch(e){}return e}return e}var Ve=Object(s.createContext)(),We=Ve.Consumer,Ge=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext.bind(r)),r.renderInner=r.renderInner.bind(r),r}return y(t,e),t.prototype.render=function(){return this.props.children?l.a.createElement(Ve.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return l.a.createElement(Ve.Provider,{value:t},this.props.children)},t.prototype.getTheme=function(e,t){if(E(e))return e(t);if(null===e||Array.isArray(e)||"object"!==(void 0===e?"undefined":m(e)))throw new M(8);return g({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)},t}(s.Component),Ye=(function(){function e(){b(this,e),this.masterSheet=ue.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new M(2);return l.a.createElement(Ke,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new M(3)}}(),Object(s.createContext)()),Xe=Ye.Consumer,Ke=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext),r}return y(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new ue(t);throw new M(4)},t.prototype.render=function(){var e=this.props,t=e.children,n=e.sheet,r=e.target;return l.a.createElement(Ye.Provider,{value:this.getContext(n,r)},t)},t}(s.Component),$e={};var qe=function(e){function t(){b(this,t);var n=x(this,e.call(this));return n.attrs={},n.renderOuter=n.renderOuter.bind(n),n.renderInner=n.renderInner.bind(n),n}return y(t,e),t.prototype.render=function(){return l.a.createElement(Xe,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ue.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():l.a.createElement(We,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,n=t.componentStyle,r=t.defaultProps,o=(t.displayName,t.foldedComponentIds),a=t.styledComponentId,i=t.target,l=(t.usesTheme,void 0),c=void 0;n.isStatic?l=this.generateAndInjectStyles(k,this.props):(c=_e(this.props,e,r),l=this.generateAndInjectStyles(c||k,this.props));var u=this.props.as||this.attrs.as||i,f=Me(u),d={},h=g({},this.props,this.attrs),m=void 0;for(m in h)"forwardedComponent"!==m&&"as"!==m&&("forwardedRef"===m?d.ref=h[m]:"forwardedAs"===m?d.as=h[m]:f&&!Object(p.a)(m)||(d[m]=h[m]));return this.props.style&&this.attrs.style&&(d.style=g({},this.attrs.style,this.props.style)),d.className=Array.prototype.concat(o,a,l!==a?l:null,this.props.className,this.attrs.className).filter(Boolean).join(" "),Object(s.createElement)(u,d)},t.prototype.buildExecutionContext=function(e,t,n){var r=this,o=g({},t,{theme:e});return n.length?(this.attrs={},n.forEach((function(e){var t,n=e,a=!1,i=void 0,s=void 0;for(s in E(n)&&(n=n(o),a=!0),n)i=n[s],a||!E(i)||(t=i)&&t.prototype&&t.prototype.isReactComponent||_(i)||(i=i(o)),r.attrs[s]=i,o[s]=i})),o):o},t.prototype.generateAndInjectStyles=function(e,t){var n=t.forwardedComponent,r=n.attrs,o=n.componentStyle;n.warnTooManyClasses;return o.isStatic&&!r.length?o.generateAndInjectStyles(k,this.styleSheet):o.generateAndInjectStyles(this.buildExecutionContext(e,t,r),this.styleSheet)},t}(s.Component);function Ze(e,t,n){var r=_(e),o=!Me(e),a=t.displayName,i=void 0===a?function(e){return Me(e)?"styled."+e:"Styled("+S(e)+")"}(e):a,s=t.componentId,c=void 0===s?function(e,t,n){var r="string"!=typeof t?"sc":Pe(t),o=($e[r]||0)+1;$e[r]=o;var a=r+"-"+e.generateName(r+o);return n?n+"-"+a:a}(Se,t.displayName,t.parentComponentId):s,u=t.ParentComponent,f=void 0===u?qe:u,p=t.attrs,h=void 0===p?O:p,m=t.displayName&&t.componentId?Pe(t.displayName)+"-"+t.componentId:t.componentId||c,b=r&&e.attrs?Array.prototype.concat(e.attrs,h).filter(Boolean):h,v=new Se(r?e.componentStyle.rules.concat(n):n,b,m),y=void 0,x=function(e,t){return l.a.createElement(f,g({},e,{forwardedComponent:y,forwardedRef:t}))};return x.displayName=i,(y=l.a.forwardRef(x)).displayName=i,y.attrs=b,y.componentStyle=v,y.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):O,y.styledComponentId=m,y.target=r?e.target:e,y.withComponent=function(e){var r=t.componentId,o=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(t,["componentId"]),a=r&&r+"-"+(Me(e)?e:Pe(S(e)));return Ze(e,g({},o,{attrs:b,componentId:a,ParentComponent:f}),n)},Object.defineProperty(y,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Object(d.a)(e.defaultProps,t):t}}),y.toString=function(){return"."+y.styledComponentId},o&&Ue(y,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),y}var Je=function(e){return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:k;if(!Object(u.isValidElementType)(n))throw new M(1,String(n));var o=function(){return t(n,r,ge.apply(void 0,arguments))};return o.withConfig=function(o){return e(t,n,g({},r,o))},o.attrs=function(o){return e(t,n,g({},r,{attrs:Array.prototype.concat(r.attrs,o).filter(Boolean)}))},o}(Ze,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){Je[e]=Je(e)}));!function(){function e(t,n){b(this,e),this.rules=t,this.componentId=n,this.isStatic=Oe(t,O),ue.master.hasId(n)||ue.master.deferredInject(n,[])}e.prototype.createStyles=function(e,t){var n=W(ve(this.rules,e,t),"");t.inject(this.componentId,n)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)}}();C&&(window.scCGSHMRCache={});var Qe=function(e){var t=l.a.forwardRef((function(t,n){return l.a.createElement(We,null,(function(r){var o=e.defaultProps,a=_e(t,r,o);return l.a.createElement(e,g({},t,{theme:a,ref:n}))}))}));return Ue(t,e),t.displayName="WithTheme("+S(e)+")",t};t.c=Je}).call(this,n(63))},function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a})),n.d(t,"e",(function(){return i})),n.d(t,"d",(function(){return s}));var r={PRIMARY:"#ABE2FB",SECONDARY:"#E6E6E6",DARKER_PRIMARY:"#87ceeb",OFF_WHITE:"#15181A",GREY:"#D3D3D3",RED:"#FF5E5E",DARK_GREY:"#535D63"},o=270,a=Math.PI/180,i={primary:r.PRIMARY,secondary:r.SECONDARY,detail:r.GREY,dark:!1},s={primary:r.PRIMARY,secondary:r.DARK_GREY,detail:r.DARK_GREY,dark:!0}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return a}));var r=n(30),o=function(e,t){return"daq-"+e+(t&&t.dark?"--dark":"--light")},a=function(e){return Object(r.a)(["className","id","setProps","style"],e)}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(71),a=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,a.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(95),a=(r=o)&&r.__esModule?r:{default:r};t.default=a.default||function(e){for(var t=1;t1?r-1:0),a=1;a0?" Additional arguments: "+o.join(", "):"")));return x(i)}return y(t,e),t}(Error),A=/^[^\S\n]*?\/\* sc-component-id:\s*(\S+)\s+\*\//gm,T=function(e){var t=""+(e||""),n=[];return t.replace(A,(function(e,t,r){return n.push({componentId:t,matchIndex:r}),e})),n.map((function(e,r){var o=e.componentId,a=e.matchIndex,i=n[r+1];return{componentId:o,cssFromDOM:i?t.slice(a,i.matchIndex):t.slice(a)}}))},D=/^\s*\/\/.*$/gm,N=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!1,compress:!1,semicolon:!0}),I=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!0,compress:!1,semicolon:!1}),L=[],R=function(e){if(-2===e){var t=L;return L=[],t}},F=i()((function(e){L.push(e)})),z=void 0,H=void 0,B=void 0,U=function(e,t,n){return t>0&&-1!==n.slice(0,t).indexOf(H)&&n.slice(t-H.length,t)!==H?"."+z:e};I.use([function(e,t,n){2===e&&n.length&&n[0].lastIndexOf(H)>0&&(n[0]=n[0].replace(B,U))},F,R]),N.use([F,R]);var V=function(e){return N("",e)};function W(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"&",o=e.join("").replace(D,""),a=t&&n?n+" "+t+" { "+o+" }":o;return z=r,H=t,B=new RegExp("\\"+H+"\\b","g"),I(n||!t?"":t,a)}var G=function(){return n.nc},Y=function(e,t,n){n&&((e[t]||(e[t]=Object.create(null)))[n]=!0)},X=function(e,t){e[t]=Object.create(null)},K=function(e){return function(t,n){return void 0!==e[t]&&e[t][n]}},$=function(e){var t="";for(var n in e)t+=Object.keys(e[n]).join(" ")+" ";return t.trim()},q=function(e){if(e.sheet)return e.sheet;for(var t=e.ownerDocument.styleSheets.length,n=0;n"+e()+""}},te=function(e,t){return function(){var n,r=((n={})[j]=$(t),n["data-styled-version"]="4.4.0",n),o=G();return o&&(r.nonce=o),l.a.createElement("style",g({},r,{dangerouslySetInnerHTML:{__html:e()}}))}},ne=function(e){return function(){return Object.keys(e)}},re=function(e,t){return e.createTextNode(J(t))},oe=function e(t,n){var r=void 0===t?Object.create(null):t,o=void 0===n?Object.create(null):n,a=function(e){var t=o[e];return void 0!==t?t:o[e]=[""]},i=function(){var e="";for(var t in o){var n=o[t][0];n&&(e+=J(t)+n)}return e};return{clone:function(){var t=function(e){var t=Object.create(null);for(var n in e)t[n]=g({},e[n]);return t}(r),n=Object.create(null);for(var a in o)n[a]=[o[a][0]];return e(t,n)},css:i,getIds:ne(o),hasNameForId:K(r),insertMarker:a,insertRules:function(e,t,n){a(e)[0]+=t.join(" "),Y(r,e,n)},removeRules:function(e){var t=o[e];void 0!==t&&(t[0]="",X(r,e))},sealed:!1,styleTag:null,toElement:te(i,r),toHTML:ee(i,r)}},ae=function(e,t,n,r,o){if(C&&!n){var a=function(e,t,n){var r=document;e?r=e.ownerDocument:t&&(r=t.ownerDocument);var o=r.createElement("style");o.setAttribute(j,""),o.setAttribute("data-styled-version","4.4.0");var a=G();if(a&&o.setAttribute("nonce",a),o.appendChild(r.createTextNode("")),e&&!t)e.appendChild(o);else{if(!t||!e||!t.parentNode)throw new M(6);t.parentNode.insertBefore(o,n?t:t.nextSibling)}return o}(e,t,r);return P?function(e,t){var n=Object.create(null),r=Object.create(null),o=void 0!==t,a=!1,i=function(t){var o=r[t];return void 0!==o?o:(r[t]=re(e.ownerDocument,t),e.appendChild(r[t]),n[t]=Object.create(null),r[t])},s=function(){var e="";for(var t in r)e+=r[t].data;return e};return{clone:function(){throw new M(5)},css:s,getIds:ne(r),hasNameForId:K(n),insertMarker:i,insertRules:function(e,r,s){for(var l=i(e),c=[],u=r.length,f=0;f0&&(a=!0,t().insertRules(e+"-import",c))},removeRules:function(i){var s=r[i];if(void 0!==s){var l=re(e.ownerDocument,i);e.replaceChild(l,s),r[i]=l,X(n,i),o&&a&&t().removeRules(i+"-import")}},sealed:!1,styleTag:e,toElement:te(s,n),toHTML:ee(s,n)}}(a,o):function(e,t){var n=Object.create(null),r=Object.create(null),o=[],a=void 0!==t,i=!1,s=function(e){var t=r[e];return void 0!==t?t:(r[e]=o.length,o.push(0),X(n,e),r[e])},l=function(){var t=q(e).cssRules,n="";for(var a in r){n+=J(a);for(var i=r[a],s=Q(o,i),l=s-o[i];l0&&(i=!0,t().insertRules(r+"-import",h)),o[u]+=d,Y(n,r,c)},removeRules:function(s){var l=r[s];if(void 0!==l&&!1!==e.isConnected){var c=o[l];!function(e,t,n){for(var r=t-n,o=t;o>r;o-=1)e.deleteRule(o)}(q(e),Q(o,l)-1,c),o[l]=0,X(n,s),a&&i&&t().removeRules(s+"-import")}},sealed:!1,styleTag:e,toElement:te(l,n),toHTML:ee(l,n)}}(a,o)}return oe()},ie=/\s+/,se=void 0;se=C?P?40:1e3:-1;var le=0,ce=void 0,ue=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C?document.head:null,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];b(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var n=t.tags[0];return t.importRuleTag=ae(t.target,n?n.styleTag:null,t.forceServer,!0)},le+=1,this.id=le,this.forceServer=r,this.target=r?null:n,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!C||this.forceServer)return this;var e=[],t=[],n=!1,r=document.querySelectorAll("style["+j+'][data-styled-version="4.4.0"]'),o=r.length;if(!o)return this;for(var a=0;a0&&void 0!==arguments[0]&&arguments[0];ce=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map((function(e){for(var n=e.getIds(),r=e.clone(),o=0;o1?t-1:0),r=1;r=4;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),n-=4,++o;switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+((1540483477*(r>>>16)&65535)<<16)}return((r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16))^r>>>15)>>>0}var xe=function(e){return String.fromCharCode(e+(e>25?39:97))};function we(e){var t="",n=void 0;for(n=e;n>52;n=Math.floor(n/52))t=xe(n%52)+t;return xe(n%52)+t}function Oe(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:k,r=!!n&&e.theme===n.theme,o=e.theme&&!r?e.theme:t||n.theme;return o},je=/[[\].#*$><+~=|^:(),"'`-]+/g,Ce=/(^-|-$)/g;function Pe(e){return e.replace(je,"-").replace(Ce,"")}function Me(e){return"string"==typeof e&&!0}var Ae={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},Te={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},De=((ke={})[u.ForwardRef]={$$typeof:!0,render:!0},ke),Ne=Object.defineProperty,Ie=Object.getOwnPropertyNames,Le=Object.getOwnPropertySymbols,Re=void 0===Le?function(){return[]}:Le,Fe=Object.getOwnPropertyDescriptor,ze=Object.getPrototypeOf,He=Object.prototype,Be=Array.prototype;function Ue(e,t,n){if("string"!=typeof t){var r=ze(t);r&&r!==He&&Ue(e,r,n);for(var o=Be.concat(Ie(t),Re(t)),a=De[e.$$typeof]||Ae,i=De[t.$$typeof]||Ae,s=o.length,l=void 0,c=void 0;s--;)if(c=o[s],!(Te[c]||n&&n[c]||i&&i[c]||a&&a[c])&&(l=Fe(t,c)))try{Ne(e,c,l)}catch(e){}return e}return e}var Ve=Object(s.createContext)(),We=Ve.Consumer,Ge=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext.bind(r)),r.renderInner=r.renderInner.bind(r),r}return y(t,e),t.prototype.render=function(){return this.props.children?l.a.createElement(Ve.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return l.a.createElement(Ve.Provider,{value:t},this.props.children)},t.prototype.getTheme=function(e,t){if(E(e))return e(t);if(null===e||Array.isArray(e)||"object"!==(void 0===e?"undefined":m(e)))throw new M(8);return g({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)},t}(s.Component),Ye=(function(){function e(){b(this,e),this.masterSheet=ue.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new M(2);return l.a.createElement(Ke,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new M(3)}}(),Object(s.createContext)()),Xe=Ye.Consumer,Ke=function(e){function t(n){b(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext),r}return y(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new ue(t);throw new M(4)},t.prototype.render=function(){var e=this.props,t=e.children,n=e.sheet,r=e.target;return l.a.createElement(Ye.Provider,{value:this.getContext(n,r)},t)},t}(s.Component),$e={};var qe=function(e){function t(){b(this,t);var n=x(this,e.call(this));return n.attrs={},n.renderOuter=n.renderOuter.bind(n),n.renderInner=n.renderInner.bind(n),n}return y(t,e),t.prototype.render=function(){return l.a.createElement(Xe,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ue.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():l.a.createElement(We,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,n=t.componentStyle,r=t.defaultProps,o=(t.displayName,t.foldedComponentIds),a=t.styledComponentId,i=t.target,l=(t.usesTheme,void 0),c=void 0;n.isStatic?l=this.generateAndInjectStyles(k,this.props):(c=_e(this.props,e,r),l=this.generateAndInjectStyles(c||k,this.props));var u=this.props.as||this.attrs.as||i,f=Me(u),d={},h=g({},this.props,this.attrs),m=void 0;for(m in h)"forwardedComponent"!==m&&"as"!==m&&("forwardedRef"===m?d.ref=h[m]:"forwardedAs"===m?d.as=h[m]:f&&!Object(p.a)(m)||(d[m]=h[m]));return this.props.style&&this.attrs.style&&(d.style=g({},this.attrs.style,this.props.style)),d.className=Array.prototype.concat(o,a,l!==a?l:null,this.props.className,this.attrs.className).filter(Boolean).join(" "),Object(s.createElement)(u,d)},t.prototype.buildExecutionContext=function(e,t,n){var r=this,o=g({},t,{theme:e});return n.length?(this.attrs={},n.forEach((function(e){var t,n=e,a=!1,i=void 0,s=void 0;for(s in E(n)&&(n=n(o),a=!0),n)i=n[s],a||!E(i)||(t=i)&&t.prototype&&t.prototype.isReactComponent||_(i)||(i=i(o)),r.attrs[s]=i,o[s]=i})),o):o},t.prototype.generateAndInjectStyles=function(e,t){var n=t.forwardedComponent,r=n.attrs,o=n.componentStyle;n.warnTooManyClasses;return o.isStatic&&!r.length?o.generateAndInjectStyles(k,this.styleSheet):o.generateAndInjectStyles(this.buildExecutionContext(e,t,r),this.styleSheet)},t}(s.Component);function Ze(e,t,n){var r=_(e),o=!Me(e),a=t.displayName,i=void 0===a?function(e){return Me(e)?"styled."+e:"Styled("+S(e)+")"}(e):a,s=t.componentId,c=void 0===s?function(e,t,n){var r="string"!=typeof t?"sc":Pe(t),o=($e[r]||0)+1;$e[r]=o;var a=r+"-"+e.generateName(r+o);return n?n+"-"+a:a}(Se,t.displayName,t.parentComponentId):s,u=t.ParentComponent,f=void 0===u?qe:u,p=t.attrs,h=void 0===p?O:p,m=t.displayName&&t.componentId?Pe(t.displayName)+"-"+t.componentId:t.componentId||c,b=r&&e.attrs?Array.prototype.concat(e.attrs,h).filter(Boolean):h,v=new Se(r?e.componentStyle.rules.concat(n):n,b,m),y=void 0,x=function(e,t){return l.a.createElement(f,g({},e,{forwardedComponent:y,forwardedRef:t}))};return x.displayName=i,(y=l.a.forwardRef(x)).displayName=i,y.attrs=b,y.componentStyle=v,y.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):O,y.styledComponentId=m,y.target=r?e.target:e,y.withComponent=function(e){var r=t.componentId,o=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(t,["componentId"]),a=r&&r+"-"+(Me(e)?e:Pe(S(e)));return Ze(e,g({},o,{attrs:b,componentId:a,ParentComponent:f}),n)},Object.defineProperty(y,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Object(d.a)(e.defaultProps,t):t}}),y.toString=function(){return"."+y.styledComponentId},o&&Ue(y,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),y}var Je=function(e){return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:k;if(!Object(u.isValidElementType)(n))throw new M(1,String(n));var o=function(){return t(n,r,ge.apply(void 0,arguments))};return o.withConfig=function(o){return e(t,n,g({},r,o))},o.attrs=function(o){return e(t,n,g({},r,{attrs:Array.prototype.concat(r.attrs,o).filter(Boolean)}))},o}(Ze,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){Je[e]=Je(e)}));!function(){function e(t,n){b(this,e),this.rules=t,this.componentId=n,this.isStatic=Oe(t,O),ue.master.hasId(n)||ue.master.deferredInject(n,[])}e.prototype.createStyles=function(e,t){var n=W(ve(this.rules,e,t),"");t.inject(this.componentId,n)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)}}();C&&(window.scCGSHMRCache={});var Qe=function(e){var t=l.a.forwardRef((function(t,n){return l.a.createElement(We,null,(function(r){var o=e.defaultProps,a=_e(t,r,o);return l.a.createElement(e,g({},t,{theme:a,ref:n}))}))}));return Ue(t,e),t.displayName="WithTheme("+S(e)+")",t};t.c=Je}).call(this,n(63))},function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a})),n.d(t,"e",(function(){return i})),n.d(t,"d",(function(){return s}));var r={PRIMARY:"#ABE2FB",SECONDARY:"#E6E6E6",DARKER_PRIMARY:"#87ceeb",OFF_WHITE:"#15181A",GREY:"#D3D3D3",RED:"#FF5E5E",DARK_GREY:"#535D63"},o=270,a=Math.PI/180,i={primary:r.PRIMARY,secondary:r.SECONDARY,detail:r.GREY,dark:!1},s={primary:r.PRIMARY,secondary:r.DARK_GREY,detail:r.DARK_GREY,dark:!0}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return a}));var r=n(30),o=function(e,t){return"daq-"+e+(t&&t.dark?"--dark":"--light")},a=function(e){return Object(r.a)(["className","id","setProps","style"],e)}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(71),a=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,a.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(95),a=(r=o)&&r.__esModule?r:{default:r};t.default=a.default||function(e){for(var t=1;t3?o-3:0),i=3;ithis.props.maxLength&&(t="This value is too long")),t=t||(e?"":this.refsInput.validationMessage||"Unknown Error");var o=this._valid!==t;this._valid=t,t?(!function(e,t){if(e.classList)return e.classList.add(t);e.className.search(new RegExp("\\b"+t+"\\b"))||(e.className=" "+t)}(this.refsWrapper,"has-error"),o&&this._invokeEventCallback("onInvalid",t,this.state.value,this.refsInput.value)):(!function(e,t){if(e.className){if(e.classList)return e.classList.remove(t);e.className=e.className.replace(new RegExp("\\b"+t+"\\b","g"),"")}}(this.refsWrapper,"has-error"),o&&this._invokeEventCallback("onValid",this.state.value,this.refsInput.value))}},{key:"_toNumber",value:function(e){var n=parseFloat(e);if(!isNaN(n)&&isFinite(n)||(n=0),this._isStrict){var r=h(this.props,"precision",null,this),o=Math.pow(10,null===r?10:r),a=+h(this.props,"min",t.defaultProps.min,this),i=+h(this.props,"max",t.defaultProps.max,this);n=Math.min(Math.max(n,a),i),n=Math.round(n*o)/o}return n}},{key:"_parse",value:function(e){return e=String(e),"function"==typeof this.props.parse?parseFloat(this.props.parse(e)):parseFloat(e)}},{key:"_format",value:function(e){var t=this._toNumber(e),n=h(this.props,"precision",null,this);return null!==n&&(t=e.toFixed(n)),t+="",this.props.format?this.props.format(t):t}},{key:"_step",value:function(e,n){var r=this._isStrict;this._isStrict=!0;var o=+h(this.props,"step",t.defaultProps.step,this,e>0?t.DIRECTION_UP:t.DIRECTION_DOWN),a=this._toNumber((this.state.value||0)+o*e);return this.props.snap&&(a=Math.round(a/o)*o),this._isStrict=r,a!==this.state.value&&(this.setState({value:a,stringValue:a+""},n),!0)}},{key:"_onKeyDown",value:function(){for(var e=arguments.length,t=Array(e),n=0;n0&&o.length&&"."===o.charAt(this.refsInput.selectionEnd-1)&&(r.preventDefault(),this.refsInput.selectionStart=this.refsInput.selectionEnd=this.refsInput.selectionEnd-1):46===r.keyCode&&this.refsInput.selectionStart==this.refsInput.selectionEnd&&this.refsInput.selectionEnd0&&void 0!==arguments[0]&&arguments[0],r=arguments[1];this.stop(),this._step(1,r);var o=+h(this.props,"max",t.defaultProps.max,this);(isNaN(this.state.value)||+this.state.value0&&void 0!==arguments[0]&&arguments[0],r=arguments[1];this.stop(),this._step(-1,r);var o=+h(this.props,"min",t.defaultProps.min,this);(isNaN(this.state.value)||+this.state.value>o)&&(this._timer=setTimeout((function(){e.decrease(!0)}),n?t.SPEED:t.DELAY))}},{key:"onMouseDown",value:function(e,t){"down"==e?this.decrease(!1,t):"up"==e&&this.increase(!1,t)}},{key:"onTouchStart",value:function(e,t){t.preventDefault(),"down"==e?this.decrease():"up"==e&&this.increase()}},{key:"onTouchEnd",value:function(e){e.preventDefault(),this.stop()}},{key:"_invokeEventCallback",value:function(e){if("function"==typeof this.props[e]){for(var t,n=arguments.length,r=Array(n>1?n-1:0),o=1;o=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(s,["step","min","max","precision","parse","format","mobile","snap","componentClass","value","type","style","defaultValue","onInvalid","onValid","strict","noStyle"]);for(var b in h=h||!1===u,t.style)a[b]=r({},t.style[b],u&&u[b]||{});var v=n.className&&/\bform-control\b/.test(n.className);"auto"==l&&(l=f&&"ontouchstart"in document),"function"==typeof l&&(l=l.call(this)),l=!!l;var g={wrap:{style:h?null:a.wrap,className:"react-numeric-input",ref:function(t){null!=t&&null!=t&&(e.refsWrapper=t)},onMouseUp:void 0,onMouseLeave:void 0},input:r({ref:function(t){null!=t&&null!=t&&(e.refsInput=t)},type:"text",style:h?null:r({},a.input,v?{}:a["input:not(.form-control)"],this._inputFocus?a["input:focus"]:{})},m),btnUp:{onMouseEnter:void 0,onMouseDown:void 0,onMouseUp:void 0,onMouseLeave:void 0,onTouchStart:void 0,onTouchEnd:void 0,style:h?null:r({},a.btn,a.btnUp,n.disabled||n.readOnly?a["btn:disabled"]:o.btnUpActive?a["btn:active"]:o.btnUpHover?a["btn:hover"]:{})},btnDown:{onMouseEnter:void 0,onMouseDown:void 0,onMouseUp:void 0,onMouseLeave:void 0,onTouchStart:void 0,onTouchEnd:void 0,style:h?null:r({},a.btn,a.btnDown,n.disabled||n.readOnly?a["btn:disabled"]:o.btnDownActive?a["btn:active"]:o.btnDownHover?a["btn:hover"]:{})}},y=String(o.stringValue||(o.value||0===o.value?o.value:"")||""),x=!this._isStrict&&(this._inputFocus||!this._isMounted);x&&d.test(y)||x&&y&&!p.test(y)?g.input.value=y:o.value||0===o.value?g.input.value=this._format(o.value):g.input.value="",v&&!h&&r(g.wrap.style,a["wrap.hasFormControl"]),l&&!h&&(r(g.input.style,a["input.mobile"]),r(g.btnUp.style,a["btnUp.mobile"]),r(g.btnDown.style,a["btnDown.mobile"])),n.disabled||n.readOnly?!h&&n.disabled&&r(g.input.style,a["input:disabled"]):(r(g.wrap,{onMouseUp:this.stop,onMouseLeave:this.stop}),r(g.btnUp,{onTouchStart:this.onTouchStart.bind(this,"up"),onTouchEnd:this.onTouchEnd,onMouseEnter:function(){e.setState({btnUpHover:!0})},onMouseLeave:function(){e.stop(),e.setState({btnUpHover:!1,btnUpActive:!1})},onMouseUp:function(){e.setState({btnUpHover:!0,btnUpActive:!1})},onMouseDown:function(){for(var t=arguments.length,n=Array(t),r=0;r=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}},function(e,t,n){var r=n(19),o=n(33);e.exports=n(20)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(27);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){"use strict";var r=n(90),o=n(93),a=[].slice,i=["keyword","gray","hex"],s={};Object.keys(o).forEach((function(e){s[a.call(o[e].labels).sort().join("")]=e}));var l={};function c(e,t){if(!(this instanceof c))return new c(e,t);if(t&&t in i&&(t=null),t&&!(t in o))throw new Error("Unknown model: "+t);var n,u;if(void 0===e)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(e instanceof c)this.model=e.model,this.color=e.color.slice(),this.valpha=e.valpha;else if("string"==typeof e){var f=r.get(e);if(null===f)throw new Error("Unable to parse color from string: "+e);this.model=f.model,u=o[this.model].channels,this.color=f.value.slice(0,u),this.valpha="number"==typeof f.value[u]?f.value[u]:1}else if(e.length){this.model=t||"rgb",u=o[this.model].channels;var p=a.call(e,0,u);this.color=d(p,u),this.valpha="number"==typeof e[u]?e[u]:1}else if("number"==typeof e)e&=16777215,this.model="rgb",this.color=[e>>16&255,e>>8&255,255&e],this.valpha=1;else{this.valpha=1;var h=Object.keys(e);"alpha"in e&&(h.splice(h.indexOf("alpha"),1),this.valpha="number"==typeof e.alpha?e.alpha:0);var m=h.sort().join("");if(!(m in s))throw new Error("Unable to parse color from object: "+JSON.stringify(e));this.model=s[m];var b=o[this.model].labels,v=[];for(n=0;nn?(t+.05)/(n+.05):(n+.05)/(t+.05)},level:function(e){var t=this.contrast(e);return t>=7.1?"AAA":t>=4.5?"AA":""},isDark:function(){var e=this.rgb().color;return(299*e[0]+587*e[1]+114*e[2])/1e3<128},isLight:function(){return!this.isDark()},negate:function(){for(var e=this.rgb(),t=0;t<3;t++)e.color[t]=255-e.color[t];return e},lighten:function(e){var t=this.hsl();return t.color[2]+=t.color[2]*e,t},darken:function(e){var t=this.hsl();return t.color[2]-=t.color[2]*e,t},saturate:function(e){var t=this.hsl();return t.color[1]+=t.color[1]*e,t},desaturate:function(e){var t=this.hsl();return t.color[1]-=t.color[1]*e,t},whiten:function(e){var t=this.hwb();return t.color[1]+=t.color[1]*e,t},blacken:function(e){var t=this.hwb();return t.color[2]+=t.color[2]*e,t},grayscale:function(){var e=this.rgb().color,t=.3*e[0]+.59*e[1]+.11*e[2];return c.rgb(t,t,t)},fade:function(e){return this.alpha(this.valpha-this.valpha*e)},opaquer:function(e){return this.alpha(this.valpha+this.valpha*e)},rotate:function(e){var t=this.hsl(),n=t.color[0];return n=(n=(n+e)%360)<0?360+n:n,t.color[0]=n,t},mix:function(e,t){if(!e||!e.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof e);var n=e.rgb(),r=this.rgb(),o=void 0===t?.5:t,a=2*o-1,i=n.alpha()-r.alpha(),s=((a*i==-1?a:(a+i)/(1+a*i))+1)/2,l=1-s;return c.rgb(s*n.red()+l*r.red(),s*n.green()+l*r.green(),s*n.blue()+l*r.blue(),n.alpha()*o+r.alpha()*(1-o))}},Object.keys(o).forEach((function(e){if(-1===i.indexOf(e)){var t=o[e].channels;c.prototype[e]=function(){if(this.model===e)return new c(this);if(arguments.length)return new c(arguments,e);var n="number"==typeof arguments[t]?t:this.valpha;return new c(p(o[this.model][e].raw(this.color)).concat(n),e)},c[e]=function(n){return"number"==typeof n&&(n=d(a.call(arguments),t)),new c(n,e)}}})),e.exports=c},function(e,t,n){"use strict";function r(e){return null!=e&&"object"==typeof e&&!0===e["@@functional/placeholder"]}function o(e){return function t(n){return 0===arguments.length||r(n)?t:e.apply(this,arguments)}}function a(e){return function t(n,a){switch(arguments.length){case 0:return t;case 1:return r(n)?t:o((function(t){return e(n,t)}));default:return r(n)&&r(a)?t:r(n)?o((function(t){return e(t,a)})):r(a)?o((function(t){return e(n,t)})):e(n,a)}}}Array.isArray;"undefined"!=typeof Symbol&&Symbol.iterator;function i(e,t){return Object.prototype.hasOwnProperty.call(t,e)}var s=Object.prototype.toString,l=function(){return"[object Arguments]"===s.call(arguments)?function(e){return"[object Arguments]"===s.call(e)}:function(e){return i("callee",e)}},c=!{toString:null}.propertyIsEnumerable("toString"),u=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],f=function(){return arguments.propertyIsEnumerable("length")}(),p=function(e,t){for(var n=0;n0){var a=this.stops[0].clone();a.pos=0,this.stops.unshift(a)}if(void 0===this.stops[this.stops.length-1].pos)this.stops[this.stops.length-1].pos=1;else if(!this.repeating&&this.stops[this.stops.length-1].pos<1){var i=this.stops[this.stops.length-1].clone();i.pos=1,this.stops.push(i)}if(this.stops.forEach((function(e,t){if(void 0===e.pos){for(var n=t+1;this[n];n++)if(void 0!==this[n].pos){e.pos=this[t-1].pos+(this[n].pos-this[t-1].pos)/(n-t+1);break}}else t>0&&(e.pos=Math.max(e.pos,this[t-1].pos))}),this.stops),this.repeating){var s=(t=this.stops.slice())[t.length-1].pos-t[0].pos;for(n=0;this.stops[this.stops.length-1].pos<1&&n<1e4;n++)for(var l=0;l'},get png(){return this.canvas.toDataURL()},get r(){return Math.sqrt(2)*this.size/2},paint:function(){var e,t,r,o=this.context,a=this.r,i=this.size/2,s=0,l=this.stops[s];o.translate(this.size/2,this.size/2),o.rotate(-90*n),o.rotate(this.from*n),o.translate(-this.size/2,-this.size/2);for(var c=0;c<360;){if(c/360+1e-5>=l.pos){do{e=l,s++,l=this.stops[s]}while(l&&l!=e&&l.pos===e.pos);if(!l)break;var u=e.color+""==l.color+""&&e!=l;t=e.color.map((function(e,t){return l.color[t]-e}))}r=(c/360-e.pos)/(l.pos-e.pos);var f=u?l.color:t.map((function(t,n){var o=t*r+e.color[n];return n<3?255&o:o}));if(o.fillStyle="rgba("+f.join(",")+")",o.beginPath(),o.moveTo(i,i),u)var p=360*(l.pos-e.pos);else p=.5;var d=c*n,h=(d=Math.min(360*n,d))+p*n;h=Math.min(360*n,h+.02),o.arc(i,i,a,d,h),o.closePath(),o.fill(),c+=p}}},o.ColorStop=function(e,n){if(this.gradient=e,n){var r=n.match(/^(.+?)(?:\s+([\d.]+)(%|deg|turn|grad|rad)?)?(?:\s+([\d.]+)(%|deg|turn|grad|rad)?)?\s*$/);if(this.color=o.ColorStop.colorToRGBA(r[1]),r[2]){var a=r[3];"%"==a||"0"===r[2]&&!a?this.pos=r[2]/100:"turn"==a?this.pos=+r[2]:"deg"==a?this.pos=r[2]/360:"grad"==a?this.pos=r[2]/400:"rad"==a&&(this.pos=r[2]/t)}r[4]&&(this.next=new o.ColorStop(e,r[1]+" "+r[4]+r[5]))}},o.ColorStop.prototype={clone:function(){var e=new o.ColorStop(this.gradient);return e.color=this.color,e.pos=this.pos,e},toString:function(){return"rgba("+this.color.join(", ")+") "+100*this.pos+"%"}},o.ColorStop.colorToRGBA=function(e){if(!Array.isArray(e)&&-1==e.indexOf("from")){r.style.color=e;var t=getComputedStyle(r).color.match(/rgba?\(([\d.]+), ([\d.]+), ([\d.]+)(?:, ([\d.]+))?\)/);return t&&(t.shift(),(t=t.map((function(e){return+e})))[3]=isNaN(t[3])?1:t[3]),t||[0,0,0,0]}return e}}(),self.StyleFix&&((n=document.createElement("p")).style.backgroundImage="conic-gradient(white, black)",n.style.backgroundImage=PrefixFree.prefix+"conic-gradient(white, black)",n.style.backgroundImage||StyleFix.register((function(e,t){return e.indexOf("conic-gradient")>-1&&(e=e.replace(/(?:repeating-)?conic-gradient\(\s*((?:\([^()]+\)|[^;()}])+?)\)/g,(function(e,t){return new ConicGradient({stops:t,repeating:e.indexOf("repeating-")>-1})}))),e})))},function(e,t,n){var r=n(98);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var r=n(27);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(49)("keys"),o=n(38);e.exports=function(e){return r[e]||(r[e]=o(e))}},function(e,t,n){var r=n(10),o=n(18),a=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(37)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var r=n(26),o=n(108),a=n(50),i=n(48)("IE_PROTO"),s=function(){},l=function(){var e,t=n(67)("iframe"),r=a.length;for(t.style.display="none",n(109).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("